)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"11f1ca36762d190902d5686386af8ddea2bc820e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"2eb5144d_a9634fb6","updated":"2024-04-15 15:21:42.000000000","message":"Just a couple of unused variables, as far as I can tell, as well as the dest_az thing. See inline.","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"f847aef56edaecf239ec642545d3c70baa53ff4d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"da317302_1869030d","updated":"2024-03-29 06:23:57.000000000","message":"recheck nova-functional unrelated","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"1fe02499dd4d828b71230173fbaaa61e77f270f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"eeb10bc1_c753e7b7","updated":"2024-04-01 07:59:44.000000000","message":"recheck nova-functional unrelated","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"498eeb0d156068e33690a4000c8a8018e4a030dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"87a5ea32_881b7d81","updated":"2024-04-05 14:31:41.000000000","message":"recheck nova-tox-functional unrelated","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"fea32b7ab9fa7e26590a9dd650a61c58b18fc4a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a2fdd522_980efe44","updated":"2024-04-08 12:10:21.000000000","message":"recheck nova-tox-functional unrelated","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"683f9d51125381d2b503aadc9632ed84ef803072","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a5a938fa_39817f12","updated":"2024-04-10 13:47:43.000000000","message":"recheck nova-tox-functional unrelated","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a300f6a9c6950ba1fc94193a9e768c4765cfda2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"99f68b1c_70aaea04","updated":"2024-04-18 13:38:30.000000000","message":"im not entirly conviced the bug is valid.\n\nwe could change this bevhior but i would have consireed that bug an opipion or whishlist at the highest.\n\nits expressing a api expection that i dont think we ever promised.","commit_id":"69f9a12ba123801354b608ffd5129839ad2833ca"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"224f5d240f78d9cbc270950cccaa4dad0e877966","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"399f2402_6a691fe1","updated":"2024-04-30 11:36:07.000000000","message":"Thanks Artom and Sean,\n\nI have updated the patch as per your comments.","commit_id":"d1bd737edbce1861753c309eb7c8375e13537ee5"}],"nova/tests/functional/regressions/test_bug_1978573.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"11f1ca36762d190902d5686386af8ddea2bc820e","unresolved":true,"context_lines":[{"line_number":44,"context_line":"        self.api \u003d api_fixture.admin_api"},{"line_number":45,"context_line":"        self.api.microversion \u003d \u0027latest\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.controller \u003d hosts.HostController()"},{"line_number":48,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027\u0027, use_admin_context\u003dTrue)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.start_service(\u0027conductor\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"413ce1a0_f7c00cb6","line":47,"updated":"2024-04-15 15:21:42.000000000","message":"Does this actually get used anywhere?","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"224f5d240f78d9cbc270950cccaa4dad0e877966","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.api \u003d api_fixture.admin_api"},{"line_number":45,"context_line":"        self.api.microversion \u003d \u0027latest\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.controller \u003d hosts.HostController()"},{"line_number":48,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027\u0027, use_admin_context\u003dTrue)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.start_service(\u0027conductor\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ca5ff41b_b560d233","line":47,"in_reply_to":"413ce1a0_f7c00cb6","updated":"2024-04-30 11:36:07.000000000","message":"Done","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"11f1ca36762d190902d5686386af8ddea2bc820e","unresolved":true,"context_lines":[{"line_number":45,"context_line":"        self.api.microversion \u003d \u0027latest\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.controller \u003d hosts.HostController()"},{"line_number":48,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027\u0027, use_admin_context\u003dTrue)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.start_service(\u0027conductor\u0027)"},{"line_number":51,"context_line":"        self.start_service(\u0027scheduler\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"c0f11860_a05cb0dd","line":48,"updated":"2024-04-15 15:21:42.000000000","message":"Ditto","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"224f5d240f78d9cbc270950cccaa4dad0e877966","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.api.microversion \u003d \u0027latest\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.controller \u003d hosts.HostController()"},{"line_number":48,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027\u0027, use_admin_context\u003dTrue)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.start_service(\u0027conductor\u0027)"},{"line_number":51,"context_line":"        self.start_service(\u0027scheduler\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"b6284e22_8f31d27c","line":48,"in_reply_to":"c0f11860_a05cb0dd","updated":"2024-04-30 11:36:07.000000000","message":"Done","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"11f1ca36762d190902d5686386af8ddea2bc820e","unresolved":true,"context_lines":[{"line_number":88,"context_line":"        original_host \u003d server[\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":89,"context_line":"        original_az \u003d server[\u0027OS-EXT-AZ:availability_zone\u0027]"},{"line_number":90,"context_line":"        dest_hostname \u003d \u0027host2\u0027 if original_host \u003d\u003d \u0027host1\u0027 else \u0027host1\u0027"},{"line_number":91,"context_line":"        dest_az \u003d \u0027zone2\u0027"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        req \u003d {"},{"line_number":94,"context_line":"            \u0027unshelve\u0027: {\u0027host\u0027: dest_hostname, \u0027availability_zone\u0027: dest_az}"}],"source_content_type":"text/x-python","patch_set":1,"id":"ee0f718b_8f00afd9","line":91,"updated":"2024-04-15 15:21:42.000000000","message":"That can\u0027t be wright, can it? If the dest hostname can change depending on there the server ended up, surely the dest AZ can change as well?","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"224f5d240f78d9cbc270950cccaa4dad0e877966","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        original_host \u003d server[\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":89,"context_line":"        original_az \u003d server[\u0027OS-EXT-AZ:availability_zone\u0027]"},{"line_number":90,"context_line":"        dest_hostname \u003d \u0027host2\u0027 if original_host \u003d\u003d \u0027host1\u0027 else \u0027host1\u0027"},{"line_number":91,"context_line":"        dest_az \u003d \u0027zone2\u0027"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        req \u003d {"},{"line_number":94,"context_line":"            \u0027unshelve\u0027: {\u0027host\u0027: dest_hostname, \u0027availability_zone\u0027: dest_az}"}],"source_content_type":"text/x-python","patch_set":1,"id":"ab97ac1a_b52057c8","line":91,"in_reply_to":"ee0f718b_8f00afd9","updated":"2024-04-30 11:36:07.000000000","message":"Done","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"11f1ca36762d190902d5686386af8ddea2bc820e","unresolved":true,"context_lines":[{"line_number":108,"context_line":"        def throw_error(*args, **kwargs):"},{"line_number":109,"context_line":"            raise test.TestingException(\u0027spawn failed\u0027)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self.stub_out(\u0027nova.virt.fake.SmallFakeDriver.spawn\u0027, throw_error)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        # unshelve the server, which should fail"},{"line_number":114,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], req)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa36fa45_b117dfd6","line":111,"updated":"2024-04-15 15:21:42.000000000","message":"This is awkward, you should mock with a side_effect (https://docs.python.org/3/library/unittest.mock.html#the-mock-class)","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"224f5d240f78d9cbc270950cccaa4dad0e877966","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        def throw_error(*args, **kwargs):"},{"line_number":109,"context_line":"            raise test.TestingException(\u0027spawn failed\u0027)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self.stub_out(\u0027nova.virt.fake.SmallFakeDriver.spawn\u0027, throw_error)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        # unshelve the server, which should fail"},{"line_number":114,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], req)"}],"source_content_type":"text/x-python","patch_set":1,"id":"495611a0_daf5368b","line":111,"in_reply_to":"fa36fa45_b117dfd6","updated":"2024-04-30 11:36:07.000000000","message":"Done","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"11f1ca36762d190902d5686386af8ddea2bc820e","unresolved":true,"context_lines":[{"line_number":115,"context_line":"        self._wait_for_action_fail_completion("},{"line_number":116,"context_line":"            server, instance_actions.UNSHELVE, \u0027compute_unshelve_instance\u0027)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        # fetch reqspec after failed unshelve and check that reqspec AZ is"},{"line_number":119,"context_line":"        # set to dest host AZ"},{"line_number":120,"context_line":"        reqspec \u003d objects.RequestSpec.get_by_instance_uuid(ctxt, server[\u0027id\u0027])"},{"line_number":121,"context_line":"        self.assertEqual(dest_az, reqspec.availability_zone)"}],"source_content_type":"text/x-python","patch_set":1,"id":"56d65d9f_b011c82b","line":118,"updated":"2024-04-15 15:21:42.000000000","message":"nit: write this as a `# FIXME` and explain that we haven\u0027t properly rolled back the AZ in the request spec.","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"224f5d240f78d9cbc270950cccaa4dad0e877966","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        self._wait_for_action_fail_completion("},{"line_number":116,"context_line":"            server, instance_actions.UNSHELVE, \u0027compute_unshelve_instance\u0027)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        # fetch reqspec after failed unshelve and check that reqspec AZ is"},{"line_number":119,"context_line":"        # set to dest host AZ"},{"line_number":120,"context_line":"        reqspec \u003d objects.RequestSpec.get_by_instance_uuid(ctxt, server[\u0027id\u0027])"},{"line_number":121,"context_line":"        self.assertEqual(dest_az, reqspec.availability_zone)"}],"source_content_type":"text/x-python","patch_set":1,"id":"878e3e3b_ea02f136","line":118,"in_reply_to":"56d65d9f_b011c82b","updated":"2024-04-30 11:36:07.000000000","message":"Done","commit_id":"b457bfd95f1638eab81385cc5c61825de60e20a1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a300f6a9c6950ba1fc94193a9e768c4765cfda2","unresolved":true,"context_lines":[{"line_number":82,"context_line":"        server \u003d self._create_server("},{"line_number":83,"context_line":"            image_uuid\u003d\u0027155d900f-4e14-4e4c-a73d-069cbf4541e6\u0027,"},{"line_number":84,"context_line":"            flavor_id\u003dself.flavor1[\u0027id\u0027],"},{"line_number":85,"context_line":"            networks\u003d\u0027none\u0027, az\u003d\u0027zone1\u0027, host\u003d\u0027host1\u0027)"},{"line_number":86,"context_line":"        original_host \u003d server[\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":87,"context_line":"        original_az \u003d server[\u0027OS-EXT-AZ:availability_zone\u0027]"},{"line_number":88,"context_line":"        dest_hostname \u003d \u0027host2\u0027 if original_host \u003d\u003d \u0027host1\u0027 else \u0027host1\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"2e704026_423d3d8b","line":85,"range":{"start_line":85,"start_character":29,"end_line":85,"end_character":39},"updated":"2024-04-18 13:38:30.000000000","message":"note that we only expect the az to be updated if the instance was initally pinned\n\nso if the instance was created without  az\u003d\u0027zone1\u0027 then we would expect not epect the request spec to have zone2 after the unshelve.\n\nyou proably shoudl add a seocnd test to make sure that when this bug is fixed we dont break the unpinned case.","commit_id":"69f9a12ba123801354b608ffd5129839ad2833ca"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"224f5d240f78d9cbc270950cccaa4dad0e877966","unresolved":true,"context_lines":[{"line_number":82,"context_line":"        server \u003d self._create_server("},{"line_number":83,"context_line":"            image_uuid\u003d\u0027155d900f-4e14-4e4c-a73d-069cbf4541e6\u0027,"},{"line_number":84,"context_line":"            flavor_id\u003dself.flavor1[\u0027id\u0027],"},{"line_number":85,"context_line":"            networks\u003d\u0027none\u0027, az\u003d\u0027zone1\u0027, host\u003d\u0027host1\u0027)"},{"line_number":86,"context_line":"        original_host \u003d server[\u0027OS-EXT-SRV-ATTR:host\u0027]"},{"line_number":87,"context_line":"        original_az \u003d server[\u0027OS-EXT-AZ:availability_zone\u0027]"},{"line_number":88,"context_line":"        dest_hostname \u003d \u0027host2\u0027 if original_host \u003d\u003d \u0027host1\u0027 else \u0027host1\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"015d8fd9_140fef2b","line":85,"range":{"start_line":85,"start_character":29,"end_line":85,"end_character":39},"in_reply_to":"2e704026_423d3d8b","updated":"2024-04-30 11:36:07.000000000","message":"I have added total three cases here.\n- unpinned to dest az\n- pinned to None az\n- pinned to dest az\n\nI think, that should cover all cases and not break anything.","commit_id":"69f9a12ba123801354b608ffd5129839ad2833ca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a300f6a9c6950ba1fc94193a9e768c4765cfda2","unresolved":true,"context_lines":[{"line_number":92,"context_line":"        }"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # shelve offload the server"},{"line_number":95,"context_line":"        self.flags(shelved_offload_time\u003d0)"},{"line_number":96,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], {\u0027shelve\u0027: {}})"},{"line_number":97,"context_line":"        self._wait_for_server_parameter("},{"line_number":98,"context_line":"            server, {\u0027status\u0027: \u0027SHELVED_OFFLOADED\u0027})"}],"source_content_type":"text/x-python","patch_set":2,"id":"934ffc1b_02416f4f","line":95,"updated":"2024-04-18 13:38:30.000000000","message":"i belive this is the default but sure it does not hurt to set it explcitly.","commit_id":"69f9a12ba123801354b608ffd5129839ad2833ca"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"224f5d240f78d9cbc270950cccaa4dad0e877966","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        }"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # shelve offload the server"},{"line_number":95,"context_line":"        self.flags(shelved_offload_time\u003d0)"},{"line_number":96,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], {\u0027shelve\u0027: {}})"},{"line_number":97,"context_line":"        self._wait_for_server_parameter("},{"line_number":98,"context_line":"            server, {\u0027status\u0027: \u0027SHELVED_OFFLOADED\u0027})"}],"source_content_type":"text/x-python","patch_set":2,"id":"8dc0186e_fba3c14e","line":95,"in_reply_to":"934ffc1b_02416f4f","updated":"2024-04-30 11:36:07.000000000","message":"Acknowledged","commit_id":"69f9a12ba123801354b608ffd5129839ad2833ca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a300f6a9c6950ba1fc94193a9e768c4765cfda2","unresolved":true,"context_lines":[{"line_number":115,"context_line":"            # set to dest host AZ"},{"line_number":116,"context_line":"            reqspec \u003d objects.RequestSpec.get_by_instance_uuid("},{"line_number":117,"context_line":"                ctxt, server[\u0027id\u0027])"},{"line_number":118,"context_line":"            self.assertEqual(\u0027zone2\u0027, reqspec.availability_zone)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ad7d3870_ac8b939f","line":118,"updated":"2024-04-18 13:38:30.000000000","message":"striclty speaking thsi is not actully incorrect.\nwe never had a contact that it would maintian the old az.\n\nwe can do that but this is not somethign that is guarenteed by the api.","commit_id":"69f9a12ba123801354b608ffd5129839ad2833ca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"decac6f1ccb6046791539164851cc05762d40183","unresolved":true,"context_lines":[{"line_number":104,"context_line":"           flavor_id\u003dself.flavor1[\u0027id\u0027],"},{"line_number":105,"context_line":"           networks\u003d\u0027none\u0027, az\u003d\u0027zone1\u0027, host\u003d\u0027host1\u0027)"},{"line_number":106,"context_line":"        self._test_unshelving_instance_fails_not_revert_reqspec_az("},{"line_number":107,"context_line":"           server, dest_az\u003dNone)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _test_unshelving_instance_fails_not_revert_reqspec_az("},{"line_number":110,"context_line":"            self, server, dest_az\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ed20b01e_75b53ab1","line":107,"updated":"2024-12-04 15:49:42.000000000","message":"so if the vm is pinned. and you unshalve without passign an az\nthe expected endstat is that it is still pinned.\n\nhttps://docs.openstack.org/api-ref/compute/#unshelve-restore-shelved-server-unshelve-action\n\nthere is a diffent bettween \n\n`{“unshelve”: null}`\n\nand \n\n`{“unshelve”: {“availability_zone”: null}}`\n\nyou are missing test coverge of the former\n\nhttps://review.opendev.org/c/openstack/nova/+/914653/6/nova/tests/functional/regressions/test_bug_1978573.py#120\n\nyou are alwasy passing availability_zone","commit_id":"27571f4731cd7e460a8cdb3e4e45c2fde54ad08a"}]}
