)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b5cb6759c92114c4a892c6a98b58a7b40be68026","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add a test to do a swap volume on a volume that is multi-attached"},{"line_number":10,"context_line":"to two servers."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: I173c404a54d1306e95c1cc3fbd651b137cb1c6aa"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Part of nova blueprint multi-attach-volume"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7f96bb07_0b8ec5cf","line":12,"updated":"2018-01-12 20:05:34.000000000","message":"This is redundant since this patch is on top of another tempest patch that depends on the top of the volume multiattach nova API series.","commit_id":"1760706221b4b63f55e29b25df674088f87fe66a"},{"author":{"_account_id":17386,"name":"Steve Noyes","email":"steve.noyes@oracle.com","username":"ssn1ssn"},"change_message_id":"27cb333dcc784889151ce434c1049f6eec37295a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add a test to do a swap volume on a volume that is multi-attached"},{"line_number":10,"context_line":"to two servers."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: I173c404a54d1306e95c1cc3fbd651b137cb1c6aa"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Part of nova blueprint multi-attach-volume"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7f96bb07_4b5b6d53","line":12,"in_reply_to":"7f96bb07_0b8ec5cf","updated":"2018-01-12 20:07:35.000000000","message":"OK good to know. I wasn\u0027t exactly sure, so I was playing it safe.","commit_id":"1760706221b4b63f55e29b25df674088f87fe66a"}],"tempest/api/compute/admin/test_volume_swap.py":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"986e1927b41484cc70f9edbf33131089f4df2aed","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"class AttachVolumeMultiAttachTest(TestVolumeSwapBase):"},{"line_number":130,"context_line":"    min_microversion \u003d \u00272.59\u0027"},{"line_number":131,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_31720f13","line":130,"range":{"start_line":130,"start_character":24,"end_line":130,"end_character":28},"updated":"2018-01-13 00:11:40.000000000","message":"This needs to be \u00272.60\u0027 now, we missed the \u00272.59\u0027 train. :(","commit_id":"1760706221b4b63f55e29b25df674088f87fe66a"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"14717c67f6cf12c5f384f08c236cd20456ca206c","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"class AttachVolumeMultiAttachTest(TestVolumeSwapBase):"},{"line_number":130,"context_line":"    min_microversion \u003d \u00272.59\u0027"},{"line_number":131,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f96bb07_09e2e3a0","line":130,"range":{"start_line":130,"start_character":24,"end_line":130,"end_character":28},"in_reply_to":"7f96bb07_31720f13","updated":"2018-01-17 09:42:24.000000000","message":"Done","commit_id":"1760706221b4b63f55e29b25df674088f87fe66a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b753432ffb147be07a6819fce2fbf51dca986ff1","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        self.admin_servers_client.update_attached_volume("},{"line_number":161,"context_line":"            server1[\u0027id\u0027], volume1[\u0027id\u0027], volumeId\u003dvolume2[\u0027id\u0027])"},{"line_number":162,"context_line":"        # volume1 will return to in-use after the swap"},{"line_number":163,"context_line":"        waiters.wait_for_volume_resource_status(self.volumes_client,"},{"line_number":164,"context_line":"                                                volume1[\u0027id\u0027], \u0027in-use\u0027)"},{"line_number":165,"context_line":"        waiters.wait_for_volume_resource_status(self.volumes_client,"},{"line_number":166,"context_line":"                                                volume2[\u0027id\u0027], \u0027in-use\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_41980d1a","line":163,"updated":"2018-01-23 17:34:53.000000000","message":"A run of this test failed here:\n\nhttp://logs.openstack.org/89/532689/5/check/nova-multiattach/094e46b/job-output.txt.gz#_2018-01-23_12_43_58_792416\n\nBut the swap volume operation completed successfully in the nova-compute service:\n\nhttp://logs.openstack.org/89/532689/5/check/nova-multiattach/094e46b/logs/screen-n-cpu.txt.gz#_Jan_23_11_19_22_009270\n\nAnd the attachment for the volume and the instance was deleted here:\n\nhttp://logs.openstack.org/89/532689/5/check/nova-multiattach/094e46b/logs/screen-n-cpu.txt.gz#_Jan_23_11_19_20_451671\n\nCorresponding request in cinder-api logs:\n\nhttp://logs.openstack.org/89/532689/5/check/nova-multiattach/094e46b/logs/screen-c-api.txt.gz#_Jan_23_11_19_20_554540\n\nAnd the attachment delete in the cinder-volume logs:\n\nhttp://logs.openstack.org/89/532689/5/check/nova-multiattach/094e46b/logs/screen-c-vol.txt.gz#_Jan_23_11_19_21_472221\n\nSo the instance should go back into in-use status.\n\nNote that this was the old volume before we swapped to the new volume:\n\nhttp://paste.openstack.org/show/650989/\n\nLooking at the state of the volume when the test timeouts, the attachment that was deleted is not gone from the volume:\n\nhttp://paste.openstack.org/show/650990/\n\nBut there are no errors in Cinder.\n\nThe attachment_delete code in the cinder volume API has some logic to check what remaining attachments exist and what their status values are to determine the overall status for the volume, so we\u0027d have to know what the attachments are and their status once the attachment is deleted (the volume should still be attached to the other server).","commit_id":"c4f2a3c3aef6214c925db425b12069e8688db209"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eaf687a480f8c0ecc9c3731caac9c0da4add480d","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        self.admin_servers_client.update_attached_volume("},{"line_number":161,"context_line":"            server1[\u0027id\u0027], volume1[\u0027id\u0027], volumeId\u003dvolume2[\u0027id\u0027])"},{"line_number":162,"context_line":"        # volume1 will return to in-use after the swap"},{"line_number":163,"context_line":"        waiters.wait_for_volume_resource_status(self.volumes_client,"},{"line_number":164,"context_line":"                                                volume1[\u0027id\u0027], \u0027in-use\u0027)"},{"line_number":165,"context_line":"        waiters.wait_for_volume_resource_status(self.volumes_client,"},{"line_number":166,"context_line":"                                                volume2[\u0027id\u0027], \u0027in-use\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_a421df4f","line":163,"in_reply_to":"7f96bb07_41980d1a","updated":"2018-01-23 17:42:47.000000000","message":"Opened bug 1744991 to track this.","commit_id":"c4f2a3c3aef6214c925db425b12069e8688db209"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d4dc4d372a9447c1b8e63a5b7843e79719376800","unresolved":false,"context_lines":[{"line_number":129,"context_line":"class AttachVolumeMultiAttachTest(TestVolumeSwapBase):"},{"line_number":130,"context_line":"    min_microversion \u003d \u00272.60\u0027"},{"line_number":131,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @classmethod"},{"line_number":134,"context_line":"    def skip_checks(cls):"},{"line_number":135,"context_line":"        super(AttachVolumeMultiAttachTest, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f93b717_0e2e57fa","line":132,"range":{"start_line":132,"start_character":0,"end_line":132,"end_character":0},"updated":"2018-02-01 02:11:27.000000000","message":"ll be more happy if you write the doc string about scenario covered here but not blocking as such and can be done later.","commit_id":"dfade250f45a8fae0bc32c9cdb5fb29cfcfea869"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"5efbc82f938b59599a9848ad05fa9d49fe411810","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        # volumes cleanup can happen successfully irrespective of which volume"},{"line_number":145,"context_line":"        # is attached to server."},{"line_number":146,"context_line":"        volume1 \u003d self.create_volume(multiattach\u003dTrue)"},{"line_number":147,"context_line":"        volume2 \u003d self.create_volume(multiattach\u003dTrue)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        # Boot server1"},{"line_number":150,"context_line":"        server1 \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f93b717_274dff71","line":147,"range":{"start_line":147,"start_character":37,"end_line":147,"end_character":53},"updated":"2018-01-26 09:01:42.000000000","message":"this seems not needed?","commit_id":"dfade250f45a8fae0bc32c9cdb5fb29cfcfea869"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a996a2b0e8b3fee92d5d02911c6cbf9b0bffae5b","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        # volumes cleanup can happen successfully irrespective of which volume"},{"line_number":145,"context_line":"        # is attached to server."},{"line_number":146,"context_line":"        volume1 \u003d self.create_volume(multiattach\u003dTrue)"},{"line_number":147,"context_line":"        volume2 \u003d self.create_volume(multiattach\u003dTrue)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        # Boot server1"},{"line_number":150,"context_line":"        server1 \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f93b717_8ab96fea","line":147,"range":{"start_line":147,"start_character":37,"end_line":147,"end_character":53},"in_reply_to":"5f93b717_274dff71","updated":"2018-01-26 16:13:12.000000000","message":"Why not? The test is testing a swap volume operation from one multiattach volume to another, regardless of whether or not volume2 has more than one attachment, the underlying code within nova still accounts for if the volume is multiattach or not (different logic internally).","commit_id":"dfade250f45a8fae0bc32c9cdb5fb29cfcfea869"}]}
