)]}'
{"tempest/api/compute/servers/test_server_actions.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"77ba22cd1e1dddfc176b80aefac75cdf0d50ba97","unresolved":false,"context_lines":[{"line_number":375,"context_line":"    @utils.services(\u0027volume\u0027)"},{"line_number":376,"context_line":"    def test_resize_server_revert_with_volume_attached(self):"},{"line_number":377,"context_line":"        # Tests attaching a volume to a server instance and then resizing"},{"line_number":378,"context_line":"        # the instance. Once the instance is resize, revert the resize which"},{"line_number":379,"context_line":"        # should move the instance and volume attachment back to the original"},{"line_number":380,"context_line":"        # compute host."},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bf8cb3f7_8e59995b","line":378,"range":{"start_line":378,"start_character":45,"end_line":378,"end_character":51},"updated":"2017-12-22 09:27:01.000000000","message":"resized","commit_id":"22b38d9daa766c22968f2b487229cf1a3d43cd22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6897a728654d0ddc49b50e853a9b2da8fefd857b","unresolved":false,"context_lines":[{"line_number":375,"context_line":"    @utils.services(\u0027volume\u0027)"},{"line_number":376,"context_line":"    def test_resize_server_revert_with_volume_attached(self):"},{"line_number":377,"context_line":"        # Tests attaching a volume to a server instance and then resizing"},{"line_number":378,"context_line":"        # the instance. Once the instance is resize, revert the resize which"},{"line_number":379,"context_line":"        # should move the instance and volume attachment back to the original"},{"line_number":380,"context_line":"        # compute host."},{"line_number":381,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff6b8bd7_540a4b26","line":378,"range":{"start_line":378,"start_character":45,"end_line":378,"end_character":51},"in_reply_to":"bf8cb3f7_8e59995b","updated":"2018-03-06 15:28:50.000000000","message":"Done","commit_id":"22b38d9daa766c22968f2b487229cf1a3d43cd22"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"25d3be0b06386eb29051493846af0627a0a65170","unresolved":false,"context_lines":[{"line_number":396,"context_line":"        waiters.wait_for_server_status(self.client, self.server_id, \u0027ACTIVE\u0027)"},{"line_number":397,"context_line":"        # Make sure everything still looks OK."},{"line_number":398,"context_line":"        server \u003d self.client.show_server(self.server_id)[\u0027server\u0027]"},{"line_number":399,"context_line":"        self.assertEqual(self.flavor_ref, server[\u0027flavor\u0027][\u0027id\u0027])"},{"line_number":400,"context_line":"        attached_volumes \u003d server[\u0027os-extended-volumes:volumes_attached\u0027]"},{"line_number":401,"context_line":"        self.assertEqual(1, len(attached_volumes))"},{"line_number":402,"context_line":"        self.assertEqual(volume[\u0027id\u0027], attached_volumes[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_4e52a815","line":399,"range":{"start_line":399,"start_character":8,"end_line":399,"end_character":65},"updated":"2018-01-26 06:19:07.000000000","message":"flavor.id is no longer present in server info after microversion 2.46, \nso maybe we can add a check for it, like \"if server[\u0027flavor\u0027].get(\u0027id\u0027)\"\n\nhttps://review.openstack.org/#/c/535984/","commit_id":"22b38d9daa766c22968f2b487229cf1a3d43cd22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6897a728654d0ddc49b50e853a9b2da8fefd857b","unresolved":false,"context_lines":[{"line_number":396,"context_line":"        waiters.wait_for_server_status(self.client, self.server_id, \u0027ACTIVE\u0027)"},{"line_number":397,"context_line":"        # Make sure everything still looks OK."},{"line_number":398,"context_line":"        server \u003d self.client.show_server(self.server_id)[\u0027server\u0027]"},{"line_number":399,"context_line":"        self.assertEqual(self.flavor_ref, server[\u0027flavor\u0027][\u0027id\u0027])"},{"line_number":400,"context_line":"        attached_volumes \u003d server[\u0027os-extended-volumes:volumes_attached\u0027]"},{"line_number":401,"context_line":"        self.assertEqual(1, len(attached_volumes))"},{"line_number":402,"context_line":"        self.assertEqual(volume[\u0027id\u0027], attached_volumes[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff6b8bd7_f406ff20","line":399,"range":{"start_line":399,"start_character":8,"end_line":399,"end_character":65},"in_reply_to":"5f93b717_4e52a815","updated":"2018-03-06 15:28:50.000000000","message":"Done","commit_id":"22b38d9daa766c22968f2b487229cf1a3d43cd22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2a6c8e2ad1591a0111f9b9aa6c8cdc515387cc4e","unresolved":false,"context_lines":[{"line_number":396,"context_line":"        waiters.wait_for_server_status(self.client, self.server_id, \u0027ACTIVE\u0027)"},{"line_number":397,"context_line":"        # Make sure everything still looks OK."},{"line_number":398,"context_line":"        server \u003d self.client.show_server(self.server_id)[\u0027server\u0027]"},{"line_number":399,"context_line":"        self.assertEqual(self.flavor_ref, server[\u0027flavor\u0027][\u0027id\u0027])"},{"line_number":400,"context_line":"        attached_volumes \u003d server[\u0027os-extended-volumes:volumes_attached\u0027]"},{"line_number":401,"context_line":"        self.assertEqual(1, len(attached_volumes))"},{"line_number":402,"context_line":"        self.assertEqual(volume[\u0027id\u0027], attached_volumes[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff6b8bd7_16a618c3","line":399,"range":{"start_line":399,"start_character":8,"end_line":399,"end_character":65},"in_reply_to":"ff6b8bd7_f406ff20","updated":"2018-03-06 15:42:30.000000000","message":"To be fair, this isn\u0027t a concern for this test at this time since it doesn\u0027t run with a microversion high enough to hit that issue. The linked patch has to deal with it generically since it\u0027s in the base class and doesn\u0027t know what microversion the test is using. Anyway, I added the check, but it\u0027s not really necessary for this test at this time IMO.","commit_id":"22b38d9daa766c22968f2b487229cf1a3d43cd22"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"77ba22cd1e1dddfc176b80aefac75cdf0d50ba97","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        attached_volumes \u003d server[\u0027os-extended-volumes:volumes_attached\u0027]"},{"line_number":401,"context_line":"        self.assertEqual(1, len(attached_volumes))"},{"line_number":402,"context_line":"        self.assertEqual(volume[\u0027id\u0027], attached_volumes[0][\u0027id\u0027])"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    @decorators.idempotent_id(\u0027b963d4f1-94b3-4c40-9e97-7b583f46e470\u0027)"},{"line_number":405,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.snapshot,"},{"line_number":406,"context_line":"                          \u0027Snapshotting not available, backup not possible.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf8cb3f7_1157e804","line":403,"updated":"2017-12-22 09:27:01.000000000","message":"Does it need to do some check from volume side, e.g, whether the volume status is still \u0027in-use\u0027 and its \u0027attachments\u0027 info is still correct?","commit_id":"22b38d9daa766c22968f2b487229cf1a3d43cd22"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d01e336159f52611f13b3c8fe79f5e5cf1a1ee36","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        attached_volumes \u003d server[\u0027os-extended-volumes:volumes_attached\u0027]"},{"line_number":401,"context_line":"        self.assertEqual(1, len(attached_volumes))"},{"line_number":402,"context_line":"        self.assertEqual(volume[\u0027id\u0027], attached_volumes[0][\u0027id\u0027])"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    @decorators.idempotent_id(\u0027b963d4f1-94b3-4c40-9e97-7b583f46e470\u0027)"},{"line_number":405,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.snapshot,"},{"line_number":406,"context_line":"                          \u0027Snapshotting not available, backup not possible.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f93b717_efd13c59","line":403,"in_reply_to":"bf8cb3f7_1157e804","updated":"2018-01-25 21:09:05.000000000","message":"This is a compute API test so I don\u0027t think so, and we\u0027re basically already asserting that by making sure the server is still showing the same volume attachment after the resize is reverted - nova gets those values from it\u0027s internal BDMs which are mapped to attached volumes in Cinder.","commit_id":"22b38d9daa766c22968f2b487229cf1a3d43cd22"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"bdf9347f96d4b8e57ec76f557ef62d09fb8d0ea8","unresolved":false,"context_lines":[{"line_number":372,"context_line":"    @decorators.idempotent_id(\u0027fbbf075f-a812-4022-bc5c-ccb8047eef12\u0027)"},{"line_number":373,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.resize,"},{"line_number":374,"context_line":"                          \u0027Resize not available.\u0027)"},{"line_number":375,"context_line":"    @utils.services(\u0027volume\u0027)"},{"line_number":376,"context_line":"    def test_resize_server_revert_with_volume_attached(self):"},{"line_number":377,"context_line":"        # Tests attaching a volume to a server instance and then resizing"},{"line_number":378,"context_line":"        # the instance. Once the instance is resized, revert the resize which"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_2efdcd6d","line":375,"updated":"2018-06-19 08:24:20.000000000","message":"nit: adding `@decorators.related_bug(\u00271737599\u0027)` might be helpful to understand the code later.","commit_id":"01ff7c6edf15165f917b828055e23689da191610"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"bf4ef8b08500ecac57e5912cfd6538d56cbee7a9","unresolved":false,"context_lines":[{"line_number":372,"context_line":"    @decorators.idempotent_id(\u0027fbbf075f-a812-4022-bc5c-ccb8047eef12\u0027)"},{"line_number":373,"context_line":"    @testtools.skipUnless(CONF.compute_feature_enabled.resize,"},{"line_number":374,"context_line":"                          \u0027Resize not available.\u0027)"},{"line_number":375,"context_line":"    @utils.services(\u0027volume\u0027)"},{"line_number":376,"context_line":"    def test_resize_server_revert_with_volume_attached(self):"},{"line_number":377,"context_line":"        # Tests attaching a volume to a server instance and then resizing"},{"line_number":378,"context_line":"        # the instance. Once the instance is resized, revert the resize which"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_f4aead7f","line":375,"in_reply_to":"5f7c97a3_2efdcd6d","updated":"2018-07-03 05:41:39.000000000","message":"+1, we can do in follow up.","commit_id":"01ff7c6edf15165f917b828055e23689da191610"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"40cf7e17fd5e0039ddad8a65746338e11b89a411","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        self.addCleanup(self.delete_server, self.server_id)"},{"line_number":391,"context_line":"        waiters.wait_for_server_status("},{"line_number":392,"context_line":"            self.client, self.server_id, \u0027VERIFY_RESIZE\u0027)"},{"line_number":393,"context_line":"        # Now revert the resize which should move the instance and it\u0027s volume"},{"line_number":394,"context_line":"        # attachment back to the original source compute host."},{"line_number":395,"context_line":"        self.client.revert_resize_server(self.server_id)"},{"line_number":396,"context_line":"        waiters.wait_for_server_status(self.client, self.server_id, \u0027ACTIVE\u0027)"},{"line_number":397,"context_line":"        # Make sure everything still looks OK."}],"source_content_type":"text/x-python","patch_set":3,"id":"df7087c5_e57c21b7","line":394,"range":{"start_line":393,"start_character":63,"end_line":394,"end_character":62},"updated":"2018-03-07 09:29:13.000000000","message":"We seem do not check this, and, what does \"volume attachment is back to the original source compute host\" mean?","commit_id":"01ff7c6edf15165f917b828055e23689da191610"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a3ae9e2c191761f145af431a867c2d5f8d55a122","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        self.addCleanup(self.delete_server, self.server_id)"},{"line_number":391,"context_line":"        waiters.wait_for_server_status("},{"line_number":392,"context_line":"            self.client, self.server_id, \u0027VERIFY_RESIZE\u0027)"},{"line_number":393,"context_line":"        # Now revert the resize which should move the instance and it\u0027s volume"},{"line_number":394,"context_line":"        # attachment back to the original source compute host."},{"line_number":395,"context_line":"        self.client.revert_resize_server(self.server_id)"},{"line_number":396,"context_line":"        waiters.wait_for_server_status(self.client, self.server_id, \u0027ACTIVE\u0027)"},{"line_number":397,"context_line":"        # Make sure everything still looks OK."}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_224612c2","line":394,"range":{"start_line":393,"start_character":63,"end_line":394,"end_character":62},"in_reply_to":"df7087c5_033b04c8","updated":"2018-03-28 22:40:42.000000000","message":"If CONF.allow_resize_to_same_host is True, it means nova will allow the user to resize the instance to the same host if that\u0027s the only host available, like in our single-node CI jobs, but it doesn\u0027t have to be the same host.","commit_id":"01ff7c6edf15165f917b828055e23689da191610"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"055ae514bba8fdbd9f5c42904b838baf33659bd0","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        self.addCleanup(self.delete_server, self.server_id)"},{"line_number":391,"context_line":"        waiters.wait_for_server_status("},{"line_number":392,"context_line":"            self.client, self.server_id, \u0027VERIFY_RESIZE\u0027)"},{"line_number":393,"context_line":"        # Now revert the resize which should move the instance and it\u0027s volume"},{"line_number":394,"context_line":"        # attachment back to the original source compute host."},{"line_number":395,"context_line":"        self.client.revert_resize_server(self.server_id)"},{"line_number":396,"context_line":"        waiters.wait_for_server_status(self.client, self.server_id, \u0027ACTIVE\u0027)"},{"line_number":397,"context_line":"        # Make sure everything still looks OK."}],"source_content_type":"text/x-python","patch_set":3,"id":"df7087c5_033b04c8","line":394,"range":{"start_line":393,"start_character":63,"end_line":394,"end_character":62},"in_reply_to":"df7087c5_d8165b4a","updated":"2018-03-21 02:56:16.000000000","message":"Thanks for the detailed explaination, very clear.\nYes from the result of show_server, seems we can only say that \"volume is still attached to the server\", and, \nif CONF.allow_resize_to_same_host is True, maybe the server never change its host?","commit_id":"01ff7c6edf15165f917b828055e23689da191610"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fc001aa04a0f8ad7835af56d0cd941e6aa5e771b","unresolved":false,"context_lines":[{"line_number":390,"context_line":"        self.addCleanup(self.delete_server, self.server_id)"},{"line_number":391,"context_line":"        waiters.wait_for_server_status("},{"line_number":392,"context_line":"            self.client, self.server_id, \u0027VERIFY_RESIZE\u0027)"},{"line_number":393,"context_line":"        # Now revert the resize which should move the instance and it\u0027s volume"},{"line_number":394,"context_line":"        # attachment back to the original source compute host."},{"line_number":395,"context_line":"        self.client.revert_resize_server(self.server_id)"},{"line_number":396,"context_line":"        waiters.wait_for_server_status(self.client, self.server_id, \u0027ACTIVE\u0027)"},{"line_number":397,"context_line":"        # Make sure everything still looks OK."}],"source_content_type":"text/x-python","patch_set":3,"id":"df7087c5_d8165b4a","line":394,"range":{"start_line":393,"start_character":63,"end_line":394,"end_character":62},"in_reply_to":"df7087c5_e57c21b7","updated":"2018-03-21 01:55:17.000000000","message":"I think we\u0027ve already talked about this in this review, but maybe this comment is too low-level for what happens on the internals in nova.\n\nDuring a resize, the instance is moved from it\u0027s current (source) host to a target destination host, chosen by the nova scheduler. The volumes attached to the instance are disconnected from the source host and connected on the destination host. The volume attachment resources (modeled in Cinder), are deleted for the source host and re-created for the destination host, since they are new attachments to a new host.\n\nWhen we revert a resize, we basically undo that stuff and go back to the source host.\n\nIf this is too-level, I can remove the comment from tempest. I\u0027m just generally detailed in my test comments as I work through the flow.","commit_id":"01ff7c6edf15165f917b828055e23689da191610"}]}
