)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"bfe215de0faf8ec91fd28b736c7e1426288c0432","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"351f5cb0_9819374f","updated":"2026-09-21 09:11:03.000000000","message":"We got an additional confirmation that the provided patch works. We can merge it now.","commit_id":"a34499254abbd293682e9ea0afd20e755604af3f"},{"author":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"change_message_id":"6d3e881c209c4fa303d3993e119aeb87506a9261","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"beaa33a9_04c81060","updated":"2026-09-21 09:58:42.000000000","message":"recheck","commit_id":"a34499254abbd293682e9ea0afd20e755604af3f"},{"author":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"change_message_id":"59f0280d534c56f8e8cae4d38d54673708978a0c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"dcd2c588_c8578d75","updated":"2026-09-15 09:11:33.000000000","message":"recheck","commit_id":"a34499254abbd293682e9ea0afd20e755604af3f"}],"trove/instance/models.py":[{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"295cb8463971245d0f6ed49448543a6d6152f736","unresolved":true,"context_lines":[{"line_number":1741,"context_line":"        self.update_db(task_status\u003dInstanceTasks.MIGRATING)"},{"line_number":1742,"context_line":"        task_api.API(self.context).migrate(self.id, host)"},{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"    def validate_can_perform_action(self, allowed_service_statuses\u003dNone):"},{"line_number":1745,"context_line":"        \"\"\""},{"line_number":1746,"context_line":"        Raises exception if an instance action cannot currently be performed."},{"line_number":1747,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"16de6f7d_461f218b","line":1744,"updated":"2026-09-14 16:05:33.000000000","message":"This method is becoming less readable with these changes (although, to be fair, it isn\u0027t particularly readable as it is).\n\nWe may leave it as it is for now, but I would rather have a separate method for this kind of check, for example, `validate_can_perform_restart()`. What do you think?\n\nThis `validate_can_perform_restart()` method could be implemented as an additional layer on top of `validate_can_perform_action()`, passing the extra `allowed_service_statuses` argument. This would be a kind of compromise with the current design, but it would separate the usage from the implementation logic.\n\nAlso, this pattern may be handy in the future, because I feel that this issue with the restart action isn\u0027t the last. I\u0027m pretty sure that we have similar issues with resizing actions as well.","commit_id":"96e650b0cf4e5c587532dfba913cd43be8f76e83"},{"author":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"change_message_id":"502feff49e5cdb17a07c3ca3a78eb300b1e80310","unresolved":false,"context_lines":[{"line_number":1741,"context_line":"        self.update_db(task_status\u003dInstanceTasks.MIGRATING)"},{"line_number":1742,"context_line":"        task_api.API(self.context).migrate(self.id, host)"},{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"    def validate_can_perform_action(self, allowed_service_statuses\u003dNone):"},{"line_number":1745,"context_line":"        \"\"\""},{"line_number":1746,"context_line":"        Raises exception if an instance action cannot currently be performed."},{"line_number":1747,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"665eb96d_ab58d263","line":1744,"in_reply_to":"16de6f7d_461f218b","updated":"2026-09-15 04:39:42.000000000","message":"Agreed, a separate `validate_can_perform_restart()` would be much more readable, so be it!\n\nTo be frank, I just wanted to keep this bug fix as compact as possible, so I didn\u0027t think an additional method was necessary.","commit_id":"96e650b0cf4e5c587532dfba913cd43be8f76e83"}],"trove/taskmanager/models.py":[{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"295cb8463971245d0f6ed49448543a6d6152f736","unresolved":true,"context_lines":[{"line_number":1410,"context_line":"                      self.id)"},{"line_number":1411,"context_line":"            self._refresh_datastore_status()"},{"line_number":1412,"context_line":"            restart_status \u003d srvstatus.ServiceStatuses.RESTARTING"},{"line_number":1413,"context_line":"            if (self.datastore_status.status \u003d\u003d restart_status and"},{"line_number":1414,"context_line":"                    self.datastore_status.status_description \u003d\u003d"},{"line_number":1415,"context_line":"                    restart_status.description):"},{"line_number":1416,"context_line":"                self.datastore_status.set_status("}],"source_content_type":"text/x-python","patch_set":1,"id":"1808e87d_4f7d0669","line":1413,"updated":"2026-09-14 16:05:33.000000000","message":"Checking the description looks redundant here. But as I can see from the code, and it was mentioned in the bug report, it\u0027s necessary because `UPGRADING` status has the same code as `RESTARTING` (`0x22`).\nFor me, having the same code for different statuses looks like a bug.\n\nI think we should set a different code for `RESTARTING` (0x23 is an obvious choice) in a separate MR first, check that nothing breaks in functional tests (no need for unit tests and release notes; just changing the status code to `0x23` is sufficient in this case, imo), and then we can skip checking the description in this MR. What do you think?","commit_id":"96e650b0cf4e5c587532dfba913cd43be8f76e83"},{"author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"change_message_id":"2b7d8646303320bd46aad10019e8bcabf017648a","unresolved":true,"context_lines":[{"line_number":1410,"context_line":"                      self.id)"},{"line_number":1411,"context_line":"            self._refresh_datastore_status()"},{"line_number":1412,"context_line":"            restart_status \u003d srvstatus.ServiceStatuses.RESTARTING"},{"line_number":1413,"context_line":"            if (self.datastore_status.status \u003d\u003d restart_status and"},{"line_number":1414,"context_line":"                    self.datastore_status.status_description \u003d\u003d"},{"line_number":1415,"context_line":"                    restart_status.description):"},{"line_number":1416,"context_line":"                self.datastore_status.set_status("}],"source_content_type":"text/x-python","patch_set":1,"id":"27a2e05e_573ebf48","line":1413,"in_reply_to":"0fd47aea_050a0226","updated":"2026-09-15 06:24:27.000000000","message":"Let\u0027s change UNSYNC to 0x24 then","commit_id":"96e650b0cf4e5c587532dfba913cd43be8f76e83"},{"author":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"change_message_id":"502feff49e5cdb17a07c3ca3a78eb300b1e80310","unresolved":true,"context_lines":[{"line_number":1410,"context_line":"                      self.id)"},{"line_number":1411,"context_line":"            self._refresh_datastore_status()"},{"line_number":1412,"context_line":"            restart_status \u003d srvstatus.ServiceStatuses.RESTARTING"},{"line_number":1413,"context_line":"            if (self.datastore_status.status \u003d\u003d restart_status and"},{"line_number":1414,"context_line":"                    self.datastore_status.status_description \u003d\u003d"},{"line_number":1415,"context_line":"                    restart_status.description):"},{"line_number":1416,"context_line":"                self.datastore_status.set_status("}],"source_content_type":"text/x-python","patch_set":1,"id":"0fd47aea_050a0226","line":1413,"in_reply_to":"1808e87d_4f7d0669","updated":"2026-09-15 04:39:42.000000000","message":"You\u0027re right, these statuses should have separate codes. \n\nThe thing is, I\u0027ve already reserved `0x23` for `UNSYNC` in [change 1001772](https://review.opendev.org/c/openstack/trove/+/1001772), so the current implementation is somewhat of a workaround until either change 1001772 or the future MR you\u0027ve mentioned is merged, making it clear which status gets `0x23`.","commit_id":"96e650b0cf4e5c587532dfba913cd43be8f76e83"},{"author":{"_account_id":39300,"name":"Olessya Khussainova","display_name":"Olessya Khussainova","email":"olessya.khussainova@ps.kz","username":"Cellofun"},"change_message_id":"ba0f8f3dec1965249b643c7f2a6f482d6a298101","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"                      self.id)"},{"line_number":1411,"context_line":"            self._refresh_datastore_status()"},{"line_number":1412,"context_line":"            restart_status \u003d srvstatus.ServiceStatuses.RESTARTING"},{"line_number":1413,"context_line":"            if (self.datastore_status.status \u003d\u003d restart_status and"},{"line_number":1414,"context_line":"                    self.datastore_status.status_description \u003d\u003d"},{"line_number":1415,"context_line":"                    restart_status.description):"},{"line_number":1416,"context_line":"                self.datastore_status.set_status("}],"source_content_type":"text/x-python","patch_set":1,"id":"b8847e79_70c35d87","line":1413,"in_reply_to":"27a2e05e_573ebf48","updated":"2026-09-15 07:55:39.000000000","message":"Done! Added another [tiny MR](https://review.opendev.org/c/openstack/trove/+/1005671) fixing the code for `RESTARTING` and changed `UNSYNC`.","commit_id":"96e650b0cf4e5c587532dfba913cd43be8f76e83"}]}
