)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f0d953bcd9e8dcb068d093aae062cc7c100e5f34","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"80929856_a1cf78c5","updated":"2024-09-27 13:56:17.000000000","message":"Looks mostly fine - the -1 is for the host/hostId stuff inline. The notifications stuff is an open question.","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"545eabc919e88b48a26a8c40f0afcba1cc23f394","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"99c4f172_1a7220c7","updated":"2024-09-27 14:41:46.000000000","message":"Thanks Artom for review.\n\nI have addressed your comments and updated the spec accordingly for further review.","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"09bbb867303f84a5ce32c2e8b505f35ced29b3ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"29db7314_10daba51","updated":"2024-09-27 18:31:00.000000000","message":"Looks fine - I guess I\u0027m just surprised that we apparently don\u0027t need to do any code changes for this to be useful. I thought we weren\u0027t properly finishing some/most actions?","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"01f2cab87d281387e3531ced7f6da179c7a940e5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8e3119f7_a6dadccb","updated":"2024-11-26 04:53:10.000000000","message":"this is missing detail.\n\nspecifically are you asserting that we internally mark the instance actions as complete and recored a finsih time already in the db but just dont include it in the api responce?","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"53417195b632d52eb073acf7f617bb81646db579","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"acca8019_4b832a19","in_reply_to":"8e3119f7_a6dadccb","updated":"2025-06-16 06:10:55.000000000","message":"Currently we don\u0027t record it in db, but we have finish_time field in db set to NULL for all actions.\n\nI have also updated the same in the updated spec.","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"d3862d1ee5e1b814b476530bd2b4ef2c0828502c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9071731c_7925ef71","in_reply_to":"acca8019_4b832a19","updated":"2025-07-03 11:50:15.000000000","message":"Done","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"8ba9cf455a5e190a297ee87264d9b9de518134e1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3c632808_2d295f6e","updated":"2025-06-10 07:08:53.000000000","message":"Thanks all for your suggestions. I have updated the spec as per discussion.\n\nAlso please review the implementation, which is also completed.\nhttps://review.opendev.org/q/topic:%22bp/show-instance-action-finish-time%22","commit_id":"87865231e62a89c2b5332b47c27e15534e613c69"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b8ae3e2e0aad0767c669b88f174a9e21c2114d81","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"8646ec57_1ca7abae","updated":"2025-01-08 13:51:57.000000000","message":"The work is not just about exposing something on the API but actually gathering the missing data in the various nova code paths.","commit_id":"87865231e62a89c2b5332b47c27e15534e613c69"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"2d46ecb2aa39dbb57cd70fb09ce64172aabf843d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5715b7ab_dc9a012b","updated":"2025-06-12 09:42:13.000000000","message":"A soft -1, just to notify you about little changes.\nI have reviewed the implementation too, and it looks good to me.\nMaybe this spec could provide more details, but there is the associated implementation so I think it is ok.","commit_id":"39b86f70744c191fb5304cef229b1f23dd6abe8a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"dcb28b7045f53db12cadd3801fbf65390e39b968","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"9e065f4d_6ed2ce12","updated":"2025-06-17 13:00:32.000000000","message":"I have a small concern with rolling-upgrade old computes","commit_id":"c3a92467e6f78e218c464564d747775a1bf565bd"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"28b31d9981d7edc8f8bb05002078328f0b8bc156","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"342e3188_90765518","updated":"2025-07-02 21:32:32.000000000","message":"I am not against the proposal but I would like to have some implementation detail in spec and PoC (showing some tempest tests showing workflow from user perspective, soemthing like this[1]) to see if that works fine or not.\n\n[1] \n1. Perform some action for example, attach volume to instance \n2. monitor action and its finish time via instance action API\n3. Verify that volume attached is actually completed (seeing volume status or found server\u0027s volume attachment)\n4.Assert if the instance action API return the finish_time info correctly, finish_time should be earlier than Tempest got volume in-use status/found server attachment","commit_id":"ad39adbeae972bb49644b2a17100cb5825444c7b"}],"specs/2025.1/approved/show-finish-time.rst":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"1c2a739ccf55d9ae73dc88b8dcad95bfcadeb917","unresolved":true,"context_lines":[{"line_number":14,"context_line":"the action and create Instance Action object in database with respective"},{"line_number":15,"context_line":"fields, but as of now, nova doesn\u0027t explicitly end any instance action"},{"line_number":16,"context_line":"by calling finish method of Instance Action object."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"a7aefff5_25508f15","line":17,"updated":"2024-09-26 14:41:40.000000000","message":"Please add the BP link to https://blueprints.launchpad.net/nova/+spec/show-instance-action-finish-time here :)","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"545eabc919e88b48a26a8c40f0afcba1cc23f394","unresolved":false,"context_lines":[{"line_number":14,"context_line":"the action and create Instance Action object in database with respective"},{"line_number":15,"context_line":"fields, but as of now, nova doesn\u0027t explicitly end any instance action"},{"line_number":16,"context_line":"by calling finish method of Instance Action object."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bc249761_43fda28f","line":17,"in_reply_to":"a7aefff5_25508f15","updated":"2024-09-27 14:41:46.000000000","message":"Done","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f0d953bcd9e8dcb068d093aae062cc7c100e5f34","unresolved":true,"context_lines":[{"line_number":64,"context_line":"            \"result\": \"Success\","},{"line_number":65,"context_line":"            \"start_time\": \"2017-12-07T11:07:06.251280\","},{"line_number":66,"context_line":"            \"traceback\": null,"},{"line_number":67,"context_line":"            \"host\": \"host1\","},{"line_number":68,"context_line":"            \"hostId\": \"8a8d66db9eed58f2b1283d23acc9a32691290b603a716d81d8ed8c4e\""},{"line_number":69,"context_line":"            }"},{"line_number":70,"context_line":"        ],"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7fae8721_31e01677","line":67,"updated":"2024-09-27 13:56:17.000000000","message":"I guess this is useful, but since this is the first mention  of adding host, I\u0027m not sure why this is being done in a spec that talks about finish_time.","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"9ccfef6fe424c1df090edc29895e1e5c434dfec2","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            \"result\": \"Success\","},{"line_number":65,"context_line":"            \"start_time\": \"2017-12-07T11:07:06.251280\","},{"line_number":66,"context_line":"            \"traceback\": null,"},{"line_number":67,"context_line":"            \"host\": \"host1\","},{"line_number":68,"context_line":"            \"hostId\": \"8a8d66db9eed58f2b1283d23acc9a32691290b603a716d81d8ed8c4e\""},{"line_number":69,"context_line":"            }"},{"line_number":70,"context_line":"        ],"}],"source_content_type":"text/x-rst","patch_set":3,"id":"4b4e0333_d8a9cebb","line":67,"in_reply_to":"4920b56d_e92b900e","updated":"2025-06-12 07:09:59.000000000","message":"Acknowledged","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"545eabc919e88b48a26a8c40f0afcba1cc23f394","unresolved":true,"context_lines":[{"line_number":64,"context_line":"            \"result\": \"Success\","},{"line_number":65,"context_line":"            \"start_time\": \"2017-12-07T11:07:06.251280\","},{"line_number":66,"context_line":"            \"traceback\": null,"},{"line_number":67,"context_line":"            \"host\": \"host1\","},{"line_number":68,"context_line":"            \"hostId\": \"8a8d66db9eed58f2b1283d23acc9a32691290b603a716d81d8ed8c4e\""},{"line_number":69,"context_line":"            }"},{"line_number":70,"context_line":"        ],"}],"source_content_type":"text/x-rst","patch_set":3,"id":"4920b56d_e92b900e","line":67,"in_reply_to":"7fae8721_31e01677","updated":"2024-09-27 14:41:46.000000000","message":"I guess, I forgot to update this part, corrected now. Thanks!","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f0d953bcd9e8dcb068d093aae062cc7c100e5f34","unresolved":true,"context_lines":[{"line_number":65,"context_line":"            \"start_time\": \"2017-12-07T11:07:06.251280\","},{"line_number":66,"context_line":"            \"traceback\": null,"},{"line_number":67,"context_line":"            \"host\": \"host1\","},{"line_number":68,"context_line":"            \"hostId\": \"8a8d66db9eed58f2b1283d23acc9a32691290b603a716d81d8ed8c4e\""},{"line_number":69,"context_line":"            }"},{"line_number":70,"context_line":"        ],"},{"line_number":71,"context_line":"        \"instance_uuid\": \"b48316c5-71e8-45e4-9884-6c78055b9b13\","}],"source_content_type":"text/x-rst","patch_set":3,"id":"871ba483_42a3d113","line":68,"updated":"2024-09-27 13:56:17.000000000","message":"And then this hash I have no idea what the use case would be for exposing it.","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"545eabc919e88b48a26a8c40f0afcba1cc23f394","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            \"start_time\": \"2017-12-07T11:07:06.251280\","},{"line_number":66,"context_line":"            \"traceback\": null,"},{"line_number":67,"context_line":"            \"host\": \"host1\","},{"line_number":68,"context_line":"            \"hostId\": \"8a8d66db9eed58f2b1283d23acc9a32691290b603a716d81d8ed8c4e\""},{"line_number":69,"context_line":"            }"},{"line_number":70,"context_line":"        ],"},{"line_number":71,"context_line":"        \"instance_uuid\": \"b48316c5-71e8-45e4-9884-6c78055b9b13\","}],"source_content_type":"text/x-rst","patch_set":3,"id":"e8769994_df31a6d0","line":68,"in_reply_to":"871ba483_42a3d113","updated":"2024-09-27 14:41:46.000000000","message":"This was added in https://review.opendev.org/c/openstack/nova/+/557145","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f0d953bcd9e8dcb068d093aae062cc7c100e5f34","unresolved":true,"context_lines":[{"line_number":73,"context_line":"        \"project_id\": \"6f70656e737461636b20342065766572\","},{"line_number":74,"context_line":"        \"request_id\": \"req-3293a3f1-b44c-4609-b8d2-d81b105636b8\","},{"line_number":75,"context_line":"        \"start_time\": \"2017-12-07T11:07:06.088644\","},{"line_number":76,"context_line":"        \"finish_time\": \"2017-12-07T11:07:06.431902\","},{"line_number":77,"context_line":"        \"updated_at\": \"2017-12-07T11:07:06.431902\","},{"line_number":78,"context_line":"        \"user_id\": \"fake\""},{"line_number":79,"context_line":"      }"}],"source_content_type":"text/x-rst","patch_set":3,"id":"4f873883_f691edb1","line":76,"updated":"2024-09-27 13:56:17.000000000","message":"*This* is the actually interesting new field. We already expose the finish_time for individual events (at least according to our api-ref, not sure whether they\u0027re actually filled in in practice), but we *don\u0027t* expose finish_time for the whole action.","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"9ccfef6fe424c1df090edc29895e1e5c434dfec2","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        \"project_id\": \"6f70656e737461636b20342065766572\","},{"line_number":74,"context_line":"        \"request_id\": \"req-3293a3f1-b44c-4609-b8d2-d81b105636b8\","},{"line_number":75,"context_line":"        \"start_time\": \"2017-12-07T11:07:06.088644\","},{"line_number":76,"context_line":"        \"finish_time\": \"2017-12-07T11:07:06.431902\","},{"line_number":77,"context_line":"        \"updated_at\": \"2017-12-07T11:07:06.431902\","},{"line_number":78,"context_line":"        \"user_id\": \"fake\""},{"line_number":79,"context_line":"      }"}],"source_content_type":"text/x-rst","patch_set":3,"id":"e4918cb7_1eaac6cd","line":76,"in_reply_to":"4f873883_f691edb1","updated":"2025-06-12 07:09:59.000000000","message":"Acknowledged","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f0d953bcd9e8dcb068d093aae062cc7c100e5f34","unresolved":true,"context_lines":[{"line_number":113,"context_line":"Notifications impact"},{"line_number":114,"context_line":"--------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"None"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Other end user impact"},{"line_number":119,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"f9aa5802_427d6340","line":116,"updated":"2024-09-27 13:56:17.000000000","message":"Open question: so we send these events over the notification bus as well, no (please confirm, I\u0027m not actually sure about this)? Wouldn\u0027t there be notifications impact as well then?","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"9ccfef6fe424c1df090edc29895e1e5c434dfec2","unresolved":false,"context_lines":[{"line_number":113,"context_line":"Notifications impact"},{"line_number":114,"context_line":"--------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"None"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Other end user impact"},{"line_number":119,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"66ea3318_4dc9f471","line":116,"in_reply_to":"13e71639_b8d0a65c","updated":"2025-06-12 07:09:59.000000000","message":"Acknowledged","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"01f2cab87d281387e3531ced7f6da179c7a940e5","unresolved":true,"context_lines":[{"line_number":113,"context_line":"Notifications impact"},{"line_number":114,"context_line":"--------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"None"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Other end user impact"},{"line_number":119,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"d98d4a87_44f168b4","line":116,"in_reply_to":"6b9a6b61_e5dc563d","updated":"2024-11-26 04:53:10.000000000","message":"we omitt notficcationf form manhy of the events, im not sure if we do for all of them but in general we do. updating the events and the notifcation we send are two seperact operations however.","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"63836f53ef425e4034b034af2bf05f97780bf08f","unresolved":true,"context_lines":[{"line_number":113,"context_line":"Notifications impact"},{"line_number":114,"context_line":"--------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"None"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Other end user impact"},{"line_number":119,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"13e71639_b8d0a65c","line":116,"in_reply_to":"81b16014_73347be3","updated":"2025-01-14 08:10:18.000000000","message":"I\u0027d say it\u0027s super helpful the action event, especially finish event, and \u003caction\u003e.end notification are synchronized in case of error scenario. For example, Nova doesn\u0027t send instance.create.end event if an instance goes to error status due to any reason. As I described above, if the action list API can define `finish_time` as a key to check in-progress or error, it\u0027s a great to identify the action status.\n\nWe applied our heuristic approach to check whether an action is ended or not using notification.","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b8ae3e2e0aad0767c669b88f174a9e21c2114d81","unresolved":true,"context_lines":[{"line_number":113,"context_line":"Notifications impact"},{"line_number":114,"context_line":"--------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"None"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Other end user impact"},{"line_number":119,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"81b16014_73347be3","line":116,"in_reply_to":"d98d4a87_44f168b4","updated":"2025-01-08 13:51:57.000000000","message":"Yepp events in the DB and notifications on the message bus are separate concerns today. But it is an interesting point why they are separate as they are basically talking about the same events happening inside the nova code.\n\nThe work targeted here about having specific finish time for each action already fairly big so probably does not make sense to even more blow it up to try to sync the instance.\u003caction\u003e.end notification sending with the DB action finish(). But we could. If we do then we need to be careful not to change when certain notifications are sent and that my break external tools acting on those notifications.","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"545eabc919e88b48a26a8c40f0afcba1cc23f394","unresolved":true,"context_lines":[{"line_number":113,"context_line":"Notifications impact"},{"line_number":114,"context_line":"--------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"None"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Other end user impact"},{"line_number":119,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"6b9a6b61_e5dc563d","line":116,"in_reply_to":"f9aa5802_427d6340","updated":"2024-09-27 14:41:46.000000000","message":"AFAIK we don\u0027t send events over notification bus.","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f0d953bcd9e8dcb068d093aae062cc7c100e5f34","unresolved":true,"context_lines":[{"line_number":171,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"- Add unit tests"},{"line_number":174,"context_line":"- Add functional tests (API samples)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Documentation Impact"},{"line_number":177,"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":"23cd9cef_6660ccf9","line":174,"updated":"2024-09-27 13:56:17.000000000","message":"And notification sample tests as well, if it turns out we need them.","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"545eabc919e88b48a26a8c40f0afcba1cc23f394","unresolved":false,"context_lines":[{"line_number":171,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"- Add unit tests"},{"line_number":174,"context_line":"- Add functional tests (API samples)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Documentation Impact"},{"line_number":177,"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":"89420536_fc69176c","line":174,"in_reply_to":"23cd9cef_6660ccf9","updated":"2024-09-27 14:41:46.000000000","message":"Acknowledged","commit_id":"ebaf954bfeec9dd0ee42f6b4e19f5e66c50eea80"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"01f2cab87d281387e3531ced7f6da179c7a940e5","unresolved":true,"context_lines":[{"line_number":26,"context_line":"Currently, the admins can use instance action API to look up the instance"},{"line_number":27,"context_line":"actions info, it is very useful for admins and operators. But the"},{"line_number":28,"context_line":"``finish_time`` info of actions are not recorded and not exposed to user."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This ``finish_time`` info helps admins to record the end time for the action,"},{"line_number":31,"context_line":"similar to the recording of start_time of action."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"00a99d7f_6cb56391","line":29,"updated":"2024-11-26 04:53:10.000000000","message":"im pretty sure this api is not admin only. its avaible to normal user with slightly less detail.","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"9ccfef6fe424c1df090edc29895e1e5c434dfec2","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Currently, the admins can use instance action API to look up the instance"},{"line_number":27,"context_line":"actions info, it is very useful for admins and operators. But the"},{"line_number":28,"context_line":"``finish_time`` info of actions are not recorded and not exposed to user."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This ``finish_time`` info helps admins to record the end time for the action,"},{"line_number":31,"context_line":"similar to the recording of start_time of action."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"f0dd6237_cc1db37b","line":29,"in_reply_to":"00a99d7f_6cb56391","updated":"2025-06-12 07:09:59.000000000","message":"Acknowledged","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"01f2cab87d281387e3531ced7f6da179c7a940e5","unresolved":true,"context_lines":[{"line_number":28,"context_line":"``finish_time`` info of actions are not recorded and not exposed to user."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This ``finish_time`` info helps admins to record the end time for the action,"},{"line_number":31,"context_line":"similar to the recording of start_time of action."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Use Cases"},{"line_number":34,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ab0c14fd_91b1a8bd","line":31,"updated":"2024-11-26 04:53:10.000000000","message":"again not just for admins it allow normal user to detect if operations like attach have completed","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"9ccfef6fe424c1df090edc29895e1e5c434dfec2","unresolved":false,"context_lines":[{"line_number":28,"context_line":"``finish_time`` info of actions are not recorded and not exposed to user."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This ``finish_time`` info helps admins to record the end time for the action,"},{"line_number":31,"context_line":"similar to the recording of start_time of action."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Use Cases"},{"line_number":34,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9b157d2f_f0c06ac3","line":31,"in_reply_to":"ab0c14fd_91b1a8bd","updated":"2025-06-12 07:09:59.000000000","message":"Acknowledged","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"01f2cab87d281387e3531ced7f6da179c7a940e5","unresolved":true,"context_lines":[{"line_number":42,"context_line":"Currently, the instance action record has a ``finish_time`` column on it [1]_,"},{"line_number":43,"context_line":"we just need to record the ``finish_time`` info when action is recorded and add"},{"line_number":44,"context_line":"the ``finish_time`` field in the response."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Alternatives"},{"line_number":47,"context_line":"------------"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"86deee8b_2a27620b","line":45,"updated":"2024-11-26 04:53:10.000000000","message":"i don tthink this is entirly sufficnet\n\nyes we need to have a finsih time but we also need to know that the actul action is complete and no future events will be added.\n\n\nthe instance actions events is a list because there can be any number of events\nthat is part of the current problem. as a normal user you cant really know how many expected events there are so you cant really know if the action is complete because waiting for any one event is not enough unless you know its the final evnet of the action.","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"9ccfef6fe424c1df090edc29895e1e5c434dfec2","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Currently, the instance action record has a ``finish_time`` column on it [1]_,"},{"line_number":43,"context_line":"we just need to record the ``finish_time`` info when action is recorded and add"},{"line_number":44,"context_line":"the ``finish_time`` field in the response."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Alternatives"},{"line_number":47,"context_line":"------------"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"6e3890cd_981bdbc7","line":45,"in_reply_to":"5216de2d_9dee79eb","updated":"2025-06-12 07:09:59.000000000","message":"Done","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"8ba9cf455a5e190a297ee87264d9b9de518134e1","unresolved":true,"context_lines":[{"line_number":42,"context_line":"Currently, the instance action record has a ``finish_time`` column on it [1]_,"},{"line_number":43,"context_line":"we just need to record the ``finish_time`` info when action is recorded and add"},{"line_number":44,"context_line":"the ``finish_time`` field in the response."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Alternatives"},{"line_number":47,"context_line":"------------"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5216de2d_9dee79eb","line":45,"in_reply_to":"67764a4e_d4c39990","updated":"2025-06-10 07:08:53.000000000","message":"To finish the action, we are calling instance_action finish in decorator wrap_instance_action.","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b8ae3e2e0aad0767c669b88f174a9e21c2114d81","unresolved":true,"context_lines":[{"line_number":42,"context_line":"Currently, the instance action record has a ``finish_time`` column on it [1]_,"},{"line_number":43,"context_line":"we just need to record the ``finish_time`` info when action is recorded and add"},{"line_number":44,"context_line":"the ``finish_time`` field in the response."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Alternatives"},{"line_number":47,"context_line":"------------"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ebaecc8_0ed14373","line":45,"in_reply_to":"86deee8b_2a27620b","updated":"2025-01-08 13:51:57.000000000","message":"yeah. I think we need to audit the code and inject explicit instance_action finish() calls at the point when it is clear from the code that the action is finished. This can might be a lot of work as we have plenty of instance actions.","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"63836f53ef425e4034b034af2bf05f97780bf08f","unresolved":true,"context_lines":[{"line_number":42,"context_line":"Currently, the instance action record has a ``finish_time`` column on it [1]_,"},{"line_number":43,"context_line":"we just need to record the ``finish_time`` info when action is recorded and add"},{"line_number":44,"context_line":"the ``finish_time`` field in the response."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Alternatives"},{"line_number":47,"context_line":"------------"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"67764a4e_d4c39990","line":45,"in_reply_to":"9ebaecc8_0ed14373","updated":"2025-01-14 08:10:18.000000000","message":"I agree, too.\n\nIt\u0027s helpful if the action list API can define the task is in-progress or not from the response body somehow.\n\nIn some error cases, no end event is added to the action event list API now. It\u0027s difficult to identify a task is long running in-progress action or is errored action without any event information.\n\nI\u0027m sure following example is an errored action because the event started one month ago, but it\u0027s difficult to define an action is errored or in-progress if it\u0027s 10 mins ago.\n\n```\n# example\n{\n  \"instanceAction\": {\n    \"action\": \"create\",\n    \"instance_uuid\": \"1f0fb2ca-6078-4db3-8070-2ffaacf13cf7\",\n    \"request_id\": \"req-0d28b00f-97cd-4341-8133-eb132b584230\",\n    \"user_id\": \"8963e407e4575dca96076e40bd26b682\",\n    \"project_id\": \"b69a519268f95aa198171e70d5eea962\",\n    \"start_time\": \"2024-12-10T05:56:54.000000\",\n    \"message\": null,\n    \"updated_at\": \"2024-12-10T05:56:54.000000\",\n    \"events\": []\n  }\n}\n```","commit_id":"a1dfe9281dc7b07f4679272f0f15e4aa2eedf670"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"63836f53ef425e4034b034af2bf05f97780bf08f","unresolved":true,"context_lines":[{"line_number":82,"context_line":"         \"project_id\": \"6f70656e737461636b20342065766572\","},{"line_number":83,"context_line":"         \"request_id\": \"req-3293a3f1-b44c-4609-b8d2-d81b105636b8\","},{"line_number":84,"context_line":"         \"start_time\": \"2017-12-07T11:07:06.088644\","},{"line_number":85,"context_line":"         \"finish_time\": \"2017-12-07T11:07:06.431902\","},{"line_number":86,"context_line":"         \"updated_at\": \"2017-12-07T11:07:06.431902\","},{"line_number":87,"context_line":"         \"user_id\": \"fake\""},{"line_number":88,"context_line":"       }"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9d88506e_07ba0ca1","line":85,"updated":"2025-01-14 08:10:18.000000000","message":"This change is also applied to the list actions for server API, isn\u0027t it?\n\nhttps://docs.openstack.org/api-ref/compute/#list-actions-for-server","commit_id":"87865231e62a89c2b5332b47c27e15534e613c69"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"8ba9cf455a5e190a297ee87264d9b9de518134e1","unresolved":true,"context_lines":[{"line_number":82,"context_line":"         \"project_id\": \"6f70656e737461636b20342065766572\","},{"line_number":83,"context_line":"         \"request_id\": \"req-3293a3f1-b44c-4609-b8d2-d81b105636b8\","},{"line_number":84,"context_line":"         \"start_time\": \"2017-12-07T11:07:06.088644\","},{"line_number":85,"context_line":"         \"finish_time\": \"2017-12-07T11:07:06.431902\","},{"line_number":86,"context_line":"         \"updated_at\": \"2017-12-07T11:07:06.431902\","},{"line_number":87,"context_line":"         \"user_id\": \"fake\""},{"line_number":88,"context_line":"       }"}],"source_content_type":"text/x-rst","patch_set":5,"id":"acedd0a9_e3595477","line":85,"in_reply_to":"9d88506e_07ba0ca1","updated":"2025-06-10 07:08:53.000000000","message":"Yes, you are right.","commit_id":"87865231e62a89c2b5332b47c27e15534e613c69"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"9ccfef6fe424c1df090edc29895e1e5c434dfec2","unresolved":false,"context_lines":[{"line_number":82,"context_line":"         \"project_id\": \"6f70656e737461636b20342065766572\","},{"line_number":83,"context_line":"         \"request_id\": \"req-3293a3f1-b44c-4609-b8d2-d81b105636b8\","},{"line_number":84,"context_line":"         \"start_time\": \"2017-12-07T11:07:06.088644\","},{"line_number":85,"context_line":"         \"finish_time\": \"2017-12-07T11:07:06.431902\","},{"line_number":86,"context_line":"         \"updated_at\": \"2017-12-07T11:07:06.431902\","},{"line_number":87,"context_line":"         \"user_id\": \"fake\""},{"line_number":88,"context_line":"       }"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3ba15de2_2aaf97aa","line":85,"in_reply_to":"acedd0a9_e3595477","updated":"2025-06-12 07:09:59.000000000","message":"Acknowledged","commit_id":"87865231e62a89c2b5332b47c27e15534e613c69"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"63836f53ef425e4034b034af2bf05f97780bf08f","unresolved":true,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Primary assignee:"},{"line_number":134,"context_line":"  ratailor"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Feature Liaison"},{"line_number":137,"context_line":"---------------"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"a3e21cdf_84381de2","line":135,"updated":"2025-01-14 08:10:18.000000000","message":"If the spec target includes adding finish() event to all action list, I\u0027m happy to work for adding the event to each action as a secondary.","commit_id":"87865231e62a89c2b5332b47c27e15534e613c69"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"084e8b70aab377346f470c2cb9b1a2a45c499fd6","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Primary assignee:"},{"line_number":134,"context_line":"  ratailor"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Feature Liaison"},{"line_number":137,"context_line":"---------------"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"54d61628_0323625d","line":135,"in_reply_to":"a3e21cdf_84381de2","updated":"2025-06-18 10:08:00.000000000","message":"we already finish individual events, the only thing that actions were not marked as complete by calling finish, which is also done in the implementation.","commit_id":"87865231e62a89c2b5332b47c27e15534e613c69"}],"specs/2025.2/approved/show-finish-time.rst":[{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"2d46ecb2aa39dbb57cd70fb09ce64172aabf843d","unresolved":true,"context_lines":[{"line_number":57,"context_line":"REST API impact"},{"line_number":58,"context_line":"---------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Add a new microversion to"},{"line_number":61,"context_line":"``GET /servers/{server_id}/os-instance-actions/{req_id}`` API to include"},{"line_number":62,"context_line":"the ``finish_time`` field in response."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"fe3cfb48_703927e7","line":60,"range":{"start_line":60,"start_character":6,"end_line":60,"end_character":22},"updated":"2025-06-12 09:42:13.000000000","message":"Just highlight","commit_id":"39b86f70744c191fb5304cef229b1f23dd6abe8a"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"1921e6b66d9a6ddec8edc38bfda99c9366a5a186","unresolved":false,"context_lines":[{"line_number":57,"context_line":"REST API impact"},{"line_number":58,"context_line":"---------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Add a new microversion to"},{"line_number":61,"context_line":"``GET /servers/{server_id}/os-instance-actions/{req_id}`` API to include"},{"line_number":62,"context_line":"the ``finish_time`` field in response."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ab6fd773_5f2fe8f6","line":60,"range":{"start_line":60,"start_character":6,"end_line":60,"end_character":22},"in_reply_to":"fe3cfb48_703927e7","updated":"2025-06-12 10:27:49.000000000","message":"Done","commit_id":"39b86f70744c191fb5304cef229b1f23dd6abe8a"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"2d46ecb2aa39dbb57cd70fb09ce64172aabf843d","unresolved":true,"context_lines":[{"line_number":142,"context_line":"Work Items"},{"line_number":143,"context_line":"----------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"- Implement API changes"},{"line_number":146,"context_line":"- Add tests"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"4505494c_48e77849","line":145,"range":{"start_line":145,"start_character":2,"end_line":145,"end_character":23},"updated":"2025-06-12 09:42:13.000000000","message":"Just better highlight that this need a new microversion.","commit_id":"39b86f70744c191fb5304cef229b1f23dd6abe8a"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"1921e6b66d9a6ddec8edc38bfda99c9366a5a186","unresolved":false,"context_lines":[{"line_number":142,"context_line":"Work Items"},{"line_number":143,"context_line":"----------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"- Implement API changes"},{"line_number":146,"context_line":"- Add tests"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"0763a86d_fc40c57f","line":145,"range":{"start_line":145,"start_character":2,"end_line":145,"end_character":23},"in_reply_to":"4505494c_48e77849","updated":"2025-06-12 10:27:49.000000000","message":"Done","commit_id":"39b86f70744c191fb5304cef229b1f23dd6abe8a"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"2d46ecb2aa39dbb57cd70fb09ce64172aabf843d","unresolved":true,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"- Implement API changes"},{"line_number":146,"context_line":"- Add tests"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Dependencies"},{"line_number":150,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"971bc413_2e545075","line":147,"updated":"2025-06-12 09:42:13.000000000","message":"I think you should add something saying that you reviewed and add the action for all the required code paths.","commit_id":"39b86f70744c191fb5304cef229b1f23dd6abe8a"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"1921e6b66d9a6ddec8edc38bfda99c9366a5a186","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"- Implement API changes"},{"line_number":146,"context_line":"- Add tests"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Dependencies"},{"line_number":150,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aba65d4_f62c9998","line":147,"in_reply_to":"971bc413_2e545075","updated":"2025-06-12 10:27:49.000000000","message":"Done","commit_id":"39b86f70744c191fb5304cef229b1f23dd6abe8a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"dcb28b7045f53db12cadd3801fbf65390e39b968","unresolved":true,"context_lines":[{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The InstanceAction object has a ``finish_time`` field in it [1]_, but the"},{"line_number":45,"context_line":"same is not recorded for any instance action in database."},{"line_number":46,"context_line":"we just need to record the ``finish_time`` info when action is finished and"},{"line_number":47,"context_line":"record the ``finish_time`` field in InstanceAction object in the response."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3e141c07_4c147e00","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":4},"updated":"2025-06-17 13:00:32.000000000","message":"nit: s/name/field","commit_id":"c3a92467e6f78e218c464564d747775a1bf565bd"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"084e8b70aab377346f470c2cb9b1a2a45c499fd6","unresolved":false,"context_lines":[{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The InstanceAction object has a ``finish_time`` field in it [1]_, but the"},{"line_number":45,"context_line":"same is not recorded for any instance action in database."},{"line_number":46,"context_line":"we just need to record the ``finish_time`` info when action is finished and"},{"line_number":47,"context_line":"record the ``finish_time`` field in InstanceAction object in the response."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9d01d98c_76f0e0b5","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":4},"in_reply_to":"3e141c07_4c147e00","updated":"2025-06-18 10:08:00.000000000","message":"Done","commit_id":"c3a92467e6f78e218c464564d747775a1bf565bd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"dcb28b7045f53db12cadd3801fbf65390e39b968","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Data model impact"},{"line_number":55,"context_line":"-----------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"None"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"REST API impact"},{"line_number":60,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"d61ed69f_4e3f31ad","line":57,"updated":"2025-06-17 13:00:32.000000000","message":"fortunately as we already have that field (which is just unset)","commit_id":"c3a92467e6f78e218c464564d747775a1bf565bd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"dcb28b7045f53db12cadd3801fbf65390e39b968","unresolved":true,"context_lines":[{"line_number":161,"context_line":"Upgrade impact"},{"line_number":162,"context_line":"--------------"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"None"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Implementation"},{"line_number":167,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":11,"id":"8421dd6e_a1f7c777","line":164,"updated":"2025-06-17 13:00:32.000000000","message":"hmmm, maybe old computes could not set this finish_time field, so by default we should only return the field if it\u0027s set.","commit_id":"c3a92467e6f78e218c464564d747775a1bf565bd"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"084e8b70aab377346f470c2cb9b1a2a45c499fd6","unresolved":false,"context_lines":[{"line_number":161,"context_line":"Upgrade impact"},{"line_number":162,"context_line":"--------------"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"None"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Implementation"},{"line_number":167,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3880bd92_7ed70b6a","line":164,"in_reply_to":"8421dd6e_a1f7c777","updated":"2025-06-18 10:08:00.000000000","message":"yes, I think this is taken care in osc code here. Only showing when is above microversion 2.101\n\nhttps://review.opendev.org/c/openstack/python-openstackclient/+/943407/3/openstackclient/compute/v2/server_event.py","commit_id":"c3a92467e6f78e218c464564d747775a1bf565bd"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"505dfa6e4e67974da5d5aee2b8f9c3725546aec1","unresolved":true,"context_lines":[{"line_number":44,"context_line":"The InstanceAction object has a ``finish_time`` field in it [1]_, but the"},{"line_number":45,"context_line":"field is not recorded for any instance action in database."},{"line_number":46,"context_line":"we just need to record the ``finish_time`` info when action is finished and"},{"line_number":47,"context_line":"record the ``finish_time`` field in InstanceAction object in the response."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"070bef04_12a16a01","line":47,"range":{"start_line":47,"start_character":72,"end_line":47,"end_character":74},"updated":"2025-06-24 23:38:32.000000000","message":"I was reading the previous comments and I think the Sean/gibi concern is still not resolved - https://review.opendev.org/c/openstack/nova-specs/+/929780/comment/86deee8b_2a27620b/\n\nEven though it is an implementation detail, it is important to add some detail in the spec about how we will populate the \u0027finish_time\u0027 action. Because if it is not possible to perfectly set the finish_time value, we can discuss in spec if there is any other way to know the action status.\n\nI checked the code and some analysis below. There are different types of actions can be:\n\n1. Action with no event:\n- It is easy to know the finish time for those. Like new decorator you doing wrap_instance_action on the compute functions -  example https://review.opendev.org/c/openstack/nova/+/928933/24/nova/compute/manager.py#5900\n\n2. Action with one event:\n- This can also be easy, and once the event is finished, we can also record the action completion time. This can basically be covered by the new decorator wrap_instance_action if we know all events are recorded via wrap_instance_event on the same functions.\n\n3. Action with multiple events:\n- This is tricky and something Sean bought in the original comment. One way to do is to calculate it from the finish_event method. Something like below:\n\n* wrap_instance_event() __exit__ call the Db action_event_finish()\n https://github.com/openstack/nova/blob/5582ec2e69d03cf83b9c702497cc150cf2b76754/nova/db/main/api.py#L4028C5-L4028C24\n\n* here it fetch the action associated with that event\n\nhttps://github.com/openstack/nova/blob/5582ec2e69d03cf83b9c702497cc150cf2b76754/nova/db/main/api.py#L4052\n\n* (change here): Instead of getting single event, we can get all events of that action\n\n https://github.com/openstack/nova/blob/master/nova/db/main/api.py#L4052C1-L4055C36\n\n* Mark the requested event \u0027finish_time\u0027.\n\n* (change here) We can check if all events of this action are finished or not. If yes it means this was the last event finished for this action. Along with updated_at, we can update action \u0027finish_time\u0027 here. \n\nhttps://github.com/openstack/nova/blob/5582ec2e69d03cf83b9c702497cc150cf2b76754/nova/db/main/api.py#L4066","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"5a0f35d418a8fd55f6c9edf8ead05a33d9867b45","unresolved":true,"context_lines":[{"line_number":44,"context_line":"The InstanceAction object has a ``finish_time`` field in it [1]_, but the"},{"line_number":45,"context_line":"field is not recorded for any instance action in database."},{"line_number":46,"context_line":"we just need to record the ``finish_time`` info when action is finished and"},{"line_number":47,"context_line":"record the ``finish_time`` field in InstanceAction object in the response."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"2698eb1d_94a1a314","line":47,"range":{"start_line":47,"start_character":72,"end_line":47,"end_character":74},"in_reply_to":"070bef04_12a16a01","updated":"2025-06-26 11:57:57.000000000","message":"You mentioned the code references are related to action event, but not to instance action, which are already in our code flow path and called from wrap_instance_event decorator. Also we already set the correct finish_time for events, but currently not doing that for action.\nHere we set the finish_time from wrap_instance_action decorator in manager level when the decorated function is going to finish and by that time all of the events will be finished (correct me if I am wrong) then only we are trying to set the action finish_time. \n\nPlease correct me if I misunderstood anything, also please elaborate what actually is missing in spec from your point of view.","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"28b31d9981d7edc8f8bb05002078328f0b8bc156","unresolved":true,"context_lines":[{"line_number":44,"context_line":"The InstanceAction object has a ``finish_time`` field in it [1]_, but the"},{"line_number":45,"context_line":"field is not recorded for any instance action in database."},{"line_number":46,"context_line":"we just need to record the ``finish_time`` info when action is finished and"},{"line_number":47,"context_line":"record the ``finish_time`` field in InstanceAction object in the response."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"832ee629_3ada1ee0","line":47,"range":{"start_line":47,"start_character":72,"end_line":47,"end_character":74},"in_reply_to":"2698eb1d_94a1a314","updated":"2025-07-02 21:32:32.000000000","message":"\u003e You mentioned the code references are related to action event, but not to instance action, which are already in our code flow path and called from wrap_instance_event decorator. Also we already set the correct finish_time for events, but currently not doing that for action.\n\nI know wrap_instance_event is for event but I am saying to modify this decorator itself to record the action finish time with the proposal I mentioned above. My indendation was not correct there, I will post it with right bullet points and if that will be easy to read.\n\n\u003e Here we set the finish_time from wrap_instance_action decorator in manager level when the decorated function is going to finish and by that time all of the events will be finished (correct me if I am wrong) then only we are trying to set the action finish_time. \n\nThis does not cover the 3rd case I mentioned (please refer at ehe end of this comment). Or we are sure that all action has only events generated from the single method from API or manager? TO handle the 3rd case only I am suggesting to mnodify the wrap_instance_event() to record event as well as action finish time.\n\n\n\u003e \n\u003e Please correct me if I misunderstood anything, also please elaborate what actually is missing in spec from your point of view.\n\n\n--------------------------------------------------------------------\nSame comment as I added earlier but correct bullet point:\n\nI checked the code and some analysis below. There are different types of actions can be:\n\n1. Action with no event:\n\nIt is easy to know the finish time for those. Like new decorator you doing wrap_instance_action on the compute functions - example https://review.opendev.org/c/openstack/nova/+/928933/24/nova/compute/manager.py#5900\n\n2. Action with one event:\n\nThis can also be easy, and once the event is finished, we can also record the action completion time. This can basically be covered by the new decorator wrap_instance_action if we know all events are recorded via wrap_instance_event on the same functions.\n\n3. Action with multiple events:\n\nThis is tricky and something Sean brought in the original comment. One way to do is to calculate it from the finish_event method. Something like below:\n\n- wrap_instance_event() exit call the DB action_event_finish()\nhttps://github.com/openstack/nova/blob/5582ec2e69d03cf83b9c702497cc150cf2b76754/nova/db/main/api.py#L4028C5-L4028C24\n\n- here it fetch the action associated with that event\n  - https://github.com/openstack/nova/blob/5582ec2e69d03cf83b9c702497cc150cf2b76754/nova/db/main/api.py#L4052\n\n- (change here): Instead of getting single event, we can get all events of that action\n  - https://github.com/openstack/nova/blob/master/nova/db/main/api.py#L4052C1-L4055C36\n\n  - Mark the requested event \u0027finish_time\u0027.\n\n- (change here) We can check if all events of this action are finished or not. If yes it means this was the last event finished for this action. Along with updated_at, we can update action \u0027finish_time\u0027 here.\n  - https://github.com/openstack/nova/blob/5582ec2e69d03cf83b9c702497cc150cf2b76754/nova/db/main/api.py#L4066\n  \n----------------------------------------------------------------------","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2553c4a1ee8d670202cb8fa63b2973340bfdcb00","unresolved":true,"context_lines":[{"line_number":44,"context_line":"The InstanceAction object has a ``finish_time`` field in it [1]_, but the"},{"line_number":45,"context_line":"field is not recorded for any instance action in database."},{"line_number":46,"context_line":"we just need to record the ``finish_time`` info when action is finished and"},{"line_number":47,"context_line":"record the ``finish_time`` field in InstanceAction object in the response."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"49993fd5_e643eefc","line":47,"range":{"start_line":47,"start_character":72,"end_line":47,"end_character":74},"in_reply_to":"2f7509f5_f8ef06c3","updated":"2025-12-04 22:11:38.000000000","message":"I agree with Sean comment, I missed the point that events are not created in advance and they are created on fly. So wrap_instance_event() cannot tell us if all events are recived for particular event or not.\n\n\u003e if we want to move to creatign event in a pending state before they are started so you could know if there are addtional event that need to start and end i woudl be fine with that, that would allow you to simplfy the logic somewhat but it required more code change then the spec currently includes.\n\nAgree, I think we need to do that. There should be pre-created event or at least if we know number of events per action then we can eaisly track if all possible events per action are finished or not.\n\n@Rajesh, I think you need to investigate in that direction.","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"d3862d1ee5e1b814b476530bd2b4ef2c0828502c","unresolved":true,"context_lines":[{"line_number":44,"context_line":"The InstanceAction object has a ``finish_time`` field in it [1]_, but the"},{"line_number":45,"context_line":"field is not recorded for any instance action in database."},{"line_number":46,"context_line":"we just need to record the ``finish_time`` info when action is finished and"},{"line_number":47,"context_line":"record the ``finish_time`` field in InstanceAction object in the response."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"84f004d4_10de78ee","line":47,"range":{"start_line":47,"start_character":72,"end_line":47,"end_character":74},"in_reply_to":"47396283_53fdc2f0","updated":"2025-07-03 11:50:15.000000000","message":"yes, I got your point about third case, when we have multiple events for single action.\n\nInstead of modifying the existing wrap_instance_event and adding call to action_event_finish (which is called from lot of places), I can add a call to [1] get_by_action method to get list of events, and then check if all actions are finished, before calling finish on action in wrap_instance_action decorator.\n\n[1] https://opendev.org/openstack/nova/src/commit/2c19c07d5e29ca5445fa6dd45a6117542951714c/nova/objects/instance_action.py#L283","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c52998a6867a28c91f452f5e7ee73d75001db769","unresolved":true,"context_lines":[{"line_number":44,"context_line":"The InstanceAction object has a ``finish_time`` field in it [1]_, but the"},{"line_number":45,"context_line":"field is not recorded for any instance action in database."},{"line_number":46,"context_line":"we just need to record the ``finish_time`` info when action is finished and"},{"line_number":47,"context_line":"record the ``finish_time`` field in InstanceAction object in the response."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"47396283_53fdc2f0","line":47,"range":{"start_line":47,"start_character":72,"end_line":47,"end_character":74},"in_reply_to":"832ee629_3ada1ee0","updated":"2025-07-03 10:21:21.000000000","message":"can you please write it down then in the spec ?","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d86a5ce0be2067e2462fee4bb28c40c622d2932","unresolved":true,"context_lines":[{"line_number":44,"context_line":"The InstanceAction object has a ``finish_time`` field in it [1]_, but the"},{"line_number":45,"context_line":"field is not recorded for any instance action in database."},{"line_number":46,"context_line":"we just need to record the ``finish_time`` info when action is finished and"},{"line_number":47,"context_line":"record the ``finish_time`` field in InstanceAction object in the response."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dbda382e_c7be5886","line":47,"range":{"start_line":47,"start_character":72,"end_line":47,"end_character":74},"in_reply_to":"84f004d4_10de78ee","updated":"2025-10-31 09:32:22.000000000","message":"i havent fully read all the commet here but to me its not ok to just set finish_time on the instance action object when the first finish_time is set on an event.\n\n\nfor each instance action we really do need to know which events we exepct and only set finished time when we get to a terminal state\n\nso for me the terminal states are 1 any event errors or 2 all event that are expected to arrive are finished.\n\nfor action that have no events i kind of feel like that is a bug and we shoudl simplcy that to a action with 1 event but im not agaisnt special casing it.\n\nwhat i dont want is an instance action shoudl have 3 events\n\nwe start the action and there are no events, we start the first of the 3 event and there is not wone that is pendign, we complete the first of the 3 events and now all event the code know about are complete with a finsih time\n\nto me it would be a bug to set finished_time on the instance action at this point because that create 2 problems.  \n\nfirst if im poling the instance action not the event for complete i will get a false positive. second when the next event start we would have to have to remove finished time and then updated it.\n\n\nits been a while since i looked at the code bug as far as i recall we do not create teh events up front and only creat then when we start them.\n\nso in the case we expect 3 event the instance action obejct start with 0 event then it will 1 then 2 then 3 as they start.\n\nso you cant simply say its finsihed when all event in the event list are finsihed genericly you need to encode the expectaion per instance action.\n\nas a end use you should not need to knwo or care about the event to knwo if the instance action is complete and maintianing that is important to me as part of the design.\n\nif we want to move to creatign event in a pending state before they are started so you could know if there are addtional event that need to start and end i woudl be fine with that, that would allow you to simplfy the logic somewhat but it required more code change then the spec currently includes.","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"01c3a68cbabffa501560ce700cbdd61a2007d37e","unresolved":true,"context_lines":[{"line_number":44,"context_line":"The InstanceAction object has a ``finish_time`` field in it [1]_, but the"},{"line_number":45,"context_line":"field is not recorded for any instance action in database."},{"line_number":46,"context_line":"we just need to record the ``finish_time`` info when action is finished and"},{"line_number":47,"context_line":"record the ``finish_time`` field in InstanceAction object in the response."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Alternatives"},{"line_number":50,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"2f7509f5_f8ef06c3","line":47,"range":{"start_line":47,"start_character":72,"end_line":47,"end_character":74},"in_reply_to":"dbda382e_c7be5886","updated":"2025-11-07 07:01:06.000000000","message":"In response to Gmaan\u0027s comment about three cases, where he agrees that first 2 cases are handled by newly added decorator.\nThe third case of having multiple events with single instance action, he mentioned to update the finish_time for the action when wrap_instance_event() exit call the DB action_event_finish() method.\n\nBut the problem with that is here we can\u0027t know that the current event (for which we called wrap_instance_event() exit call) is the last event of the action, so we can\u0027t update the finish_time for the action there and if we update the action finish_time with event finish_time, then it will be updated for every event.\n\nAnd AFAIK currently we don\u0027t have any way to get the list of all the possible events for the current action at the start of action, as we add events, when they are created.\n\nI will try to update the spec as well as implementation as per feedback/suggestions received here.","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"505dfa6e4e67974da5d5aee2b8f9c3725546aec1","unresolved":true,"context_lines":[{"line_number":136,"context_line":"Notifications impact"},{"line_number":137,"context_line":"--------------------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"None"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Other end user impact"},{"line_number":142,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"c730fc44_38eb2009","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":4},"updated":"2025-06-24 23:38:32.000000000","message":"do we want to add notification also for this? As we send notification for the start action I think it will be helpful to have action end notification also.","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c76c0b9cbd1a13a41a1b6025283c42ba7833f8ce","unresolved":true,"context_lines":[{"line_number":136,"context_line":"Notifications impact"},{"line_number":137,"context_line":"--------------------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"None"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Other end user impact"},{"line_number":142,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9625e854_8ec973ef","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":4},"in_reply_to":"668de47a_a6ab0f58","updated":"2025-10-30 15:56:40.000000000","message":"We send .start .error .end notifications but those are independent from the actions and events in the DB. If an .end / .error notification is missing somewhere that is a bug. But that is independent form this spec.","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2553c4a1ee8d670202cb8fa63b2973340bfdcb00","unresolved":false,"context_lines":[{"line_number":136,"context_line":"Notifications impact"},{"line_number":137,"context_line":"--------------------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"None"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Other end user impact"},{"line_number":142,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"a05d5fa7_671e2b76","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":4},"in_reply_to":"8715dcaf_c11b71b7","updated":"2025-12-04 22:11:38.000000000","message":"yeah, not sure what example I saw but cannot find now if notification is missing. EVen if it is then it should be fix as bug not part of this spec.\n\nall good here.","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d86a5ce0be2067e2462fee4bb28c40c622d2932","unresolved":true,"context_lines":[{"line_number":136,"context_line":"Notifications impact"},{"line_number":137,"context_line":"--------------------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"None"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Other end user impact"},{"line_number":142,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"8715dcaf_c11b71b7","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":4},"in_reply_to":"9625e854_8ec973ef","updated":"2025-10-31 09:32:22.000000000","message":"this spec was spawned out of https://bugs.launchpad.net/nova/+bug/2058928\n\ni.e. the realisation that for async request like port detach that are completed or error on the compute we were not finishing the instance action event.\n\nfinishing the instance action involved not just setting the finished time on the events in the event list but it should invovle fixing missing noticfcation as well. im ok to track the missing notification as bugs but the reason we were askign for a spec was to fix the over all ux of instance actions. the lack of the fisnih time is one of the most imporant but for ceilometer and watcher there is an observablity aspect to instance action completion and the notification are imporant for that.\n\nso i agree we dont need to list the missign notficaiton in the spec if there are any  but i would like this to say something like\n\n\"as part of this spec a review of missing notfication will be done and bugs will be filed to adress them\" or somethign like that because i would not consider\n\nhttps://bugs.launchpad.net/nova/+bug/2058928 if the notification was missing.\n\nin this case interface detach is sending them but we should validate that for all instance actions.","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"5a0f35d418a8fd55f6c9edf8ead05a33d9867b45","unresolved":true,"context_lines":[{"line_number":136,"context_line":"Notifications impact"},{"line_number":137,"context_line":"--------------------"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"None"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Other end user impact"},{"line_number":142,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"668de47a_a6ab0f58","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":4},"in_reply_to":"c730fc44_38eb2009","updated":"2025-06-26 11:57:57.000000000","message":"If that can be done in follow-up patch without spec, then I can do that later. If it requires to file spec for notification changes, then I can try to include in this series, if other reviewers are also fine with this.","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"505dfa6e4e67974da5d5aee2b8f9c3725546aec1","unresolved":true,"context_lines":[{"line_number":197,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"- Add unit tests"},{"line_number":200,"context_line":"- Add functional tests (API samples)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Documentation Impact"},{"line_number":203,"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":12,"id":"bb958c4e_3123ca7c","line":200,"range":{"start_line":200,"start_character":35,"end_line":200,"end_character":36},"updated":"2025-06-24 23:38:32.000000000","message":"as this is response change, please add tempest tests and schema also","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"d3862d1ee5e1b814b476530bd2b4ef2c0828502c","unresolved":false,"context_lines":[{"line_number":197,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"- Add unit tests"},{"line_number":200,"context_line":"- Add functional tests (API samples)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Documentation Impact"},{"line_number":203,"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":12,"id":"1bb295bd_e217be55","line":200,"range":{"start_line":200,"start_character":35,"end_line":200,"end_character":36},"in_reply_to":"00c9a58e_09945a12","updated":"2025-07-03 11:50:15.000000000","message":"Done","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"5a0f35d418a8fd55f6c9edf8ead05a33d9867b45","unresolved":true,"context_lines":[{"line_number":197,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"- Add unit tests"},{"line_number":200,"context_line":"- Add functional tests (API samples)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Documentation Impact"},{"line_number":203,"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":12,"id":"00c9a58e_09945a12","line":200,"range":{"start_line":200,"start_character":35,"end_line":200,"end_character":36},"in_reply_to":"bb958c4e_3123ca7c","updated":"2025-06-26 11:57:57.000000000","message":"Sure. I will add that.","commit_id":"044ec756dd42503f317ed92e026c80b6c2e2f501"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c52998a6867a28c91f452f5e7ee73d75001db769","unresolved":true,"context_lines":[{"line_number":161,"context_line":"Upgrade impact"},{"line_number":162,"context_line":"--------------"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"None"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Implementation"},{"line_number":167,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":13,"id":"fe98f129_8c5c6402","line":164,"updated":"2025-07-03 10:21:21.000000000","message":"still a concern : even if OSC takes care, scripts directly calling the Nova API would wonder why finish_time is here. Can you write something in a new revision ?","commit_id":"ad39adbeae972bb49644b2a17100cb5825444c7b"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"d3862d1ee5e1b814b476530bd2b4ef2c0828502c","unresolved":false,"context_lines":[{"line_number":161,"context_line":"Upgrade impact"},{"line_number":162,"context_line":"--------------"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"None"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Implementation"},{"line_number":167,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":13,"id":"c86134c0_57067a13","line":164,"in_reply_to":"fe98f129_8c5c6402","updated":"2025-07-03 11:50:15.000000000","message":"Done","commit_id":"ad39adbeae972bb49644b2a17100cb5825444c7b"}]}
