)]}'
{"tempest/api/compute/base.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"a8ff80cfe226df5cf61478e3c4583e7178376e95","unresolved":true,"context_lines":[{"line_number":567,"context_line":""},{"line_number":568,"context_line":"        # NOTE(lyarwood): During attach we initially wait for the volume"},{"line_number":569,"context_line":"        # attachment and then check the volume state. "},{"line_number":570,"context_line":"        if not volume[\u0027multiattach\u0027]:"},{"line_number":571,"context_line":"            waiters.wait_for_volume_resource_status("},{"line_number":572,"context_line":"                self.volumes_client, volume[\u0027id\u0027], \u0027in-use\u0027)"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"        waiters.wait_for_volume_attachment_create("},{"line_number":575,"context_line":"            self.volumes_client, volume[\u0027id\u0027], server[\u0027id\u0027])"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"        # NOTE(lyarwood): On teardown (LIFO) initially wait for the volume"},{"line_number":578,"context_line":"        # attachment in Nova to be removed. If this fails the console output of"}],"source_content_type":"text/x-python","patch_set":1,"id":"c85cdeb6_24613f77","line":575,"range":{"start_line":570,"start_character":0,"end_line":575,"end_character":60},"updated":"2021-06-04 10:29:29.000000000","message":"These need to be switched.","commit_id":"fc8c55efcb978e92deedfbdfbb9aff7c393ac9ad"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"8999a173895ab475e71fb97f315aa0f2a20ba725","unresolved":true,"context_lines":[{"line_number":588,"context_line":"            volume[\u0027id\u0027], attachment[\u0027attachment_id\u0027])"},{"line_number":589,"context_line":"        self.addCleanup(self._detach_volume, server, volume)"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"        return attachment"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"    def create_volume_snapshot(self, volume_id, name\u003dNone, description\u003dNone,"},{"line_number":594,"context_line":"                               metadata\u003dNone, force\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":3,"id":"e977afce_1a196e2e","line":591,"range":{"start_line":591,"start_character":8,"end_line":591,"end_character":25},"updated":"2021-06-10 20:33:20.000000000","message":"I noticed from the tempest-full-py3 job fail [1] that tests expect this to be a response from the nova /os-volume_attachments API but this has changed it to be a response from the cinder /attachments/{attachment_id} API:\n\n   File \"/opt/stack/tempest/tempest/api/compute/volumes/test_attach_volume.py\", line 146, in test_list_get_volume_attachments\n\n\n testtools.matchers._impl.MismatchError:\n\n {\u0027id\u0027: \u0027ec327fcd-6bf9-462d-847e-3ada71938864\u0027, \u0027attachment_id\u0027: \u0027c331590f-20fd-418c-b851-86e8f7bd8a96\u0027, \u0027volume_id\u0027: \u0027ec327fcd-6bf9-462d-847e-3ada71938864\u0027, \u0027server_id\u0027: \u0027d3aeb261-8f42-4b98-baf3-a1c0f2251caa\u0027, \u0027host_name\u0027: None, \u0027device\u0027: \u0027/dev/vdb\u0027, \u0027attached_at\u0027: \u00272021-06-10T17:45:51.000000\u0027}\n\n not in\n\n [{\u0027id\u0027: \u0027ec327fcd-6bf9-462d-847e-3ada71938864\u0027, \u0027volumeId\u0027: \u0027ec327fcd-6bf9-462d-847e-3ada71938864\u0027, \u0027serverId\u0027: \u0027d3aeb261-8f42-4b98-baf3-a1c0f2251caa\u0027, \u0027device\u0027: \u0027/dev/vdb\u0027}]\n\n\n[1] https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_ffc/794757/3/check/tempest-full-py3/ffc7e56/testr_results.html","commit_id":"b13c20b7caff2db594306d7802ff094d53c93e21"}],"tempest/common/waiters.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"61a0366b612968c382b7ce5ae0c306ef9e40e774","unresolved":true,"context_lines":[{"line_number":365,"context_line":"        if timed_out:"},{"line_number":366,"context_line":"            console_output \u003d client.get_console_output(server_id)[\u0027output\u0027]"},{"line_number":367,"context_line":"            LOG.debug(\u0027Console output for %s\\nbody\u003d\\n%s\u0027,"},{"line_number":368,"context_line":"                      server_id, console_output)"},{"line_number":369,"context_line":"            message \u003d (\u0027Volume %s failed to detach from server %s within \u0027"},{"line_number":370,"context_line":"                       \u0027the required time (%s s) from the compute API \u0027"},{"line_number":371,"context_line":"                       \u0027perspective\u0027 %"}],"source_content_type":"text/x-python","patch_set":3,"id":"17347129_4a0cd1e9","line":368,"updated":"2021-06-10 20:55:49.000000000","message":"And this output didn\u0027t show up in the DNM nova patch nova-grenade-multinode job fail because we\u0027re using waiters.wait_for_volume_attachment_remove for the cleanup, not wait_for_volume_attachment_remove_from_server :(\n\n(later) Actually it didn\u0027t even fail during the waiters.wait_for_volume_attachment_remove either ... it\u0027s still failing during the wait_for_volume_resource_status (???) Does that mean that waiters.wait_for_volume_attachment_remove passed?\n\n 2021-06-10 19:48:59.553984 | controller | {1}\ntempest.api.compute.admin.test_live_migration.LiveAutoBlockMigrationV225Test.test_live_b lock_migration_with_attached_volume [221.441185s] ... FAILED\n 2021-06-10 19:48:59.554096 | controller |\n 2021-06-10 19:48:59.554127 | controller | Captured traceback:\n 2021-06-10 19:48:59.554151 | controller | ~~~~~~~~~~~~~~~~~~~\n 2021-06-10 19:48:59.554173 | controller |     Traceback (most recent call last):\n 2021-06-10 19:48:59.554201 | controller |\n 2021-06-10 19:48:59.554225 | controller |       File \"/opt/stack/new/tempest/tempest/common/waiters.py\", line 312, in wait_for_volume_resource_status\n 2021-06-10 19:48:59.554249 | controller |     raise lib_exc.TimeoutException(message)\n 2021-06-10 19:48:59.554271 | controller |\n 2021-06-10 19:48:59.554290 | controller |     tempest.lib.exceptions.TimeoutException: Request timed out\n 2021-06-10 19:48:59.554312 | controller | Details: volume d5504a72-da6d-4e28-8d12-7edf7aa91b39 failed to reach available status (current detaching) within the required time (196 s).\n\nhttps://zuul.opendev.org/t/openstack/build/eddfac6de5ca4807a39b8c5bd5f70927/log/job-output.txt#58520-58530","commit_id":"b13c20b7caff2db594306d7802ff094d53c93e21"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"052560a6e121034038c49f0e8091bbf583c375d7","unresolved":true,"context_lines":[{"line_number":356,"context_line":"    This waiter checks the compute API if the volume attachment is removed."},{"line_number":357,"context_line":"    \"\"\""},{"line_number":358,"context_line":"    start \u003d int(time.time())"},{"line_number":359,"context_line":"    volumes \u003d client.list_volume_attachments(server_id)[\u0027volumeAttachments\u0027]"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    while any(volume for volume in volumes if volume[\u0027volumeId\u0027] \u003d\u003d volume_id):"},{"line_number":362,"context_line":"        time.sleep(client.build_interval)"}],"source_content_type":"text/x-python","patch_set":4,"id":"63be0fc6_f58fe9b9","line":359,"updated":"2021-06-10 22:23:11.000000000","message":"I wonder if we should just catch 404 (server not found) here and ignore it to handle tests like tempest.api.compute.servers.test_delete_server.DeleteServersTestJSON.test_delete_server_while_in_attached_volume","commit_id":"4ea8ffae28efa1b10f70ffad8a3ef1b7712695dd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dbfe529ee21ceba6d698797011c06a54881268a3","unresolved":true,"context_lines":[{"line_number":356,"context_line":"    This waiter checks the compute API if the volume attachment is removed."},{"line_number":357,"context_line":"    \"\"\""},{"line_number":358,"context_line":"    start \u003d int(time.time())"},{"line_number":359,"context_line":"    volumes \u003d client.list_volume_attachments(server_id)[\u0027volumeAttachments\u0027]"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    while any(volume for volume in volumes if volume[\u0027volumeId\u0027] \u003d\u003d volume_id):"},{"line_number":362,"context_line":"        time.sleep(client.build_interval)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bd861aab_dfb0f527","line":359,"in_reply_to":"63be0fc6_f58fe9b9","updated":"2021-06-10 22:30:33.000000000","message":"tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON. test_resize_server_revert_with_volume_attached\n\nalso can\u0027t handle this method either because it adds a delete server cleanup which will run first due to LIFO:\n\nhttps://github.com/openstack/tempest/blob/aafb5900e7450316e44541655e0ecd5575a69d73/tempest/api/compute/servers/test_server_actions.py#L447","commit_id":"4ea8ffae28efa1b10f70ffad8a3ef1b7712695dd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3b5c3cea551f33e67e25da3d7f86d316cee54055","unresolved":true,"context_lines":[{"line_number":358,"context_line":"    start \u003d int(time.time())"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"    try:"},{"line_number":361,"context_line":"        volumes \u003d client.list_volume_attachments(server_id)[\u0027volumeAttachments\u0027]"},{"line_number":362,"context_line":"    except lib_exc.NotFound:"},{"line_number":363,"context_line":"        # Ignore 404s on detach in case the server is deleted or the volume"},{"line_number":364,"context_line":"        # is already detached."}],"source_content_type":"text/x-python","patch_set":5,"id":"c434da28_7dcb611a","line":361,"updated":"2021-06-10 23:50:47.000000000","message":"Sigh... line is too long now.","commit_id":"d23506a892de43f8de4836979a4ab544cf623ac7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"716566dba47aa1a9b15bc6de45158cb0361b655a","unresolved":true,"context_lines":[{"line_number":362,"context_line":"    except lib_exc.NotFound:"},{"line_number":363,"context_line":"        # Ignore 404s on detach in case the server is deleted or the volume"},{"line_number":364,"context_line":"        # is already detached."},{"line_number":365,"context_line":"        return"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    while any(volume for volume in volumes if volume[\u0027volumeId\u0027] \u003d\u003d volume_id):"},{"line_number":368,"context_line":"        time.sleep(client.build_interval)"}],"source_content_type":"text/x-python","patch_set":5,"id":"34d9a055_353fd208","line":365,"updated":"2021-06-10 22:58:53.000000000","message":"Note: copied from https://github.com/openstack/tempest/blob/aafb5900e7450316e44541655e0ecd5575a69d73/tempest/api/compute/base.py#L543-L545","commit_id":"d23506a892de43f8de4836979a4ab544cf623ac7"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"768b597149dcc95e185022c1a85d9f6fa53784f4","unresolved":true,"context_lines":[{"line_number":379,"context_line":"                       (volume_id, server_id, client.build_timeout))"},{"line_number":380,"context_line":"            raise lib_exc.TimeoutException(message)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        volumes \u003d client.list_volume_attachments(server_id)["},{"line_number":383,"context_line":"            \u0027volumeAttachments\u0027]"},{"line_number":384,"context_line":"    return"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1c26dc61_f757a49e","line":383,"range":{"start_line":382,"start_character":0,"end_line":383,"end_character":32},"updated":"2021-07-23 21:54:23.000000000","message":"we can handle the 404 here too for safer side.","commit_id":"a3806e3f5c12245ebb9e3979053c6dcd9ded799e"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"50102df94e32b99c7895fa3cceeb5cb9f984e9aa","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                       (volume_id, server_id, client.build_timeout))"},{"line_number":380,"context_line":"            raise lib_exc.TimeoutException(message)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        volumes \u003d client.list_volume_attachments(server_id)["},{"line_number":383,"context_line":"            \u0027volumeAttachments\u0027]"},{"line_number":384,"context_line":"    return"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bf21e777_91ce5502","line":383,"range":{"start_line":382,"start_character":0,"end_line":383,"end_character":32},"in_reply_to":"1c26dc61_f757a49e","updated":"2021-07-26 09:11:00.000000000","message":"Ack","commit_id":"a3806e3f5c12245ebb9e3979053c6dcd9ded799e"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"69064e04fa6c415729a42a1a03475cafdbd9b875","unresolved":true,"context_lines":[{"line_number":385,"context_line":"            # Ignore 404s on detach in case the server is deleted or the volume"},{"line_number":386,"context_line":"            # is already detached."},{"line_number":387,"context_line":"            return"},{"line_number":388,"context_line":"    return"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"def wait_for_volume_migration(client, volume_id, new_host):"}],"source_content_type":"text/x-python","patch_set":10,"id":"6445d85c_81ca6f07","line":388,"range":{"start_line":388,"start_character":4,"end_line":388,"end_character":10},"updated":"2021-07-27 06:32:21.000000000","message":"don\u0027t we want to return volumes when they are found? hm, I checked and none of the calls of this waiter expects a return value, the waiter is not called from outside of tempest so it\u0027s ok to change the return value to None - it won\u0027t affect anything","commit_id":"d8e0035738526af759ed4e95681ecf6eaf80ee66"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3c1670f1051352447125bafdf334b2ec8fb16ef1","unresolved":true,"context_lines":[{"line_number":385,"context_line":"            # Ignore 404s on detach in case the server is deleted or the volume"},{"line_number":386,"context_line":"            # is already detached."},{"line_number":387,"context_line":"            return"},{"line_number":388,"context_line":"    return"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"def wait_for_volume_migration(client, volume_id, new_host):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bacadc71_9e327ecb","line":388,"range":{"start_line":388,"start_character":4,"end_line":388,"end_character":10},"in_reply_to":"6445d85c_81ca6f07","updated":"2021-08-06 12:40:14.000000000","message":"yeah, I am ok to remove return value and if needed we can add it.","commit_id":"d8e0035738526af759ed4e95681ecf6eaf80ee66"}]}
