)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32704,"name":"Alfredo Garcia","display_name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc","status":"Senior Software Quality Engineer @ Red Hat"},"change_message_id":"e7b6203269c4871745c34dd866e994f07574e565","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3c669ca2_cecbe5f5","updated":"2026-03-03 15:45:05.000000000","message":"Changes look good, comments are thorough. LGTM","commit_id":"617f7a06c9f23ed8aeb7bfe328107e8f4a10a262"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"25e80dac08d29a0ca235ce4283d33e858a3aa6a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"7f42a1f8_c1c146c9","updated":"2026-03-03 09:31:28.000000000","message":"recheck - failed to download etcd from github","commit_id":"617f7a06c9f23ed8aeb7bfe328107e8f4a10a262"}],"tempest/api/compute/base.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"60e9bd30d05891ed3fef5dc916096cb866b203f4","unresolved":true,"context_lines":[{"line_number":621,"context_line":"                                                 **attach_kwargs)"},{"line_number":622,"context_line":"        attachment \u003d None"},{"line_number":623,"context_line":"        if api_version_utils.compare_version_header_to_response("},{"line_number":624,"context_line":"                \"OpenStack-API-Version\", \"compute 2.101\", resp.response, \"lt\"):"},{"line_number":625,"context_line":"            attachment \u003d resp[\u0027volumeAttachment\u0027]"},{"line_number":626,"context_line":""},{"line_number":627,"context_line":"        # NOTE(lyarwood): During attach we initially wait for the volume"}],"source_content_type":"text/x-python","patch_set":2,"id":"9c2a33fd_5ac137a5","line":624,"range":{"start_line":624,"start_character":74,"end_line":624,"end_character":77},"updated":"2026-02-26 20:47:02.000000000","message":"it shuld be revers right? that is why test is failing.\n\n        if api_version_utils.compare_version_header_to_response(\n                \"OpenStack-API-Version\", \"compute 2.101\", resp.response, \"gt\"):\n\nhttps://7085747892e7d0f91e48-2bc180aa14447137d9bc88cfec219012.ssl.cf1.rackcdn.com/openstack/023cae9496f94e9095b45021a322501a/testr_results.html\n\ntesttools.matchers._impl.MismatchError: None not in [{\u0027id\u0027: \u0027f4934972-a12b-4a61-804d-72df12e486a8\u0027, \u0027volumeId\u0027: \u0027f4934972-a12b-4a61-804d-72df12e486a8\u0027, \u0027serverId\u0027: \u002729305b78-aea7-48c2-8bc2-c94d589afc27\u0027, \u0027device\u0027: \u0027/dev/vdb\u0027}]","commit_id":"6065d7673425f669addbd05b8c1be5917ccd923e"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"13ea880a0a61ccb30ed868022f47b1e1a51d6b0c","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                                                 **attach_kwargs)"},{"line_number":622,"context_line":"        attachment \u003d None"},{"line_number":623,"context_line":"        if api_version_utils.compare_version_header_to_response("},{"line_number":624,"context_line":"                \"OpenStack-API-Version\", \"compute 2.101\", resp.response, \"lt\"):"},{"line_number":625,"context_line":"            attachment \u003d resp[\u0027volumeAttachment\u0027]"},{"line_number":626,"context_line":""},{"line_number":627,"context_line":"        # NOTE(lyarwood): During attach we initially wait for the volume"}],"source_content_type":"text/x-python","patch_set":2,"id":"119814d7_4216ba93","line":624,"range":{"start_line":624,"start_character":74,"end_line":624,"end_character":77},"in_reply_to":"9c2a33fd_5ac137a5","updated":"2026-02-27 12:00:43.000000000","message":"Oh, comparison works the other way around, i.e. \"{string_we_provide} \u003c {resp_header}\". Yes, you\u0027re correct.","commit_id":"6065d7673425f669addbd05b8c1be5917ccd923e"}],"tempest/api/compute/volumes/test_attach_volume.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"60e9bd30d05891ed3fef5dc916096cb866b203f4","unresolved":true,"context_lines":[{"line_number":66,"context_line":"    @decorators.idempotent_id(\u002752e9045a-e90d-4c0d-9087-79d657faffff\u0027)"},{"line_number":67,"context_line":"    # This test is conditionally marked slow if SSH validation is enabled."},{"line_number":68,"context_line":"    @decorators.attr(type\u003d\u0027slow\u0027, condition\u003dCONF.validation.run_validation)"},{"line_number":69,"context_line":"    def test_attach_detach_volume(self):"},{"line_number":70,"context_line":"        \"\"\"Test attaching and detaching volume from server"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        Stop and Start a server with an attached volume, ensuring that"}],"source_content_type":"text/x-python","patch_set":2,"id":"25ac8968_6b2ca441","line":69,"range":{"start_line":69,"start_character":0,"end_line":69,"end_character":40},"updated":"2026-02-26 20:47:02.000000000","message":"this test does not need to be capped and current change in this test should be enough to run it for \u003c2.101 or \u003e\u003d2.101 microversion.","commit_id":"6065d7673425f669addbd05b8c1be5917ccd923e"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"13ea880a0a61ccb30ed868022f47b1e1a51d6b0c","unresolved":true,"context_lines":[{"line_number":66,"context_line":"    @decorators.idempotent_id(\u002752e9045a-e90d-4c0d-9087-79d657faffff\u0027)"},{"line_number":67,"context_line":"    # This test is conditionally marked slow if SSH validation is enabled."},{"line_number":68,"context_line":"    @decorators.attr(type\u003d\u0027slow\u0027, condition\u003dCONF.validation.run_validation)"},{"line_number":69,"context_line":"    def test_attach_detach_volume(self):"},{"line_number":70,"context_line":"        \"\"\"Test attaching and detaching volume from server"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        Stop and Start a server with an attached volume, ensuring that"}],"source_content_type":"text/x-python","patch_set":2,"id":"a1bd8e5f_4a0bbc86","line":69,"range":{"start_line":69,"start_character":0,"end_line":69,"end_character":40},"in_reply_to":"25ac8968_6b2ca441","updated":"2026-02-27 12:00:43.000000000","message":"Yes, it would work, but 2.101 changed functionality, so I thought it would be better to run it with lower and higher version requirement. I can remove it again, if I misunderstood how tempest does versioning though.","commit_id":"6065d7673425f669addbd05b8c1be5917ccd923e"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"48818577aac05007204b83a8bc92be7e1958f7a5","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    @decorators.idempotent_id(\u002752e9045a-e90d-4c0d-9087-79d657faffff\u0027)"},{"line_number":67,"context_line":"    # This test is conditionally marked slow if SSH validation is enabled."},{"line_number":68,"context_line":"    @decorators.attr(type\u003d\u0027slow\u0027, condition\u003dCONF.validation.run_validation)"},{"line_number":69,"context_line":"    def test_attach_detach_volume(self):"},{"line_number":70,"context_line":"        \"\"\"Test attaching and detaching volume from server"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        Stop and Start a server with an attached volume, ensuring that"}],"source_content_type":"text/x-python","patch_set":2,"id":"83d03fec_3bb69758","line":69,"range":{"start_line":69,"start_character":0,"end_line":69,"end_character":40},"in_reply_to":"39b3665e_f5f51cc7","updated":"2026-03-02 13:25:17.000000000","message":"Looking at the test, the functionality is the attachment itself and whether it returns a value or not doesn\u0027t matter. Hence, I kept it as-is without maximum version.","commit_id":"6065d7673425f669addbd05b8c1be5917ccd923e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a0b0c92d8f699c84b72f1a17a39a0287d1b8a041","unresolved":true,"context_lines":[{"line_number":66,"context_line":"    @decorators.idempotent_id(\u002752e9045a-e90d-4c0d-9087-79d657faffff\u0027)"},{"line_number":67,"context_line":"    # This test is conditionally marked slow if SSH validation is enabled."},{"line_number":68,"context_line":"    @decorators.attr(type\u003d\u0027slow\u0027, condition\u003dCONF.validation.run_validation)"},{"line_number":69,"context_line":"    def test_attach_detach_volume(self):"},{"line_number":70,"context_line":"        \"\"\"Test attaching and detaching volume from server"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        Stop and Start a server with an attached volume, ensuring that"}],"source_content_type":"text/x-python","patch_set":2,"id":"39b3665e_f5f51cc7","line":69,"range":{"start_line":69,"start_character":0,"end_line":69,"end_character":40},"in_reply_to":"a1bd8e5f_4a0bbc86","updated":"2026-02-27 18:26:33.000000000","message":"it depends on the what functionlaity test is verifying and if that differ from microversion then we can separate the tests. Otherwise keep ing it adjusted which can work for all microveison (like you did here) will make sure this test verify the same for all microverison.","commit_id":"6065d7673425f669addbd05b8c1be5917ccd923e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"60e9bd30d05891ed3fef5dc916096cb866b203f4","unresolved":true,"context_lines":[{"line_number":265,"context_line":"            self.assertEqual(len(disks_before_attach), len(disks_after_detach))"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    @decorators.idempotent_id(\u00270518b0c3-a15a-4545-b157-9647ff1a2453\u0027)"},{"line_number":268,"context_line":"    def test_list_get_volume_attachments(self):"},{"line_number":269,"context_line":"        \"\"\"Test listing and getting volume attachments"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        First we attach one volume to the server, check listing and getting"}],"source_content_type":"text/x-python","patch_set":2,"id":"9c00e347_bf66219e","line":268,"range":{"start_line":268,"start_character":0,"end_line":268,"end_character":47},"updated":"2026-02-26 20:47:02.000000000","message":"I did not find any change in this test. Actually we do not need to write a separate test instead just cap the existing test for 2.100. There is nothing in this test to verify for \u003e\u003d2.101","commit_id":"6065d7673425f669addbd05b8c1be5917ccd923e"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"48818577aac05007204b83a8bc92be7e1958f7a5","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            self.assertEqual(len(disks_before_attach), len(disks_after_detach))"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    @decorators.idempotent_id(\u00270518b0c3-a15a-4545-b157-9647ff1a2453\u0027)"},{"line_number":268,"context_line":"    def test_list_get_volume_attachments(self):"},{"line_number":269,"context_line":"        \"\"\"Test listing and getting volume attachments"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        First we attach one volume to the server, check listing and getting"}],"source_content_type":"text/x-python","patch_set":2,"id":"70582851_16c38057","line":268,"range":{"start_line":268,"start_character":0,"end_line":268,"end_character":47},"in_reply_to":"31fb9777_98c224a1","updated":"2026-03-02 13:25:17.000000000","message":"I made it work with any microversion. We\u0027re still testing that we get multiple volumes back when we attach them and that fetching a specific attachment still works. This should be true for any microversion.\n\nWith the newer microversion not returning a volumeAttachment, the only thing we don\u0027t test anymore is that the returned-on-attach data matches the one fetched via API later, but since that part doesn\u0027t exist anymore, it\u0027s fine.\n\nTherefore, I don\u0027t think we need to add a maximum microversion here, either.","commit_id":"6065d7673425f669addbd05b8c1be5917ccd923e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3c1618b70d3965fadb24f9dc223136e58ec2e40f","unresolved":true,"context_lines":[{"line_number":265,"context_line":"            self.assertEqual(len(disks_before_attach), len(disks_after_detach))"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    @decorators.idempotent_id(\u00270518b0c3-a15a-4545-b157-9647ff1a2453\u0027)"},{"line_number":268,"context_line":"    def test_list_get_volume_attachments(self):"},{"line_number":269,"context_line":"        \"\"\"Test listing and getting volume attachments"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        First we attach one volume to the server, check listing and getting"}],"source_content_type":"text/x-python","patch_set":2,"id":"31fb9777_98c224a1","line":268,"range":{"start_line":268,"start_character":0,"end_line":268,"end_character":47},"in_reply_to":"7187b134_615ea831","updated":"2026-02-27 18:25:00.000000000","message":"we do nhave list_volume_attachments called in many tests in tempest so that is actually covered. I do not think we need to test that explicitly. let\u0027s kee this test under 2.100","commit_id":"6065d7673425f669addbd05b8c1be5917ccd923e"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"13ea880a0a61ccb30ed868022f47b1e1a51d6b0c","unresolved":true,"context_lines":[{"line_number":265,"context_line":"            self.assertEqual(len(disks_before_attach), len(disks_after_detach))"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    @decorators.idempotent_id(\u00270518b0c3-a15a-4545-b157-9647ff1a2453\u0027)"},{"line_number":268,"context_line":"    def test_list_get_volume_attachments(self):"},{"line_number":269,"context_line":"        \"\"\"Test listing and getting volume attachments"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        First we attach one volume to the server, check listing and getting"}],"source_content_type":"text/x-python","patch_set":2,"id":"7187b134_615ea831","line":268,"range":{"start_line":268,"start_character":0,"end_line":268,"end_character":47},"in_reply_to":"9c00e347_bf66219e","updated":"2026-02-27 12:00:43.000000000","message":"There\u0027s only small changes in that we get the `attachment_1st` and `attachment_2nd` from the list of attachments instead of directly from `self.attach_volume()` (as that returns `None` now).\n\nWhy I kept and copied it: IFF at some point Nova retires old API version, we wouldn\u0027t have any test for listing volume attachments anymore. Additionally, we\u0027ll never test this functionality with an API version larger than 2.100 anymore either right now - or so I think not knowing how tempest actually selects the versions it would use. Hence, duplicating it and adapting it a little for 2.101 made sense to me.\n\nI\u0027m open for removing it all though, if you think that\u0027s the better way.","commit_id":"6065d7673425f669addbd05b8c1be5917ccd923e"}],"tempest/lib/api_schema/response/compute/v2_101/servers.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"60e9bd30d05891ed3fef5dc916096cb866b203f4","unresolved":true,"context_lines":[{"line_number":24,"context_line":"#"},{"line_number":25,"context_line":"###########################################################################"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"attach_volume \u003d {\u0027type\u0027: \u0027null\u0027}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# NOTE(jkulik): Below are the unchanged schema in this microversion. We"},{"line_number":30,"context_line":"# need to keep this schema in this file to have the generic way to select the"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a507aa0_1e08613f","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":32},"updated":"2026-02-26 20:47:02.000000000","message":"this needs to be\n\nattach_volume \u003d {\n    \u0027status_code\u0027: [202]\n}","commit_id":"6065d7673425f669addbd05b8c1be5917ccd923e"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"13ea880a0a61ccb30ed868022f47b1e1a51d6b0c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"#"},{"line_number":25,"context_line":"###########################################################################"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"attach_volume \u003d {\u0027type\u0027: \u0027null\u0027}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# NOTE(jkulik): Below are the unchanged schema in this microversion. We"},{"line_number":30,"context_line":"# need to keep this schema in this file to have the generic way to select the"}],"source_content_type":"text/x-python","patch_set":2,"id":"f4ad1fba_06a36d9f","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":32},"in_reply_to":"9a507aa0_1e08613f","updated":"2026-02-27 12:00:43.000000000","message":"thanks.","commit_id":"6065d7673425f669addbd05b8c1be5917ccd923e"}]}
