)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"61ed0985a1648c0cb18ea7693f436008cb9f4613","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We propose to implement consistent reporting of all successful API"},{"line_number":10,"context_line":"actions roughly along the lines discussed in the “Tasks Manifesto”."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I811b6fff1da2056ef8d4b411f42cefcd1fed555e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a740942_949ed352","line":11,"updated":"2015-12-10 17:49:24.000000000","message":"Given the change now need to add the tag. Also I think this commit message should get updated.\n\nAPIImpact","commit_id":"db6d4eb64c0d3c240bf56a2786d789831870cb72"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"41543d0e588047b3caa72b7372abeae3c0902595","unresolved":false,"context_lines":[{"line_number":10,"context_line":"actions roughly along the lines discussed in the \"Tasks Manifesto\"."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This involves reporting the finish time and status for every instance"},{"line_number":13,"context_line":"action."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"blueprint consistent-instance-actions"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"9abb7d3a_0998fd69","line":13,"range":{"start_line":13,"start_character":6,"end_line":13,"end_character":7},"updated":"2016-06-02 09:39:03.000000000","message":"Please add APIImpact here.","commit_id":"aeeacfc45af74f12207dd540d8fdc0c08ecb9986"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"384d5dd49a4b4788233425f152aa0b11f7056738","unresolved":false,"context_lines":[{"line_number":10,"context_line":"actions roughly along the lines discussed in the \"Tasks Manifesto\"."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This involves reporting the finish time and status for every instance"},{"line_number":13,"context_line":"action."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"blueprint consistent-instance-actions"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"9abb7d3a_b06751b6","line":13,"range":{"start_line":13,"start_character":6,"end_line":13,"end_character":7},"in_reply_to":"9abb7d3a_0998fd69","updated":"2016-06-03 08:38:13.000000000","message":"oops, yes.","commit_id":"aeeacfc45af74f12207dd540d8fdc0c08ecb9986"}],"specs/mitaka/approved/consistent-instance-actions.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4a512c1bb45781ea256af774fe17b526ed3a33b7","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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"},{"line_number":8,"context_line":"Consistent Instance Actions"},{"line_number":9,"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/consistent-instance-actions"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba8a016a_af263214","line":8,"updated":"2015-11-23 10:31:49.000000000","message":"Maybe \"Consistent Success Reporting\", or similar? so its more specific?","commit_id":"8b4255e1ad17fd1c0e6f87d823176accb0e17439"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"4fc93f4221d56aa0e5e9ebe1d451a6f1dc2ca4b0","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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"},{"line_number":8,"context_line":"Consistent Instance Actions"},{"line_number":9,"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/consistent-instance-actions"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a8ffd7b_39bb8674","line":8,"in_reply_to":"ba8a016a_af263214","updated":"2015-11-25 02:36:06.000000000","message":"I agree, it would be good to be more specific.","commit_id":"8b4255e1ad17fd1c0e6f87d823176accb0e17439"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4a512c1bb45781ea256af774fe17b526ed3a33b7","unresolved":false,"context_lines":[{"line_number":20,"context_line":"reporting Nova does for long running asychronous actions.  In order to narrow"},{"line_number":21,"context_line":"the scope of the problem, this spec proposes improving the reporting for all"},{"line_number":22,"context_line":"successful API actions."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba8a016a_b272157b","line":23,"updated":"2015-11-23 10:31:49.000000000","message":"This sounds odd, but I think we probably need to define a few problems that are out of scope here, namely:\n* consistently reporting all know task failures, and the reason (can we get a spec up for that one?)\n* resolving differences between os-instance-actions and instance faults (probably part of the above suggested spec)\n* spotting stalled/dropped/abandoned actions (something for N, probably)","commit_id":"8b4255e1ad17fd1c0e6f87d823176accb0e17439"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"4fc93f4221d56aa0e5e9ebe1d451a6f1dc2ca4b0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"reporting Nova does for long running asychronous actions.  In order to narrow"},{"line_number":21,"context_line":"the scope of the problem, this spec proposes improving the reporting for all"},{"line_number":22,"context_line":"successful API actions."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a8ffd7b_193b22ed","line":23,"in_reply_to":"ba8a016a_b272157b","updated":"2015-11-25 02:36:06.000000000","message":"Good idea, I\u0027ll add an out of scope section.","commit_id":"8b4255e1ad17fd1c0e6f87d823176accb0e17439"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cf58aed9a7adbf091ab1519ccad0dc58d1edd4e6","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":"For a detailed description, see [NPS1]_.  Briefly, we want to improve the"},{"line_number":20,"context_line":"reporting Nova does for long running asychronous actions.  In order to narrow"},{"line_number":21,"context_line":"the scope of the problem, this spec proposes improving the reporting for all"},{"line_number":22,"context_line":"successful API actions."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a740942_ccab8b88","line":19,"updated":"2015-12-07 11:55:14.000000000","message":"Nit, I would put the reference last, and just say its for more information.","commit_id":"222eec4a6cad976ad240716d1c8fb6783bf3542c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"644980426d8c8faad757d8d893a4031db9a9e6fc","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":"For a detailed description, see [NPS1]_.  Briefly, we want to improve the"},{"line_number":20,"context_line":"reporting Nova does for long running asychronous actions.  In order to narrow"},{"line_number":21,"context_line":"the scope of the problem, this spec proposes improving the reporting for all"},{"line_number":22,"context_line":"successful API actions."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a740942_e175daf9","line":19,"in_reply_to":"7a740942_ccab8b88","updated":"2015-12-07 19:31:20.000000000","message":"Done.","commit_id":"222eec4a6cad976ad240716d1c8fb6783bf3542c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cf58aed9a7adbf091ab1519ccad0dc58d1edd4e6","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Data model impact"},{"line_number":75,"context_line":"-----------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"No data model impact."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"REST API impact"},{"line_number":80,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a740942_4ca0fb9f","line":77,"updated":"2015-12-07 11:55:14.000000000","message":"Nit: \"None\" is the common pattern for these bits in Nova, please see the template notes.","commit_id":"222eec4a6cad976ad240716d1c8fb6783bf3542c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"644980426d8c8faad757d8d893a4031db9a9e6fc","unresolved":false,"context_lines":[{"line_number":74,"context_line":"Data model impact"},{"line_number":75,"context_line":"-----------------"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"No data model impact."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"REST API impact"},{"line_number":80,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a740942_c19c5e11","line":77,"in_reply_to":"7a740942_4ca0fb9f","updated":"2015-12-07 19:31:20.000000000","message":"Sorry about that ... \"None\" is much more succinct.","commit_id":"222eec4a6cad976ad240716d1c8fb6783bf3542c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"cf58aed9a7adbf091ab1519ccad0dc58d1edd4e6","unresolved":false,"context_lines":[{"line_number":89,"context_line":"Notifications impact"},{"line_number":90,"context_line":"--------------------"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Missing notifications may be added."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Other end user impact"},{"line_number":95,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a740942_ec852707","line":92,"updated":"2015-12-07 11:55:14.000000000","message":"Need to be more precise here, and certainly mentioning the Versioned Notifications spec.","commit_id":"222eec4a6cad976ad240716d1c8fb6783bf3542c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"644980426d8c8faad757d8d893a4031db9a9e6fc","unresolved":false,"context_lines":[{"line_number":89,"context_line":"Notifications impact"},{"line_number":90,"context_line":"--------------------"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Missing notifications may be added."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Other end user impact"},{"line_number":95,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a740942_e9f5c056","line":92,"in_reply_to":"7a740942_ec852707","updated":"2015-12-07 19:31:20.000000000","message":"Made the change.","commit_id":"222eec4a6cad976ad240716d1c8fb6783bf3542c"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"def8c81d81df02f6dbd02ebe70c8d5d9563247b3","unresolved":false,"context_lines":[{"line_number":27,"context_line":"---------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"As a User, I want a consistent interface by which I can determine that a"},{"line_number":30,"context_line":"long-running asynchronous action has completed successfully."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"As a Deployer, I want a to be able to do better monitoring of my cloud with"},{"line_number":33,"context_line":"respect to long-running asynchronous server actions, whether by traditional log"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a740942_b289adcc","line":30,"updated":"2015-12-10 15:08:22.000000000","message":"It may not be clear, but instance-actions doesn\u0027t actually provide this properly.  An instance-action begins life in a SUCCESS state and stays there unless it goes to ERROR.  So the SUCCESS state does not actually indicate that the action has completed successfully.  You can infer it based on task_states, but it\u0027s not explicit in the instance-action itself.","commit_id":"01b6864e8ff8a1d0eeb86b08afb5204d2bb27bdb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e12e8545d8848ca6647179fe46ca1a0f0c1f794c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"---------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"As a User, I want a consistent interface by which I can determine that a"},{"line_number":30,"context_line":"long-running asynchronous action has completed successfully."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"As a Deployer, I want a to be able to do better monitoring of my cloud with"},{"line_number":33,"context_line":"respect to long-running asynchronous server actions, whether by traditional log"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a740942_c830450a","line":30,"in_reply_to":"7a740942_b289adcc","updated":"2015-12-10 16:14:16.000000000","message":"I totally missed that, do we not have a complete state?\n\nMaybe we need to add that into here somehow, in a microversion?","commit_id":"01b6864e8ff8a1d0eeb86b08afb5204d2bb27bdb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2588224f1ede57621e20bb742c5ca579e68652c4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"---------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"As a User, I want a consistent interface by which I can determine that a"},{"line_number":30,"context_line":"long-running asynchronous action has completed successfully."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"As a Deployer, I want a to be able to do better monitoring of my cloud with"},{"line_number":33,"context_line":"respect to long-running asynchronous server actions, whether by traditional log"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a740942_03db8e1c","line":30,"in_reply_to":"7a740942_c830450a","updated":"2015-12-10 16:25:49.000000000","message":"I think we should add a finish_time into the instance actions (rather than the sub tasks) so we know when each thing is complete. As a microversion in the API, and implement that as part of this spec, once all actions correctly report the finish_time.\n\nSo this actually turns this spec into Add finish_time and check for consistency of instance actions.","commit_id":"01b6864e8ff8a1d0eeb86b08afb5204d2bb27bdb"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"def8c81d81df02f6dbd02ebe70c8d5d9563247b3","unresolved":false,"context_lines":[{"line_number":55,"context_line":"There are three related changes:"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"#. Ensure every successfully completed asynchronous API operation is correctly"},{"line_number":58,"context_line":"   reported via the existing os-instance-actions API [OSD1]_."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"#. During Mitaka, versioned notifications will be introduced [NSP1]_.  We will"},{"line_number":61,"context_line":"   want to make sure that for each successfully completed asynchronous API"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a740942_f23ad5e6","line":58,"updated":"2015-12-10 15:08:22.000000000","message":"This is great, subject to the caveat I outlined above.","commit_id":"01b6864e8ff8a1d0eeb86b08afb5204d2bb27bdb"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"def8c81d81df02f6dbd02ebe70c8d5d9563247b3","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"#. During Mitaka, versioned notifications will be introduced [NSP1]_.  We will"},{"line_number":61,"context_line":"   want to make sure that for each successfully completed asynchronous API"},{"line_number":62,"context_line":"   operation, the correct start and end notifications are emitted."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"#. Finally, we want to ensure that consistent messages are logged when"},{"line_number":65,"context_line":"   actions have started and completed."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a740942_7206e521","line":62,"updated":"2015-12-10 15:08:22.000000000","message":"I\u0027m not quite sure why this is lumped in here.  This seems to be a complementary, but separate, body of work.","commit_id":"01b6864e8ff8a1d0eeb86b08afb5204d2bb27bdb"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"def8c81d81df02f6dbd02ebe70c8d5d9563247b3","unresolved":false,"context_lines":[{"line_number":62,"context_line":"   operation, the correct start and end notifications are emitted."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"#. Finally, we want to ensure that consistent messages are logged when"},{"line_number":65,"context_line":"   actions have started and completed."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a740942_f4288287","line":65,"updated":"2015-12-10 15:08:22.000000000","message":"This should just be done, and I don\u0027t think it needs a spec or even a bp for it.  If anything it should be documented in the devref that this is a thing we expect.","commit_id":"01b6864e8ff8a1d0eeb86b08afb5204d2bb27bdb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e12e8545d8848ca6647179fe46ca1a0f0c1f794c","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"#. Finally, we want to ensure that consistent messages are logged when"},{"line_number":65,"context_line":"   actions have started and completed."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a740942_831f7e5a","line":66,"updated":"2015-12-10 16:14:16.000000000","message":"The idea of grouping these was original recommended, to try and make all three sources of info more in-sync.","commit_id":"01b6864e8ff8a1d0eeb86b08afb5204d2bb27bdb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2588224f1ede57621e20bb742c5ca579e68652c4","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"#. Finally, we want to ensure that consistent messages are logged when"},{"line_number":65,"context_line":"   actions have started and completed."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"},{"line_number":68,"context_line":"------------"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a740942_83e77eab","line":66,"in_reply_to":"7a740942_831f7e5a","updated":"2015-12-10 16:25:49.000000000","message":"Thinking on this more, alaski has a good point here.\n\nLets keep notifications as part of the versioned notifications stuff.\n\nConfig fixes we can do as trivial fixes as part of this work, but thats not the goal here, its confusing.","commit_id":"01b6864e8ff8a1d0eeb86b08afb5204d2bb27bdb"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"def8c81d81df02f6dbd02ebe70c8d5d9563247b3","unresolved":false,"context_lines":[{"line_number":143,"context_line":"   the os-instance-actions API."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"#. Make sure successfully completed actions have start/end information"},{"line_number":146,"context_line":"   communicated to the os-instance-actions API."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"#. Make sure successfully completed actions have notifications emitted at the"},{"line_number":149,"context_line":"   start and end of the action."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a740942_1462eed8","line":146,"updated":"2015-12-10 15:08:22.000000000","message":"As of right now end information is not being communicated for any actions.  So I suspect this work item is a bit larger than it may appear.","commit_id":"01b6864e8ff8a1d0eeb86b08afb5204d2bb27bdb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e12e8545d8848ca6647179fe46ca1a0f0c1f794c","unresolved":false,"context_lines":[{"line_number":143,"context_line":"   the os-instance-actions API."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"#. Make sure successfully completed actions have start/end information"},{"line_number":146,"context_line":"   communicated to the os-instance-actions API."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"#. Make sure successfully completed actions have notifications emitted at the"},{"line_number":149,"context_line":"   start and end of the action."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a740942_6807d11d","line":146,"in_reply_to":"7a740942_1462eed8","updated":"2015-12-10 16:14:16.000000000","message":"Many actions do have .end notifications.","commit_id":"01b6864e8ff8a1d0eeb86b08afb5204d2bb27bdb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"61ed0985a1648c0cb18ea7693f436008cb9f4613","unresolved":false,"context_lines":[{"line_number":31,"context_line":"As a User, I want a consistent interface by which I can determine that a"},{"line_number":32,"context_line":"long-running asynchronous action has completed successfully."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"As a Deployer, I want a to be able to do better monitoring of my cloud with"},{"line_number":35,"context_line":"respect to long-running asynchronous server actions, whether by traditional log"},{"line_number":36,"context_line":"reading or by a tool such as StackTach or Ceilometer that consumes"},{"line_number":37,"context_line":"notifications."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_f4871710","line":34,"updated":"2015-12-10 17:49:24.000000000","message":"yeah, lets kill this bit now.","commit_id":"db6d4eb64c0d3c240bf56a2786d789831870cb72"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"61ed0985a1648c0cb18ea7693f436008cb9f4613","unresolved":false,"context_lines":[{"line_number":75,"context_line":"REST API impact"},{"line_number":76,"context_line":"---------------"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"This would require a new microversion of the API."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Security impact"},{"line_number":81,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_d4845b0c","line":78,"updated":"2015-12-10 17:49:24.000000000","message":"need more details here, need to add an example response.","commit_id":"db6d4eb64c0d3c240bf56a2786d789831870cb72"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a8aa1e4b84dde89c47fe3a31dee2c17da4ee7a89","unresolved":false,"context_lines":[{"line_number":126,"context_line":"   the os-instance-actions API."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"#. Make sure successfully completed actions have their finish time"},{"line_number":129,"context_line":"   communicated to the os-instance-actions API."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Dependencies"},{"line_number":132,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_f494f7e8","line":129,"updated":"2015-12-10 17:53:45.000000000","message":"Can we split this into two please:\n\nMake sure all actions update the finish_time when completed.\n\nThen add the API to expose it.\n\nNeed to note that in the proposed change bit too, I think.","commit_id":"db6d4eb64c0d3c240bf56a2786d789831870cb72"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"44e349385a5603b400667ebc3bfd7980cf4b865a","unresolved":false,"context_lines":[{"line_number":76,"context_line":"The current instance-actions versioned object, version 1.1, and the"},{"line_number":77,"context_line":"corresponding database table already contain a ``finish_time`` field of type"},{"line_number":78,"context_line":"datetime [NC3]_, though it\u0027s not currently populated.  So the change proposed"},{"line_number":79,"context_line":"in this spec would require no database changes."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"REST API impact"},{"line_number":82,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_8ebcf706","line":79,"updated":"2015-12-14 15:19:13.000000000","message":"We need to be more specific here, is it nullable?\n\nWhat will the migration do for old values? just leave it as null? How can we tell the difference between an old action vs an not finished new action?","commit_id":"6fd41fd56d6b2c6a755667509fa200cf2647592e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"44e349385a5603b400667ebc3bfd7980cf4b865a","unresolved":false,"context_lines":[{"line_number":81,"context_line":"REST API impact"},{"line_number":82,"context_line":"---------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"This would require a new microversion of the API."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"There are two API changes."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_ee6fbb8f","line":84,"updated":"2015-12-14 15:19:13.000000000","message":"Nit: s/This would/This will/","commit_id":"6fd41fd56d6b2c6a755667509fa200cf2647592e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"44e349385a5603b400667ebc3bfd7980cf4b865a","unresolved":false,"context_lines":[{"line_number":158,"context_line":"           \"start_time\": \"2012-12-05T00:00:00.000000\","},{"line_number":159,"context_line":"           \"user_id\": \"789\""},{"line_number":160,"context_line":"       }"},{"line_number":161,"context_line":"   }"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Security impact"},{"line_number":164,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_eeac9bee","line":161,"updated":"2015-12-14 15:19:13.000000000","message":"How does a not yet finished action look?\n\nHow do we deal with old instance actions and what the finish_time for the full action will look like?\n\nIt would be good if we know the difference between it being missing, and a new task that has not yet completed. As such, maybe we need to display \"unknown\" or similar?","commit_id":"6fd41fd56d6b2c6a755667509fa200cf2647592e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"44e349385a5603b400667ebc3bfd7980cf4b865a","unresolved":false,"context_lines":[{"line_number":208,"context_line":"#. API changes: modify the instance-action responses as described above."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"#. Make sure successfully completed actions have their finish time"},{"line_number":211,"context_line":"   communicated to the os-instance-actions API."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Dependencies"},{"line_number":214,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_0e1ec75e","line":211,"updated":"2015-12-14 15:19:13.000000000","message":"This feels like the wrong order, we should only expose this via the API once we have all the details correct in the DB.","commit_id":"6fd41fd56d6b2c6a755667509fa200cf2647592e"}],"specs/newton/approved/consistent-instance-actions.rst":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3bc18b51aa5bb919f3b3aa2605a48250b2588175","unresolved":false,"context_lines":[{"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":"Briefly, we want to improve the reporting Nova does for long running"},{"line_number":20,"context_line":"asychronous actions.  In order to narrow the scope of the problem, this spec"},{"line_number":21,"context_line":"proposes improving the reporting for *successful* API actions."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The problem we want to address manifests itself in two ways."}],"source_content_type":"text/x-rst","patch_set":10,"id":"7af24918_e2edb7f0","line":20,"updated":"2016-03-06 19:27:14.000000000","message":"s/asychronous/asynchronous/","commit_id":"ca9653106b1ffe77552b8b08f0e3a148bbebe32e"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1b095d2d0009672a18d950f1d5ef3017774239b7","unresolved":false,"context_lines":[{"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":"Briefly, we want to improve the reporting Nova does for long running"},{"line_number":20,"context_line":"asychronous actions.  In order to narrow the scope of the problem, this spec"},{"line_number":21,"context_line":"proposes improving the reporting for *successful* API actions."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The problem we want to address manifests itself in two ways."}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba0121b8_9ee0bdce","line":20,"in_reply_to":"7af24918_e2edb7f0","updated":"2016-04-01 19:43:58.000000000","message":"Good eye.","commit_id":"ca9653106b1ffe77552b8b08f0e3a148bbebe32e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3bc18b51aa5bb919f3b3aa2605a48250b2588175","unresolved":false,"context_lines":[{"line_number":74,"context_line":"the instance-action\u0027s \u0027message\u0027 field is populated with \"Error\" [NC0]_, but"},{"line_number":75,"context_line":"there\u0027s no positive assertion that the instance-action has succeeded.  Thus one"},{"line_number":76,"context_line":"aspect of improving the reporting of successful instance actions is to"},{"line_number":77,"context_line":"introduce a status field specifically conveying such information."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The second way in which the problem of poor successful instance action"},{"line_number":80,"context_line":"reporting manifests itself in Nova is illustrated by comparing the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7af24918_42b90bec","line":77,"updated":"2016-03-06 19:27:14.000000000","message":"++","commit_id":"ca9653106b1ffe77552b8b08f0e3a148bbebe32e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3bc18b51aa5bb919f3b3aa2605a48250b2588175","unresolved":false,"context_lines":[{"line_number":174,"context_line":"   * ``error``: this applies when the ``result`` of the final event"},{"line_number":175,"context_line":"     comprising an instance-action is \"Error\""},{"line_number":176,"context_line":"   * ``unknown``: this applies when the version of the instance-action object"},{"line_number":177,"context_line":"     is \u003c 1.2."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"   There is some redundancy between the current ``message`` field of the"},{"line_number":180,"context_line":"   instance-action object and the proposed ``status`` field, but only in the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7af24918_22be7fd4","line":177,"updated":"2016-03-06 19:27:14.000000000","message":"In the vNext Compute API, I actually included a TIMED_OUT status to differentiate between tasks that failed to complete within an expected timeframe and tasks which failed due to some other error event. In addition, I proposed an ABORTED status for a task (for instance, live migration) that was aborted by the user. Also, I think \"RUNNING\" is a better term for the state of when a task is executing than \"PROCESSING\".","commit_id":"ca9653106b1ffe77552b8b08f0e3a148bbebe32e"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1b095d2d0009672a18d950f1d5ef3017774239b7","unresolved":false,"context_lines":[{"line_number":174,"context_line":"   * ``error``: this applies when the ``result`` of the final event"},{"line_number":175,"context_line":"     comprising an instance-action is \"Error\""},{"line_number":176,"context_line":"   * ``unknown``: this applies when the version of the instance-action object"},{"line_number":177,"context_line":"     is \u003c 1.2."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"   There is some redundancy between the current ``message`` field of the"},{"line_number":180,"context_line":"   instance-action object and the proposed ``status`` field, but only in the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba0121b8_1eacad34","line":177,"in_reply_to":"7af24918_22be7fd4","updated":"2016-04-01 19:43:58.000000000","message":"RUNNING works for me, I\u0027ll make the change.  You make an excellent point about ABORTED, I\u0027ll add that to the enumeration.","commit_id":"ca9653106b1ffe77552b8b08f0e3a148bbebe32e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3bc18b51aa5bb919f3b3aa2605a48250b2588175","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"#. Ensure that the finish time of every successfully completed asynchronous API"},{"line_number":190,"context_line":"   operation currently covered by the os-instance-actions API [OS1]_ is"},{"line_number":191,"context_line":"   correctly reported."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Out of Scope"},{"line_number":194,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7af24918_82b3130a","line":191,"updated":"2016-03-06 19:27:14.000000000","message":"Although I definitely support this API effort, I would prefer to use new generic GET /servers/{id]/tasks and GET /tasks/{id}/items instead of the old os-instance-actions API extension.\n\nhttp://docs.oscomputevnext.apiary.io/#reference/server-task\n\nThe above link shows my ideas on what a new API for this stuff might look like.","commit_id":"ca9653106b1ffe77552b8b08f0e3a148bbebe32e"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1b095d2d0009672a18d950f1d5ef3017774239b7","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"#. Ensure that the finish time of every successfully completed asynchronous API"},{"line_number":190,"context_line":"   operation currently covered by the os-instance-actions API [OS1]_ is"},{"line_number":191,"context_line":"   correctly reported."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Out of Scope"},{"line_number":194,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba0121b8_41ae48e8","line":191,"in_reply_to":"7af24918_82b3130a","updated":"2016-04-01 19:43:58.000000000","message":"Good point.  I spoke with John briefly about this, and I\u0027m going to follow his suggestion to split this spec in two:\n\n* this one, which will focus on getting the object changes made and get working on the code that will populate the appropriate info in the database\n* a second spec to discuss what the API that exposes this to the user should look like\n\nJay, in the interest of getting a patch up quickly, the second one will be the same API changes currently proposed in this doc; not because I don\u0027t like your proposal but so that we can have the discussion about what the API should look like in one place.","commit_id":"ca9653106b1ffe77552b8b08f0e3a148bbebe32e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3bc18b51aa5bb919f3b3aa2605a48250b2588175","unresolved":false,"context_lines":[{"line_number":236,"context_line":"List actions for a server"},{"line_number":237,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"``GET /v2.x/​{tenant_id}​/servers/​{server_id}​/os-instance-actions``"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"The response will include two new fields, ``finish_time`` and ``status``, for"},{"line_number":242,"context_line":"each instance-action object listed."}],"source_content_type":"text/x-rst","patch_set":10,"id":"7af24918_62b887e6","line":239,"updated":"2016-03-06 19:27:14.000000000","message":"-1\n\nSee above request to make this a new endpoint instead of using the os-instance-actions API extension. We\u0027re trying to move away from API extensions, not modify or extend the extensions.","commit_id":"ca9653106b1ffe77552b8b08f0e3a148bbebe32e"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1b095d2d0009672a18d950f1d5ef3017774239b7","unresolved":false,"context_lines":[{"line_number":236,"context_line":"List actions for a server"},{"line_number":237,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"``GET /v2.x/​{tenant_id}​/servers/​{server_id}​/os-instance-actions``"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"The response will include two new fields, ``finish_time`` and ``status``, for"},{"line_number":242,"context_line":"each instance-action object listed."}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba0121b8_a185a45a","line":239,"in_reply_to":"7af24918_62b887e6","updated":"2016-04-01 19:43:58.000000000","message":"Makes sense.  See my comment above about splitting up this spec.","commit_id":"ca9653106b1ffe77552b8b08f0e3a148bbebe32e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"dac5066dc33b605bcefdec2f6a8848789c64e9ef","unresolved":false,"context_lines":[{"line_number":143,"context_line":"this leaves such a user with partial information about an action.  Further,"},{"line_number":144,"context_line":"note that an admin user must make a call to get the instance-action-detail for"},{"line_number":145,"context_line":"each action to determine success status; the information is not available in"},{"line_number":146,"context_line":"the instance-actions-list response."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Use Cases"},{"line_number":149,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_7bb42181","line":146,"updated":"2016-05-17 11:02:06.000000000","message":"Honestly, this is too wordy for this context.\n\nI think its OK just to state that its not possible to determine if an instance action has finished or not.\n\nIts worth setting the context. This is not about exposing that in an API, its about ensuring Nova has the information needed for such an API change.","commit_id":"3153b5cb5a0f66952ba4bce9f1a5f25d65b018db"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"dac5066dc33b605bcefdec2f6a8848789c64e9ef","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"We propose the following:"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"#. Adding a ``finish_time`` field to the instance-action API object [NC1]_."},{"line_number":163,"context_line":"   This field is populated with the appropriate datetime upon completion of the"},{"line_number":164,"context_line":"   action.  The field is nullable."},{"line_number":165,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_3bf0d966","line":162,"range":{"start_line":162,"start_character":57,"end_line":162,"end_character":67},"updated":"2016-05-17 11:02:06.000000000","message":"What do you mean by the API object?\n\nDo you mean the instance-action object, that is persisted in the DB and read by the API?","commit_id":"3153b5cb5a0f66952ba4bce9f1a5f25d65b018db"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"5560e7145de15c227478bedcf8b0ab87af7cc175","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   The ``status`` field will take one from the following set of values:"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"   * ``running``: this will be the start state"},{"line_number":172,"context_line":"   * ``success``: this applies when the ``result`` of the final event"},{"line_number":173,"context_line":"     comprising an instance-action is \"Success\""},{"line_number":174,"context_line":"   * ``error``: this applies when the ``result`` of the final event"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9abb7d3a_ac3815d4","line":171,"updated":"2016-06-01 13:37:53.000000000","message":"instead of ``running`` I would rather say ``started``, because we don\u0027t actually know if it\u0027s still running or not.","commit_id":"3153b5cb5a0f66952ba4bce9f1a5f25d65b018db"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"fc002aaaf9c5c4c8aa3f8330b4868859ac69622a","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"   * ``running``: this will be the start state"},{"line_number":172,"context_line":"   * ``success``: this applies when the ``result`` of the final event"},{"line_number":173,"context_line":"     comprising an instance-action is \"Success\""},{"line_number":174,"context_line":"   * ``error``: this applies when the ``result`` of the final event"},{"line_number":175,"context_line":"     comprising an instance-action is \"Error\""},{"line_number":176,"context_line":"   * ``aborted``: this applies when the action does not complete because it has"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9abb7d3a_3250fc31","line":173,"updated":"2016-06-01 14:07:34.000000000","message":"Emm...In the upgrade case, we probably set the ``started`` status in the nova-api side, but if the compute node is old one, that means the status won\u0027t be updated to success.","commit_id":"3153b5cb5a0f66952ba4bce9f1a5f25d65b018db"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"40a152cd2526f51e29635ab0da8b7006521692ca","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"   * ``running``: this will be the start state"},{"line_number":172,"context_line":"   * ``success``: this applies when the ``result`` of the final event"},{"line_number":173,"context_line":"     comprising an instance-action is \"Success\""},{"line_number":174,"context_line":"   * ``error``: this applies when the ``result`` of the final event"},{"line_number":175,"context_line":"     comprising an instance-action is \"Error\""},{"line_number":176,"context_line":"   * ``aborted``: this applies when the action does not complete because it has"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9abb7d3a_3dec4d29","line":173,"in_reply_to":"9abb7d3a_3250fc31","updated":"2016-06-01 14:10:25.000000000","message":"this isn\u0027t the problem of this implementation. It is the problem new microversion shouldn\u0027t expose to user before upgrade finsihed.","commit_id":"3153b5cb5a0f66952ba4bce9f1a5f25d65b018db"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ddb9d9e83d200592bdc01da7756d7b69062023ab","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"   * ``running``: this will be the start state"},{"line_number":172,"context_line":"   * ``success``: this applies when the ``result`` of the final event"},{"line_number":173,"context_line":"     comprising an instance-action is \"Success\""},{"line_number":174,"context_line":"   * ``error``: this applies when the ``result`` of the final event"},{"line_number":175,"context_line":"     comprising an instance-action is \"Error\""},{"line_number":176,"context_line":"   * ``aborted``: this applies when the action does not complete because it has"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9abb7d3a_430854da","line":173,"in_reply_to":"9abb7d3a_3dec4d29","updated":"2016-06-01 14:39:08.000000000","message":"you make a good point, we should only add in \"started\" once all compute nodes have been upgraded..","commit_id":"3153b5cb5a0f66952ba4bce9f1a5f25d65b018db"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"dac5066dc33b605bcefdec2f6a8848789c64e9ef","unresolved":false,"context_lines":[{"line_number":232,"context_line":"The current instance-action versioned object, version 1.1, and the"},{"line_number":233,"context_line":"corresponding database table already contain a ``finish_time`` field of type"},{"line_number":234,"context_line":"datetime [NC3]_, though it\u0027s not currently populated.  This spec would require"},{"line_number":235,"context_line":"the addition of a new ``status`` field and bumping the verison of the"},{"line_number":236,"context_line":"instance-action object to version 1.2."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_36011006","line":235,"range":{"start_line":235,"start_character":18,"end_line":235,"end_character":38},"updated":"2016-05-17 11:02:06.000000000","message":"what is the type of this field?","commit_id":"3153b5cb5a0f66952ba4bce9f1a5f25d65b018db"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"dac5066dc33b605bcefdec2f6a8848789c64e9ef","unresolved":false,"context_lines":[{"line_number":252,"context_line":"Notifications impact"},{"line_number":253,"context_line":"--------------------"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"None"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"Other end user impact"},{"line_number":258,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_db7a6db9","line":255,"updated":"2016-05-17 11:02:06.000000000","message":"Honestly, we send *.end notifications for actions. I think we really need to look at the versioned notification work, and this instance actions work, and see if we can combine them in some sensible way.","commit_id":"3153b5cb5a0f66952ba4bce9f1a5f25d65b018db"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"bf0ee4560e0c8b5049cd6fc7077d4245355e442b","unresolved":false,"context_lines":[{"line_number":252,"context_line":"Notifications impact"},{"line_number":253,"context_line":"--------------------"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"None"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"Other end user impact"},{"line_number":258,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_a6f14903","line":255,"in_reply_to":"dab17558_33191d23","updated":"2016-05-17 12:17:14.000000000","message":"It seems that the primary purpose of this spec to have a nice \u0027status\u0027 of the instanceAction. I think this can be done independently (and in parallel) with the versioned notification transformation. After that we can think about using the same source of information to fill intanceAction event list and emitt the notifications.","commit_id":"3153b5cb5a0f66952ba4bce9f1a5f25d65b018db"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d7acc8bb4789c69330661040cb550466856becb5","unresolved":false,"context_lines":[{"line_number":252,"context_line":"Notifications impact"},{"line_number":253,"context_line":"--------------------"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"None"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"Other end user impact"},{"line_number":258,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_33191d23","line":255,"in_reply_to":"dab17558_db7a6db9","updated":"2016-05-17 12:02:42.000000000","message":"The events in the admin response looks very similar to the instance.\u003caction\u003e.\u003cphase\u003e notifications we are emitting (and know we are transforming them to the versioned format).\n\nIn the current code (as far as I understand) the information is coming from two different place as the instance actions has an EventReporter decorator while the instance.\u003caction\u003e notifications uses a direct call to nova.compute.utils.notify_about_instance_usage() from appropriate places. \n\nIt is tempting to use a single source of information. I think it is possible. \n\na) We can call proper objects.InstanceActionEvent.event_*() from the notify_about_instance_usage() function based on the event type and the fault if any. We might be able to fill all the necessary information (traceback might need a bit of work to be provided). However the name of the actions is different from the event_type of the notifications so we either break the API by changing it or we create a big mapping in the code between actions and event_types.\n\nb) We can try to emit notifications from the EventReporter instead of calling the notify_about_instance_usage() directly from the manager code. The same name conversion can be a problem.\n\nIn general both cases might have a problem of covering different actions / events today so when we start using the single source of information we might want to check what is missing from the selected source for the other purpose and add the missing coverage.","commit_id":"3153b5cb5a0f66952ba4bce9f1a5f25d65b018db"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"dac5066dc33b605bcefdec2f6a8848789c64e9ef","unresolved":false,"context_lines":[{"line_number":289,"context_line":"Work Items"},{"line_number":290,"context_line":"----------"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"#. Define and implement version 1.2 of the instance-action object, including"},{"line_number":293,"context_line":"   database changes."},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"#. Make sure successfully completed actions have their finish time and status"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_5b131d65","line":292,"range":{"start_line":292,"start_character":24,"end_line":292,"end_character":35},"updated":"2016-05-17 11:02:06.000000000","message":"a new minor version, is probably better, in case things happen after the spec is approved","commit_id":"3153b5cb5a0f66952ba4bce9f1a5f25d65b018db"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"dac5066dc33b605bcefdec2f6a8848789c64e9ef","unresolved":false,"context_lines":[{"line_number":305,"context_line":""},{"line_number":306,"context_line":"Since we\u0027re dealing with the \"happy path\" here (i.e., successful server"},{"line_number":307,"context_line":"actions), there should be existing tests that can be modified to test the"},{"line_number":308,"context_line":"changes described herein."},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Documentation Impact"},{"line_number":311,"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":11,"id":"dab17558_364f506c","line":308,"updated":"2016-05-17 11:02:06.000000000","message":"So are you saying unit tests are sufficient here? I think thats reasonable for now.","commit_id":"3153b5cb5a0f66952ba4bce9f1a5f25d65b018db"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"61715569adbf04086100b50073eebaab2cb5e02f","unresolved":false,"context_lines":[{"line_number":160,"context_line":"We propose the following:"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"#. Adding a ``finish_time`` field to the instance-action API object [NC1]_."},{"line_number":163,"context_line":"   This field is populated with the appropriate datetime upon completion of the"},{"line_number":164,"context_line":"   action.  The field is nullable."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Adding a ``status`` field to the instance-action object.  This field will"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9abb7d3a_d69236f5","line":163,"updated":"2016-06-01 17:44:18.000000000","message":"How is this going to be populated? The finish_time of the action-events is populated with a method decorator because the scope of an event is a single compute method. instance-actions can be long running and span multiple services, there is no reliable automated way to get the finish_time. Is the proposal to manually trigger a finish_time update at each terminal point of an action?","commit_id":"8cad55b208eb4fd5ebe9b0b3a8febbc268194772"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"fbb73c829c7cdbaa937181e14ed8673a9bfdfd54","unresolved":false,"context_lines":[{"line_number":160,"context_line":"We propose the following:"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"#. Adding a ``finish_time`` field to the instance-action API object [NC1]_."},{"line_number":163,"context_line":"   This field is populated with the appropriate datetime upon completion of the"},{"line_number":164,"context_line":"   action.  The field is nullable."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Adding a ``status`` field to the instance-action object.  This field will"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9abb7d3a_3029a138","line":163,"in_reply_to":"9abb7d3a_87da0ce8","updated":"2016-06-03 08:38:02.000000000","message":"I don\u0027t think we have identified all those places.","commit_id":"8cad55b208eb4fd5ebe9b0b3a8febbc268194772"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"f8a378f7cd3678cf147c1052abeca3af9a0b23ca","unresolved":false,"context_lines":[{"line_number":160,"context_line":"We propose the following:"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"#. Adding a ``finish_time`` field to the instance-action API object [NC1]_."},{"line_number":163,"context_line":"   This field is populated with the appropriate datetime upon completion of the"},{"line_number":164,"context_line":"   action.  The field is nullable."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Adding a ``status`` field to the instance-action object.  This field will"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9abb7d3a_87da0ce8","line":163,"in_reply_to":"9abb7d3a_d5232ca6","updated":"2016-06-02 13:05:28.000000000","message":"Do we have .end and .error notifications in place for all actions that will be covered by this? In other words, are all of those places already identified?","commit_id":"8cad55b208eb4fd5ebe9b0b3a8febbc268194772"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3a6790401f198e29aa67e30911f2e9ada914bd71","unresolved":false,"context_lines":[{"line_number":160,"context_line":"We propose the following:"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"#. Adding a ``finish_time`` field to the instance-action API object [NC1]_."},{"line_number":163,"context_line":"   This field is populated with the appropriate datetime upon completion of the"},{"line_number":164,"context_line":"   action.  The field is nullable."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Adding a ``status`` field to the instance-action object.  This field will"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9abb7d3a_d5232ca6","line":163,"in_reply_to":"9abb7d3a_d69236f5","updated":"2016-06-02 08:19:54.000000000","message":"Yes, basically identify the terminal point, and write that out.\n\nSimilar to what we do for the \".end\" and \".error\" notifications we send today.","commit_id":"8cad55b208eb4fd5ebe9b0b3a8febbc268194772"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"61715569adbf04086100b50073eebaab2cb5e02f","unresolved":false,"context_lines":[{"line_number":164,"context_line":"   action.  The field is nullable."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Adding a ``status`` field to the instance-action object.  This field will"},{"line_number":167,"context_line":"   also be propagated to the API object."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   The ``status`` field will take one from the following set of values:"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"9abb7d3a_5611265c","line":167,"updated":"2016-06-01 17:44:18.000000000","message":"It would be really easy for an action to fail at some point and not update this message. What is being proposed as a way to ensure that these updates happen?","commit_id":"8cad55b208eb4fd5ebe9b0b3a8febbc268194772"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3a6790401f198e29aa67e30911f2e9ada914bd71","unresolved":false,"context_lines":[{"line_number":164,"context_line":"   action.  The field is nullable."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Adding a ``status`` field to the instance-action object.  This field will"},{"line_number":167,"context_line":"   also be propagated to the API object."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   The ``status`` field will take one from the following set of values:"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"9abb7d3a_7561a0d3","line":167,"in_reply_to":"9abb7d3a_5611265c","updated":"2016-06-02 08:19:54.000000000","message":"Right now, there is no proposed way to catch that.\n\nThe uncompleted state seems a fair representation of the current state, should that happen. From the registered actions, you should be able to see a lack of progress, in some sense.\n\nIn my head, this is very tied to us doing the end/error notifications correctly.","commit_id":"8cad55b208eb4fd5ebe9b0b3a8febbc268194772"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"f8a378f7cd3678cf147c1052abeca3af9a0b23ca","unresolved":false,"context_lines":[{"line_number":164,"context_line":"   action.  The field is nullable."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Adding a ``status`` field to the instance-action object.  This field will"},{"line_number":167,"context_line":"   also be propagated to the API object."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   The ``status`` field will take one from the following set of values:"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"9abb7d3a_87884cc8","line":167,"in_reply_to":"9abb7d3a_7561a0d3","updated":"2016-06-02 13:05:28.000000000","message":"My concern is that something will get into started, and then never leave.\n\nDo we currently handle .end/.error notifications correctly for all actions that will be covered by this?","commit_id":"8cad55b208eb4fd5ebe9b0b3a8febbc268194772"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"fbb73c829c7cdbaa937181e14ed8673a9bfdfd54","unresolved":false,"context_lines":[{"line_number":164,"context_line":"   action.  The field is nullable."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"#. Adding a ``status`` field to the instance-action object.  This field will"},{"line_number":167,"context_line":"   also be propagated to the API object."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   The ``status`` field will take one from the following set of values:"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"9abb7d3a_d0f135cf","line":167,"in_reply_to":"9abb7d3a_87884cc8","updated":"2016-06-03 08:38:02.000000000","message":"See the new version where I try to address that concern with the extra timeout logic, to ease the transition.","commit_id":"8cad55b208eb4fd5ebe9b0b3a8febbc268194772"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"01638824631bb83152e1ad3b3a1667d6a0e892e8","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"   * ``started``: this will be the initial state, but it will only be"},{"line_number":172,"context_line":"     populated in the API when all compute nodes have been upgraded, so"},{"line_number":173,"context_line":"     we don\u0027t have actions that never get updated from started."},{"line_number":174,"context_line":"   * ``success``: this applies when the ``result`` of the final event"},{"line_number":175,"context_line":"     comprising an instance-action is \"Success\""},{"line_number":176,"context_line":"   * ``error``: this applies when the ``result`` of the final event"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9abb7d3a_2350b031","line":173,"updated":"2016-06-01 14:46:25.000000000","message":"++","commit_id":"8cad55b208eb4fd5ebe9b0b3a8febbc268194772"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"41543d0e588047b3caa72b7372abeae3c0902595","unresolved":false,"context_lines":[{"line_number":174,"context_line":"   * ``started``: this will be the initial state, but it will only be"},{"line_number":175,"context_line":"     populated in the API when all compute nodes have been upgraded, so"},{"line_number":176,"context_line":"     we don\u0027t have actions that never get updated from started."},{"line_number":177,"context_line":"   * ``success``: this applies when the ``result`` of the final event"},{"line_number":178,"context_line":"     comprising an instance-action is \"Success\""},{"line_number":179,"context_line":"   * ``error``: this applies when the ``result`` of the final event"},{"line_number":180,"context_line":"     comprising an instance-action is \"Error\""},{"line_number":181,"context_line":"   * ``aborted``: this applies when the action does not complete because it has"}],"source_content_type":"text/x-rst","patch_set":15,"id":"9abb7d3a_69eee9b5","line":178,"range":{"start_line":177,"start_character":5,"end_line":178,"end_character":47},"updated":"2016-06-02 09:39:03.000000000","message":"talking about live migration, what would be final event? there are post and rollback steps that are done in async manner(rpc cast). Wouldn\u0027t it be better to threat action as finish successfully if all steps are successful?","commit_id":"aeeacfc45af74f12207dd540d8fdc0c08ecb9986"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9e89a72d9276ab1cf9905265c1273bbea84aed3b","unresolved":false,"context_lines":[{"line_number":174,"context_line":"   * ``started``: this will be the initial state, but it will only be"},{"line_number":175,"context_line":"     populated in the API when all compute nodes have been upgraded, so"},{"line_number":176,"context_line":"     we don\u0027t have actions that never get updated from started."},{"line_number":177,"context_line":"   * ``success``: this applies when the ``result`` of the final event"},{"line_number":178,"context_line":"     comprising an instance-action is \"Success\""},{"line_number":179,"context_line":"   * ``error``: this applies when the ``result`` of the final event"},{"line_number":180,"context_line":"     comprising an instance-action is \"Error\""},{"line_number":181,"context_line":"   * ``aborted``: this applies when the action does not complete because it has"}],"source_content_type":"text/x-rst","patch_set":15,"id":"9abb7d3a_f039d9a4","line":178,"range":{"start_line":177,"start_character":5,"end_line":178,"end_character":47},"in_reply_to":"9abb7d3a_69eee9b5","updated":"2016-06-03 08:36:37.000000000","message":"Yes, that is the intent of this effort. When the API action is complete, the instance-action is complete, and not until that point.","commit_id":"aeeacfc45af74f12207dd540d8fdc0c08ecb9986"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"9a4abffbc7d2e1493659ea58c875aba18cf1711f","unresolved":false,"context_lines":[{"line_number":174,"context_line":"   * ``started``: this will be the initial state, but it will only be"},{"line_number":175,"context_line":"     populated in the API when all compute nodes have been upgraded, so"},{"line_number":176,"context_line":"     we don\u0027t have actions that never get updated from started."},{"line_number":177,"context_line":"   * ``success``: this applies when the ``result`` of the final event"},{"line_number":178,"context_line":"     comprising an instance-action is \"Success\""},{"line_number":179,"context_line":"   * ``error``: this applies when the ``result`` of the final event"},{"line_number":180,"context_line":"     comprising an instance-action is \"Error\""},{"line_number":181,"context_line":"   * ``aborted``: this applies when the action does not complete because it has"}],"source_content_type":"text/x-rst","patch_set":15,"id":"9abb7d3a_bc8e0325","line":178,"range":{"start_line":177,"start_character":5,"end_line":178,"end_character":47},"in_reply_to":"9abb7d3a_f039d9a4","updated":"2016-06-03 11:12:24.000000000","message":"Yes, you will set up boundaries by implementing this bp, but I mean it could be hard to detect really last event during action. Wouldn\u0027t it be better to track not last event but all instead, and mark action successful if and only if all event are finished without error.","commit_id":"aeeacfc45af74f12207dd540d8fdc0c08ecb9986"}]}
