[openstack-dev] [ironic] Re: New API for node create, specifying initial provision state

Dmitry Tantsur dtantsur at redhat.com
Wed Aug 19 08:22:36 UTC 2015


To be honest, I'm tired of repeating the same arguments again and 
again... I personally would like to get something cool done, rather than 
discussing how to work around our new state machine again and again.

Now to some trolling: please include a way to users to opt-out from 
NOSTATE -> AVAILABLE renaming.

On 08/18/2015 09:11 PM, Ruby Loo wrote:
> Apologies, forgot to add [ironic] to the subject.
>
> On 18 August 2015 at 13:27, Ruby Loo <rlooyahoo at gmail.com
> <mailto:rlooyahoo at gmail.com>> wrote:
>
>     Hi,
>
>     I want to start a different thread on this topic because I don't
>     think this is about whether/how to do API microversions. Rather,
>     given that we are going to support microversioning, how to deal with
>     the non-backward compatible change in 1.11 with the ENROLL state
>     (instead of AVAILABLE) being the provision state that a node is in,
>     after being created/registered in ironic.
>
>     (This was from 'Let's talk about API versions,
>     http://lists.openstack.org/pipermail/openstack-dev/2015-August/072287.html.)
>
>     I want to think about this before replying but others are more than
>     welcome to reply first so that I may not feel the need to reply :-)
>
>     --ruby
>     maybe chop off this and above when replying :-)
>
>     On 17 August 2015 at 20:20, Robert Collins
>     <robertc at robertcollins.net <mailto:robertc at robertcollins.net>> wrote:
>
>         On 11 August 2015 at 06:13, Ruby Loo <rlooyahoo at gmail.com
>         <mailto:rlooyahoo at gmail.com>> wrote:
>         > Hi, sorry for the delay. I vote no. I understand the rationale of trying to
>         > do things so that we don't break our users but that's what the versioning is
>         > meant for and more importantly -- I think adding the ENROLL state is fairly
>         > important wrt the lifecycle of a node. I don't particularly want to hide
>         > that and/or let folks opt out of it in the long term.
>         >
>         > From a reviewer point-of-view, my concern is me trying to remember all the
>         > possible permutations/states etc that are possible to make sure that new
>         > code doesn't break existing behavior. I haven't thought out whether adding
>         > this new API would make that worse or not, but then, I don't really want to
>         > have to think about it. So KISS as much as we can! :)
>
>         I'm a little surprised by this, to be honest.
>
>         Here's why: allowing the initial state to be chosen from
>         ENROLL/AVAILABLE from the latest version of the API is precisely as
>         complex as allowing two versions of the API {old, new} where old
>         creates nodes in  AVAILABLE and new creates nodes in ENROLL. The
>         only
>         difference I can see is that eventually someday if {old} stops being
>         supported, then and only then we can go through the code and clean
>         things up.
>
>         It seems to me that the costs to us of supporting graceful
>         transitions
>         for users here are:
>
>         1) A new version NEWVER of the API that supports node state
>         being one
>         of {not supplied, AVAILABLE, ENROLL}, on creation, defaulting to
>         AVAILABLE when not supplied.

-1, it's a breaking change again. And it does not make any sense to me.

>         2) Supporting the initial state of AVAILABLE indefinitely rather
>         than
>         just until we *delete* version 1.10.

We don't delete any versions. This would be a terrible (backward 
incompatible) change, breaking the whole idea of versioning.

>         3) CD deployments that had rolled forward to 1.11 will need to
>         add the
>         state parameter to their scripts to move forward to NEWVER.
>         4) Don't default the client to the veresions between 1.10 and NEWVER
>         versions at any point.
>
>         That seems like a very small price to pay on our side, and the
>         benefits for users are that they can opt into the new functionality
>         when they are ready.

That's what versioning is for, so we're fine, nothing needs to be done.

>
>         -Rob
>
>         --
>         Robert Collins <rbtcollins at hp.com <mailto:rbtcollins at hp.com>>
>         Distinguished Technologist
>         HP Converged Cloud
>
>         __________________________________________________________________________
>         OpenStack Development Mailing List (not for usage questions)
>         Unsubscribe:
>         OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>         <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>         http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>




More information about the OpenStack-dev mailing list