)]}'
{"specs/kilo/new-ironic-state-machine.rst":[{"author":{"_account_id":7005,"name":"Mark Silence","email":"madasi@gmail.com","username":"madasi"},"change_message_id":"fe075faa71a1246fe988ea51eb4ff4b9db13ef77","unresolved":false,"context_lines":[{"line_number":148,"context_line":"  This is the state that all nodes start off in. When a node is in"},{"line_number":149,"context_line":"  ENROLL, the only thing Ironic knows about it is that it exists, and"},{"line_number":150,"context_line":"  Ironic cannot take any further action by itself.  Once a node has"},{"line_number":151,"context_line":"  its drivers and the required information for each driver in"},{"line_number":152,"context_line":"  node.properties, the node can be transitioned to VALIDATING via the"},{"line_number":153,"context_line":"  validate API call"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3afb71cf_a94f4791","line":151,"updated":"2015-06-06 02:28:28.000000000","message":"Diagram shows this is now the VERIFYING state","commit_id":"4dcdc521fc524d47b4035450d560189c2179ca2a"},{"author":{"_account_id":7005,"name":"Mark Silence","email":"madasi@gmail.com","username":"madasi"},"change_message_id":"fe075faa71a1246fe988ea51eb4ff4b9db13ef77","unresolved":false,"context_lines":[{"line_number":149,"context_line":"  ENROLL, the only thing Ironic knows about it is that it exists, and"},{"line_number":150,"context_line":"  Ironic cannot take any further action by itself.  Once a node has"},{"line_number":151,"context_line":"  its drivers and the required information for each driver in"},{"line_number":152,"context_line":"  node.properties, the node can be transitioned to VALIDATING via the"},{"line_number":153,"context_line":"  validate API call"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"VALIDATING"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3afb71cf_89448b74","line":152,"updated":"2015-06-06 02:28:28.000000000","message":"Diagram shows this API call is now manage","commit_id":"4dcdc521fc524d47b4035450d560189c2179ca2a"},{"author":{"_account_id":7005,"name":"Mark Silence","email":"madasi@gmail.com","username":"madasi"},"change_message_id":"fe075faa71a1246fe988ea51eb4ff4b9db13ef77","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  its drivers and the required information for each driver in"},{"line_number":152,"context_line":"  node.properties, the node can be transitioned to VALIDATING via the"},{"line_number":153,"context_line":"  validate API call"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"VALIDATING"},{"line_number":156,"context_line":"  Ironic will validate that it can manage the node with the drivers"},{"line_number":157,"context_line":"  and the credentials it has been assigned.  For drivers that manage"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3afb71cf_292357bf","line":154,"updated":"2015-06-06 02:28:28.000000000","message":"VERIFYING per diagram","commit_id":"4dcdc521fc524d47b4035450d560189c2179ca2a"},{"author":{"_account_id":7005,"name":"Mark Silence","email":"madasi@gmail.com","username":"madasi"},"change_message_id":"fe075faa71a1246fe988ea51eb4ff4b9db13ef77","unresolved":false,"context_lines":[{"line_number":292,"context_line":""},{"line_number":293,"context_line":"+-----------+--------------+--------------------------+-----------+"},{"line_number":294,"context_line":"| Verb      | Initial State| Intermediate States      | End State |"},{"line_number":295,"context_line":"+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":296,"context_line":"| validate  | ENROLL       | VALIDATING -\u003e VALIDATED  | MANAGEABLE|"},{"line_number":297,"context_line":"+-----------+--------------+--------------------------+-----------+"},{"line_number":298,"context_line":"| zap       | MANAGEABLE   | ZAPPING -\u003e ZAPPED        | MANAGEABLE|"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3afb71cf_b43c3a94","line":295,"updated":"2015-06-06 02:28:28.000000000","message":"Verb is now manage, States are VERIFYING -\u003e VERIFIED per diagram.","commit_id":"4dcdc521fc524d47b4035450d560189c2179ca2a"},{"author":{"_account_id":7005,"name":"Mark Silence","email":"madasi@gmail.com","username":"madasi"},"change_message_id":"fe075faa71a1246fe988ea51eb4ff4b9db13ef77","unresolved":false,"context_lines":[{"line_number":373,"context_line":"---------------------"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"Nodes will not automatically transition from ENROLL to MANAGEABLE."},{"line_number":376,"context_line":"Deployers must assign drivers and add credentials to the node and then"},{"line_number":377,"context_line":"call the validate API before Ironic can manage the node."},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Nodes will not automatically transition from MANAGEABLE to AVAILABLE,"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3afb71cf_745da2e8","line":376,"updated":"2015-06-06 02:28:28.000000000","message":"now the manage API call per diagram","commit_id":"4dcdc521fc524d47b4035450d560189c2179ca2a"}],"specs/liberty/enroll-node-state.rst":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"974dc8e9f9c54960e74a5e0567bcbc7d4ba496bc","unresolved":false,"context_lines":[{"line_number":38,"context_line":"  ``enroll`` state instead of ``available``."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* Release new major version of ``ironicclient`` defaulting to this new"},{"line_number":41,"context_line":"  microversion."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aca2d91_549cf868","line":41,"updated":"2015-05-06 12:32:31.000000000","message":"How will this new version of the client behave when it connects to older versions of the server? How will older clients behave when they connect to newer versions of the server?\n\nI think both of those situations need to be described in this spec, and I\u0027d like to suggest the following approach:\n\n- new client + old server \u003d\u003e \n  client POSTs Node to server, receives response document. Node is already in \"available\" state.\n  client observes response header, determines older version.\n  * optional * if server version \u003e\u003d 1.4, client quickly updates node.provision_state to \"manageable\"\n  client notifies user of behavior, due to compatibility-mode with older server\n\n- old client + new server \u003d\u003e\n  client POSTs Node to server\n  server measures requested API version (or None, if no header supplied)\n  if client requested any version prior to the version supporting \"enroll\" state, server places node in \"available\"\n  otherwise, server places node in \"enroll\"\n\nIn this way, old clients are not broken by this change, and the new client is able to achieve some benefit from the Kilo release as well. This client release will need to include very clear documentation about the change to default states anyway, so it may as well benefit as many users as possible, right?","commit_id":"9523d97df98454e136b14afa84a52db6fcc78dd9"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"974dc8e9f9c54960e74a5e0567bcbc7d4ba496bc","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* ``enroll`` becomes a valid node state with transitions to:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"  * ``validation`` via ``validate`` action"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* ``validating`` becomes a valid transient node state with transitions to:"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aca2d91_34885c22","line":59,"updated":"2015-05-06 12:32:31.000000000","message":"s/validation/validating/ ?","commit_id":"9523d97df98454e136b14afa84a52db6fcc78dd9"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"974dc8e9f9c54960e74a5e0567bcbc7d4ba496bc","unresolved":false,"context_lines":[{"line_number":156,"context_line":"* Change is backwards compatible, while it\u0027s not the default in ironicclient."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"* Once new microversion is the default in ironicclient, it will break existing"},{"line_number":159,"context_line":"  flows"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Documentation Impact"},{"line_number":162,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aca2d91_148d6031","line":159,"updated":"2015-05-06 12:32:31.000000000","message":"Yea, this change on the client side is going to affect every user. We will need to communicate it very clearly and loudly, I think.","commit_id":"9523d97df98454e136b14afa84a52db6fcc78dd9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"80e12f2470cbcebc817f1e30d8ab4c9d2f344c95","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Currently nodes on creation get into ``available`` state, which is designed as"},{"line_number":20,"context_line":"a replacement for ``NOSTATE``. Such nodes will instantly be available to Nova"},{"line_number":21,"context_line":"for deployment, provided they have all the required properties. However, new"},{"line_number":22,"context_line":"state machine accounts for at least inspection and some ready state features"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_e003bb0e","line":19,"updated":"2015-05-28 20:59:22.000000000","message":"might be better to s/get into/are put into/","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"80e12f2470cbcebc817f1e30d8ab4c9d2f344c95","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Currently nodes on creation get into ``available`` state, which is designed as"},{"line_number":20,"context_line":"a replacement for ``NOSTATE``. Such nodes will instantly be available to Nova"},{"line_number":21,"context_line":"for deployment, provided they have all the required properties. However, new"},{"line_number":22,"context_line":"state machine accounts for at least inspection and some ready state features"},{"line_number":23,"context_line":"like zapping, which should be done before node even gets into ``available``"},{"line_number":24,"context_line":"state. Even worse, cleaning feature introduced in Kilo cycle should also"},{"line_number":25,"context_line":"happen before node becomes ``available``."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_531dcb60","line":22,"updated":"2015-05-28 20:59:22.000000000","message":"Might be useful to have a link to the state machine spec. We know about it but someone new might not.","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"708a6261204f4f959bbd99534880bc6f9ca96847","unresolved":false,"context_lines":[{"line_number":28,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* Add new state ``enroll``, from which node can be transition into"},{"line_number":31,"context_line":"  ``manageable`` state by action called ``manage``."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* ``manage`` transition will cause power and management interfaces to be"},{"line_number":34,"context_line":"  validated on node. Also an attempt will be made to get power state on a node"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_e0c13081","line":31,"updated":"2015-06-01 09:42:12.000000000","message":"I think I can update it in the same patch actually.","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"80e12f2470cbcebc817f1e30d8ab4c9d2f344c95","unresolved":false,"context_lines":[{"line_number":28,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* Add new state ``enroll``, from which node can be transition into"},{"line_number":31,"context_line":"  ``manageable`` state by action called ``manage``."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* ``manage`` transition will cause power and management interfaces to be"},{"line_number":34,"context_line":"  validated on node. Also an attempt will be made to get power state on a node"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_f3add7e9","line":31,"updated":"2015-05-28 20:59:22.000000000","message":"In case anyone is wondering, I think we decided at the summit, to change it from \u0027validate\u0027 to \u0027manage\u0027. Dmitry -- after this is approved, we should probably update the state machine spec to reflect this change.","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"80e12f2470cbcebc817f1e30d8ab4c9d2f344c95","unresolved":false,"context_lines":[{"line_number":40,"context_line":"* Introduce new API microversion, making newly created nodes appear in"},{"line_number":41,"context_line":"  ``enroll`` state instead of ``available``."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"  After that client-servier interaction will be the following:"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  - new client + new server: nodes appear in ``enroll`` state."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_53570b5a","line":43,"updated":"2015-05-28 20:59:22.000000000","message":"s/servier/server/","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"80e12f2470cbcebc817f1e30d8ab4c9d2f344c95","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    user."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"  - old client + new server: due to versioning node will appear in"},{"line_number":52,"context_line":"    ``available`` state."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* Document that we are going to make a breaking move to ``enroll`` state by"},{"line_number":55,"context_line":"  default. Make ``ironicclient`` issue a warning, if no version header is"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_9319038b","line":52,"updated":"2015-05-28 20:59:22.000000000","message":"I think it is a bit more complicated than \u0027new client\u0027 (or maybe you just need to clarify what \u0027new client\u0027 means). It depends on the VERSION specified in the request.\n\nan old(er) python-ironicclient like the current one, knows about max 1.6. If you use that package and specify the version with this change, it\u0027ll work (if against a new server). But if the older client is configured to use an older version (eg 1.6), you\u0027ll get the older \u0027available\u0027 state.","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"80e12f2470cbcebc817f1e30d8ab4c9d2f344c95","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* Document that we are going to make a breaking move to ``enroll`` state by"},{"line_number":55,"context_line":"  default. Make ``ironicclient`` issue a warning, if no version header is"},{"line_number":56,"context_line":"  requested for ``node-create``."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Update DevStack gate to explicitly request the new microversion and fix the"},{"line_number":59,"context_line":"  tests."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_7688b571","line":57,"updated":"2015-05-28 20:59:22.000000000","message":"To be clear, you mean the API or the CLI?","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"708a6261204f4f959bbd99534880bc6f9ca96847","unresolved":false,"context_lines":[{"line_number":59,"context_line":"  tests."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Release new major version of ``ironicclient`` defaulting to this new"},{"line_number":62,"context_line":"  microversion. Clearly document this breaking change."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Alternatives"},{"line_number":65,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_c0bcf407","line":62,"updated":"2015-06-01 09:42:12.000000000","message":"In x.y.z version X is traditionally called \"major\". For the current version it will designate move from 0.a.b to 1.0.0.","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"80e12f2470cbcebc817f1e30d8ab4c9d2f344c95","unresolved":false,"context_lines":[{"line_number":59,"context_line":"  tests."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Release new major version of ``ironicclient`` defaulting to this new"},{"line_number":62,"context_line":"  microversion. Clearly document this breaking change."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Alternatives"},{"line_number":65,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_3670fda3","line":62,"updated":"2015-05-28 20:59:22.000000000","message":"What do you mean by \u0027major version\u0027? Right now, we are at 0.6.0. Do you mean 0.7.0 or 1.0.0?","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"708a6261204f4f959bbd99534880bc6f9ca96847","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* ``enroll`` becomes a valid node state with transitions to:"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  * ``validating`` via ``manage`` action"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* ``validating`` becomes a valid transient node state with transitions to:"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_a0b7b81f","line":80,"updated":"2015-06-01 09:42:12.000000000","message":"Good catch, though I don\u0027t like \"managing\". \"verifying\" might work, let\u0027s see what people say.","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"80e12f2470cbcebc817f1e30d8ab4c9d2f344c95","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* ``enroll`` becomes a valid node state with transitions to:"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  * ``validating`` via ``manage`` action"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* ``validating`` becomes a valid transient node state with transitions to:"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_76d67550","line":80,"updated":"2015-05-28 20:59:22.000000000","message":"hmm. Do we want to change it so that it is \u0027managing\u0027 instead of \u0027validating\u0027? Or maybe \u0027verifying\u0027 or some other term that isn\u0027t \u0027validat*\u0027? \u0027contacting\u0027??\n\n[I think we wanted to avoid confusion between this \u0027validating\u0027 state and the validate() method we have in all the *Interface classes.","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"80e12f2470cbcebc817f1e30d8ab4c9d2f344c95","unresolved":false,"context_lines":[{"line_number":95,"context_line":"-------------------"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* Warning about future breaking change will be issued when ``node-create`` is"},{"line_number":98,"context_line":"  called without a version header."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"* Major release of client will be issued after some time defaulting to the new"},{"line_number":101,"context_line":"  microversion (and breaking many flows)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_b68d0dd5","line":98,"updated":"2015-05-28 20:59:22.000000000","message":"Do you mean that the server will return a warning if the request has not version header specified? Will it also create a node, or not?\n\nOr do you mean that the client will issue a warning if the user doesn\u0027t explicitly (or via an environment variable) specify a microversion? Will it cause a node to be created or not?","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"708a6261204f4f959bbd99534880bc6f9ca96847","unresolved":false,"context_lines":[{"line_number":95,"context_line":"-------------------"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* Warning about future breaking change will be issued when ``node-create`` is"},{"line_number":98,"context_line":"  called without a version header."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"* Major release of client will be issued after some time defaulting to the new"},{"line_number":101,"context_line":"  microversion (and breaking many flows)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_80395ca6","line":98,"updated":"2015-06-01 09:42:12.000000000","message":"That\u0027s about CLI, will clarify.","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"708a6261204f4f959bbd99534880bc6f9ca96847","unresolved":false,"context_lines":[{"line_number":103,"context_line":"RPC API impact"},{"line_number":104,"context_line":"--------------"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"None"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Driver API impact"},{"line_number":109,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_603c2093","line":106,"updated":"2015-06-01 09:42:12.000000000","message":"I thought all provision state changes are in one call. Will have a look.","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"80e12f2470cbcebc817f1e30d8ab4c9d2f344c95","unresolved":false,"context_lines":[{"line_number":103,"context_line":"RPC API impact"},{"line_number":104,"context_line":"--------------"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"None"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Driver API impact"},{"line_number":109,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_f6a14595","line":106,"updated":"2015-05-28 20:59:22.000000000","message":"Won\u0027t you need to add in a new call for the conductor to do the \u0027manage\u0027 action?","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b2e4546a7ecc76fb71289229b4ed65e17f414305","unresolved":false,"context_lines":[{"line_number":103,"context_line":"RPC API impact"},{"line_number":104,"context_line":"--------------"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"None"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Driver API impact"},{"line_number":109,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5afe65bd_9a863912","line":106,"in_reply_to":"7a016987_603c2093","updated":"2015-06-01 18:49:40.000000000","message":"Oh yeah, you\u0027re right.","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"80e12f2470cbcebc817f1e30d8ab4c9d2f344c95","unresolved":false,"context_lines":[{"line_number":124,"context_line":"---------------------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"With new microversion nodes will appear in ``enroll`` state. 2 more steps"},{"line_number":127,"context_line":"should be taken to make them available for deploy: ``validate`` and"},{"line_number":128,"context_line":"``provide``. Cleaning will happen, if enabled."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Scalability impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_76e315da","line":127,"updated":"2015-05-28 20:59:22.000000000","message":"s/validate/manage/\n\nMaybe grep for \u0027valid\u0027 and change them all to other verbs :-)","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"708a6261204f4f959bbd99534880bc6f9ca96847","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* Make sure our tests do not break"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"* (Optionally or later) default ironicclient to the new microversion"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Dependencies"},{"line_number":176,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_403fe486","line":173,"updated":"2015-06-01 09:42:12.000000000","message":"Yes, it can, because devstack won\u0027t pick the new microversion, so nothing will break.\n\nThis change should not affect inspector. Actually it\u0027s already ready to handle \"enroll\" state, I\u0027ve coded it in advance.","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"80e12f2470cbcebc817f1e30d8ab4c9d2f344c95","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* Make sure our tests do not break"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"* (Optionally or later) default ironicclient to the new microversion"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Dependencies"},{"line_number":176,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_b6ecedbb","line":173,"updated":"2015-05-28 20:59:22.000000000","message":"there\u0027s an ordering here I think. Can the code go into ironic before devstack is updated? (I forgot how we hooked in the microversions in devstack. You mention something about updating devstack above.)\n\nI believe that this change will affect Inspector (I thought you had mentioned that) -- might be worth mentioning that below in \u0027Upgrades and Backwards Compatibility\u0027 as an example?","commit_id":"530ccd1bd10bbe3e335f4f83eccb0a7caa1eb1e4"},{"author":{"_account_id":12715,"name":"John Trowbridge","email":"trown@redhat.com","username":"trown"},"change_message_id":"00292b829756fa35738fb78e44f8d2b37a78ae23","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Proposed change"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Add new state ``enroll``, from which node can be transition into"},{"line_number":34,"context_line":"  ``manageable`` state by action called ``manage``."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* ``manage`` transition will cause power and management interfaces to be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_553cf392","line":33,"updated":"2015-06-02 14:09:07.000000000","message":"(nit) I think this should be ...\u0027node can transition\u0027 or ...\u0027node can be transitioned\u0027","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3332e25f12b43519a7213ed87514dd9802e1f82f","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"  - new client + old server: client gets response from the server stating that"},{"line_number":52,"context_line":"    node is in ``available`` or ``none`` state. Client issues a warning to a"},{"line_number":53,"context_line":"    user."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"  - old client (or new client with old API version) + new server:"},{"line_number":56,"context_line":"    due to versioning node will appear in ``available`` state."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_da16f1a6","line":53,"updated":"2015-06-01 18:49:29.000000000","message":"Client (CLI only, not API) issues a warning. But the node create will succeed, right? And it will show the \u0027available\u0027 or \u0027none\u0027 state.","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6a3180146061bbf19dc962d99eb16bfaf093a839","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"  - new client + old server: client gets response from the server stating that"},{"line_number":52,"context_line":"    node is in ``available`` or ``none`` state. Client issues a warning to a"},{"line_number":53,"context_line":"    user."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"  - old client (or new client with old API version) + new server:"},{"line_number":56,"context_line":"    due to versioning node will appear in ``available`` state."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_a32bf2ea","line":53,"in_reply_to":"5afe65bd_da16f1a6","updated":"2015-06-02 13:07:57.000000000","message":"yes","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3332e25f12b43519a7213ed87514dd9802e1f82f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    user."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"  - old client (or new client with old API version) + new server:"},{"line_number":56,"context_line":"    due to versioning node will appear in ``available`` state."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Document that we are going to make a breaking move to ``enroll`` state by"},{"line_number":59,"context_line":"  default. Make ``ironicclient`` issue a warning, if no version header is"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_dacb911d","line":56,"updated":"2015-06-01 18:49:29.000000000","message":"or \u0027none\u0027 state (if you use eg version 1.1).","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3332e25f12b43519a7213ed87514dd9802e1f82f","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Document that we are going to make a breaking move to ``enroll`` state by"},{"line_number":59,"context_line":"  default. Make ``ironicclient`` issue a warning, if no version header is"},{"line_number":60,"context_line":"  requested for ``node-create``."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Update DevStack gate to explicitly request the new microversion and fix the"},{"line_number":63,"context_line":"  tests."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_9a487989","line":60,"updated":"2015-06-01 18:49:29.000000000","message":"I think you mean that the ironic server will support this via a new microversion, but will continue to default to v1.0 (or whatever it is) if no version header is specified.\n\nHowever, the CLI from ironic-pythonclient, will by default, be set to use the new microversion.","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6a3180146061bbf19dc962d99eb16bfaf093a839","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Document that we are going to make a breaking move to ``enroll`` state by"},{"line_number":59,"context_line":"  default. Make ``ironicclient`` issue a warning, if no version header is"},{"line_number":60,"context_line":"  requested for ``node-create``."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Update DevStack gate to explicitly request the new microversion and fix the"},{"line_number":63,"context_line":"  tests."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_e3f20a9a","line":60,"in_reply_to":"5afe65bd_9a487989","updated":"2015-06-02 13:07:57.000000000","message":"yes, that\u0027s how it work now. so we need a warning some time before we make a switch (see below)","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"15ed193a653ddbc782faba9c5ae47b0a6a7766da","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Document that we are going to make a breaking move to ``enroll`` state by"},{"line_number":59,"context_line":"  default. Make ``ironicclient`` issue a warning, if no version header is"},{"line_number":60,"context_line":"  requested for ``node-create``."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Update DevStack gate to explicitly request the new microversion and fix the"},{"line_number":63,"context_line":"  tests."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_772a1c2e","line":60,"in_reply_to":"5afe65bd_e3f20a9a","updated":"2015-06-03 14:46:16.000000000","message":"After discussing with Dmitry, we agreed not to issue the warning in that particular case.","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3332e25f12b43519a7213ed87514dd9802e1f82f","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  tests."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"* Release new major version of ``ironicclient`` defaulting to this new"},{"line_number":66,"context_line":"  microversion. Clearly document this breaking change."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Alternatives"},{"line_number":69,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_1a5249de","line":66,"updated":"2015-06-01 18:49:29.000000000","message":"this is a major version because it isn\u0027t backwards compatible? (But it would continue to support all microversions and pre-microversion\u0027d servers, right?)","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6a3180146061bbf19dc962d99eb16bfaf093a839","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  tests."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"* Release new major version of ``ironicclient`` defaulting to this new"},{"line_number":66,"context_line":"  microversion. Clearly document this breaking change."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Alternatives"},{"line_number":69,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_83091698","line":66,"in_reply_to":"5afe65bd_1a5249de","updated":"2015-06-02 13:07:57.000000000","message":"right","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3332e25f12b43519a7213ed87514dd9802e1f82f","unresolved":false,"context_lines":[{"line_number":98,"context_line":"Client (CLI) impact"},{"line_number":99,"context_line":"-------------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"* CLI tool  will issue a warning about future breaking change when"},{"line_number":102,"context_line":"  ``node-create`` is called without an argument or environment variable"},{"line_number":103,"context_line":"  specifying API version."},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_1a0009aa","line":101,"updated":"2015-06-01 18:49:29.000000000","message":"two blank spaces between \u0027tool  will\u0027.","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3332e25f12b43519a7213ed87514dd9802e1f82f","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  specifying API version."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* Major release of client will be issued after some time defaulting to the new"},{"line_number":106,"context_line":"  microversion (and breaking many flows)."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"RPC API impact"},{"line_number":109,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_ce40720a","line":106,"updated":"2015-06-01 18:49:29.000000000","message":"I want to make sure I understand this.\n\nDo you mean that we\u0027ll have two versions of the client, one a minor release and then a subsequent major release? I\u0027m thinking not. That a major release will have to be done that has the client supporting this microversion.\n\nSo I don\u0027t understand the warning about \u0027future breaking change\u0027. I\u0027m guessing you mean that the CLI will be updated to support the new microversion, and as part of that update, if a user does a \u0027node-create\u0027 without specifying a version, the node-creation success will be based on the server\u0027s response, and the CLI will issue a warning about how the node is in ENROLL state instead of ACTIVE state, so that \u0027node-set-provision-state manage\u0027 needs to be done to get it to ACTIVE?\n\nAnd/or that the user should specify a version in the request because otherwise...??","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"95572bd9ce870079c6187fccb5a06ba96eba8a9b","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  specifying API version."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* Major release of client will be issued after some time defaulting to the new"},{"line_number":106,"context_line":"  microversion (and breaking many flows)."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"RPC API impact"},{"line_number":109,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_86b0f6de","line":106,"in_reply_to":"5afe65bd_17bb1b74","updated":"2015-06-02 17:28:45.000000000","message":"The expected order is following:\n\n1. We release new version of ironic and minor version of client\n\n2. Operator issueing `ironic node-create` starts getting a warning about future breakage\n\n3. Operator switches scripts to `ironic --ironic-api-version 1.x node-create` using other new X (and adapting to ENROLL state) or some older X (and delaying transition).\n\n4. We release new major version of client. Btw in semantic versioning major version bump \u003d\u003d we broke something, so people are not expected to blindly update.\n\n5. Anyway after update only those people who still use `ironic node-create` are affected. They no longer see a warning, but nodes now appear in ENROLL state. For people using --ironic-api-version nothing changes.\n\n\u003e Does this mean that the client cannot be updated (at all, or with minor release) to default to those other microversion\u0027d changes, until a major version is released with this (or newer microversion)?\n\nNo. IIRC you can set whatever microversion using any client, even current one. So when people are ready, they can change their script to demand new version.\n\n\u003e after some time (in L* or M* or ?)\n\nmaybe even the next day :) actually, I think in the end of L cycle. Again, people are not supposed to blindly upgrade between major versions.","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6ba9deb20de42be7d34808a79ac06cb9f7000fac","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  specifying API version."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* Major release of client will be issued after some time defaulting to the new"},{"line_number":106,"context_line":"  microversion (and breaking many flows)."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"RPC API impact"},{"line_number":109,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_ea4e44c0","line":106,"in_reply_to":"5afe65bd_5403c373","updated":"2015-06-02 20:52:49.000000000","message":"1. only warning. it does not make sense to issue a warning after we break people :)\n\nyeah, let\u0027s chat tomorrow (your) morning :)","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"43425fd22dddc24643df4d1f694e1b801ca26aa4","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  specifying API version."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* Major release of client will be issued after some time defaulting to the new"},{"line_number":106,"context_line":"  microversion (and breaking many flows)."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"RPC API impact"},{"line_number":109,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_5403c373","line":106,"in_reply_to":"5afe65bd_86b0f6de","updated":"2015-06-02 20:02:56.000000000","message":"wrt 1) the minor version of client has the warning AND the default set to 1.\u003cenrollversion\u003e ? Or it only has the warning? (eg, client is currently set to version 1.6)\n\nI think it\u0027ll be better (easier for me) if we discuss.","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6a3180146061bbf19dc962d99eb16bfaf093a839","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  specifying API version."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* Major release of client will be issued after some time defaulting to the new"},{"line_number":106,"context_line":"  microversion (and breaking many flows)."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"RPC API impact"},{"line_number":109,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_e3db2a1a","line":106,"in_reply_to":"5afe65bd_ce40720a","updated":"2015-06-02 13:07:57.000000000","message":"\u003e one a minor release and then a subsequent major release?\n\nyes\n\n\u003e I\u0027m thinking not.\n\nPlease elaborate, this plan was agreed on the summit. CLI version that issues a warning does not default to ENROLL yet.\n\n\u003e updated to support the new microversion\n\ns/support/default to/. There\u0027s no such thing as \"updating CLI to support the microversion\" as of now, we\u0027ll just pass to the server whatever client provided.","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b21a8c00fc024ae8b60c5278b9f68aabb980cf2b","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  specifying API version."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* Major release of client will be issued after some time defaulting to the new"},{"line_number":106,"context_line":"  microversion (and breaking many flows)."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"RPC API impact"},{"line_number":109,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_17bb1b74","line":106,"in_reply_to":"5afe65bd_e3db2a1a","updated":"2015-06-02 15:45:21.000000000","message":"Ah, ok, I think I understand now. (I missed or forgot that we had agreed on this).\n\nWhat isn\u0027t clear (to me) in the spec is the ordering in which things need to be done.\n\nIs this it:\n1. changes to ironic\n2. change to client (may be or may not be a minor version of this?) to emit warning but will continue to do the create\n3. after some time (in L* or M* or ?) a major release of client that defaults to this microversion.\n\nMy concern is that there most likely will be other changes that have a corresponding microversion change. Does this mean that the client cannot be updated (at all, or with minor release) to default to those other microversion\u0027d changes, until a major version is released with this (or newer microversion)?","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"15ed193a653ddbc782faba9c5ae47b0a6a7766da","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  specifying API version."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* Major release of client will be issued after some time defaulting to the new"},{"line_number":106,"context_line":"  microversion (and breaking many flows)."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"RPC API impact"},{"line_number":109,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_d738b0a2","line":106,"in_reply_to":"5afe65bd_ea4e44c0","updated":"2015-06-03 14:46:16.000000000","message":"Dmitry and I chatted about an hour ago and the idea of major/minor versions of the client were removed from here since that seems to be out-of-scope (cuz I don\u0027t know that we have a policy/process wrt when we do major/minor releases).","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"8240fafb24536419349a104a43d6f4241ce30bf5","unresolved":false,"context_lines":[{"line_number":193,"context_line":"* Change is backwards compatible, while it\u0027s not the default in ironicclient."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Once new microversion is the default in ironicclient, it will break existing"},{"line_number":196,"context_line":"  flows"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Documentation Impact"},{"line_number":199,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_2e0026aa","line":196,"updated":"2015-06-01 19:13:35.000000000","message":"existing \u003d non micro-versioned work flows here?","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6a3180146061bbf19dc962d99eb16bfaf093a839","unresolved":false,"context_lines":[{"line_number":193,"context_line":"* Change is backwards compatible, while it\u0027s not the default in ironicclient."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Once new microversion is the default in ironicclient, it will break existing"},{"line_number":196,"context_line":"  flows"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Documentation Impact"},{"line_number":199,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_6335fa44","line":196,"in_reply_to":"5afe65bd_2e0026aa","updated":"2015-06-02 13:07:57.000000000","message":"right","commit_id":"0e82a3f7b62a79295e0befdb16c90076a025335e"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"17bc9232c749a2efb58a4daf37cc65ec5dd20e6a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"  to actually verify the supplied power credentials."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"  On success, node will get to ``manageable`` state. On"},{"line_number":41,"context_line":"  failure, it will get back to ``enroll`` and ``last_error`` will be set."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* Introduce new API microversion, making newly created nodes appear in"},{"line_number":44,"context_line":"  ``enroll`` state instead of ``available``."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5afe65bd_7565581c","line":41,"updated":"2015-06-04 07:50:23.000000000","message":"May be an implementation thing, but we should disallow power state sync to touch nodes in ENROLL.","commit_id":"57a5b5e1a96f6fa3ff8b10e9a3868fe748c8c7b9"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"af4dda0dfe2b5d1ba7f3401ed12737cbd874b2ba","unresolved":false,"context_lines":[{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Add new state ``enroll``, from which node can transition into"},{"line_number":34,"context_line":"  ``manageable`` state by action called ``manage``."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* ``manage`` transition will cause power and management interfaces to be"},{"line_number":37,"context_line":"  validated on node. Also an attempt will be made to get power state on a node"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_fd708bde","line":34,"updated":"2015-06-15 18:37:03.000000000","message":"This doesn\u0027t seem to match line 86","commit_id":"d2b8b9e13c550a58bd4b2259657d3ee89dc2b58e"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"562a489480f414c70cd3ae6153b256ebbd605cc9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Add new state ``enroll``, from which node can transition into"},{"line_number":34,"context_line":"  ``manageable`` state by action called ``manage``."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* ``manage`` transition will cause power and management interfaces to be"},{"line_number":37,"context_line":"  validated on node. Also an attempt will be made to get power state on a node"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_c0f59acb","line":34,"in_reply_to":"fa32b979_fd708bde","updated":"2015-06-15 18:43:50.000000000","message":"jroll was kind enough to explain this to me.  This is from the user perspective.","commit_id":"d2b8b9e13c550a58bd4b2259657d3ee89dc2b58e"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"af4dda0dfe2b5d1ba7f3401ed12737cbd874b2ba","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"* ``enroll`` becomes a valid node state with transitions to:"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"  * ``verifying`` via ``manage`` action"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* ``verifying`` becomes a valid transient node state with transitions to:"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_5dabb71d","line":86,"updated":"2015-06-15 18:37:03.000000000","message":"This doesn\u0027t seem to match with line 34","commit_id":"d2b8b9e13c550a58bd4b2259657d3ee89dc2b58e"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"562a489480f414c70cd3ae6153b256ebbd605cc9","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"* ``enroll`` becomes a valid node state with transitions to:"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"  * ``verifying`` via ``manage`` action"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* ``verifying`` becomes a valid transient node state with transitions to:"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_4030aa9e","line":86,"in_reply_to":"fa32b979_5dabb71d","updated":"2015-06-15 18:43:50.000000000","message":"jroll was kind enough to explain this to me.  This is from the state machine perspective.","commit_id":"d2b8b9e13c550a58bd4b2259657d3ee89dc2b58e"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"9823cb63fec0fd41243334ff25bd61f819eb24b1","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"  * ``manageable`` on ``done``"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  * ``enroll`` on ``fail``."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"REST API impact"},{"line_number":95,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_07c4385d","line":92,"updated":"2015-06-11 14:08:23.000000000","message":"Hopefully with an error message :)\n\n(let\u0027s mention this if you push a new version, but not a big deal really)","commit_id":"d2b8b9e13c550a58bd4b2259657d3ee89dc2b58e"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"482e296e70b8eaec5f7dd2ba8197100c735242c3","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"  * ``manageable`` on ``done``"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  * ``enroll`` on ``fail``."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"REST API impact"},{"line_number":95,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1af86dd1_52bad3e2","line":92,"updated":"2015-06-12 13:51:37.000000000","message":"It was mentioned earlier (but I agree with Jim, doesn\u0027t hurt to repeat it here)","commit_id":"d2b8b9e13c550a58bd4b2259657d3ee89dc2b58e"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"9823cb63fec0fd41243334ff25bd61f819eb24b1","unresolved":false,"context_lines":[{"line_number":116,"context_line":"Nova driver impact"},{"line_number":117,"context_line":"------------------"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"* Double check that Nova driver won\u0027t use nodes in ``enroll`` state"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"* Sync ``nova/virt/ironic/ironic_states.py`` for the sake of consistency"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3afb71cf_87ea68ab","line":119,"updated":"2015-06-11 14:08:23.000000000","message":"This is definitely true, just fixed a bug around exposing resources and states the other day. :)","commit_id":"d2b8b9e13c550a58bd4b2259657d3ee89dc2b58e"}]}
