)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4d7359408daf797f7ea81b44885e60eea117ff48","unresolved":true,"context_lines":[{"line_number":12,"context_line":"are not deleted during server rebuild. but the test is generic and works"},{"line_number":13,"context_line":"for all storage backends."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Depends-On: https://review.opendev.org/c/openstack/cinder/+/995924"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Related-Bug: #2160473"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"b7957450_82c8424f","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":66},"updated":"2026-09-25 02:43:33.000000000","message":"this is only fixed in master branch, are you planning to backport the fix on stable branches? if not then the new tests will break the stable branch testing because we use tempest master to test them.\n\nif not backport plan then we need to add a feature flag in tempest to run this new test on master onwards and skip on old stable branches where cinder fix is not available.\n\nI can see this test passing on ceph job https://zuul.opendev.org/t/openstack/build/1f3b9eba7d0a408d8572b3d0706f27c5/log/job-output.txt#24345\n\nit pass on non-ceph backend on stable branch also where cinder fix was not there (as cinder change indicate that it is ceph backend specific) - - https://zuul.opendev.org/t/openstack/build/d86af2e3409149d59e465fbf4c414b18/log/job-output.txt#23269\n\nTesting it on stable branch ceph backend, let\u0027s wait for the result: https://review.opendev.org/c/openstack/nova/+/1007353","commit_id":"e45ebff6a08c94ad36ac321786018f8c937243eb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"94dcdbb82af51046bbdf69bb91e630765f854a8c","unresolved":true,"context_lines":[{"line_number":12,"context_line":"are not deleted during server rebuild. but the test is generic and works"},{"line_number":13,"context_line":"for all storage backends."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Depends-On: https://review.opendev.org/c/openstack/cinder/+/995924"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Related-Bug: #2160473"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"191c908c_79446e23","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":66},"in_reply_to":"b7957450_82c8424f","updated":"2026-09-27 02:48:30.000000000","message":"Yes it is breaking stable branch testing. Test failing on stable branch. \n\n- https://zuul.opendev.org/t/openstack/build/83305524e8504efba4dbd165230a8d4a/log/job-output.txt#23651","commit_id":"e45ebff6a08c94ad36ac321786018f8c937243eb"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ea1c01701dccdf495e08e8c78ff8d82879cbff3a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"06c182d2_4e1a0a01","updated":"2026-07-04 09:33:37.000000000","message":"recheck\nseems CI did not ran after PS2","commit_id":"eecda939709e8a97f5a564c58c14747f38cb9ff5"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"4d02f76a2152ae025343eb37ca6b66431efb2808","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2bbdef11_08258fc1","updated":"2026-07-05 14:01:52.000000000","message":"as expected\n\n```\n\nTraceback (most recent call last):\n  File \"/opt/stack/tempest/tempest/api/compute/servers/test_server_actions.py\", line 1028, in test_rebuild_bfv_server_with_snapshot\n    waiters.wait_for_volume_resource_status(\n    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^\n        self.volumes_client, restored_volume_id, \u0027available\u0027)\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/tempest/common/waiters.py\", line 379, in wait_for_volume_resource_status\n    raise exceptions.VolumeResourceBuildErrorException(\n        resource_name\u003dresource_name, resource_id\u003dresource_id)\ntempest.exceptions.VolumeResourceBuildErrorException: volume 0dd7f54d-a675-4090-9147-d2c95bb23f2b failed to build and is in ERROR status\n```\n\nin `nova-ceph-multistore` job\nceph backend - https://zuul.opendev.org/t/openstack/build/96ab5a9e1ef84e7b8282fdaf83d250d3/log/controller/logs/etc/cinder/cinder_conf.txt#29\n\ntempest.conf - https://zuul.opendev.org/t/openstack/build/96ab5a9e1ef84e7b8282fdaf83d250d3/log/controller/logs/tempest_conf.txt#38-41","commit_id":"9536bef2b452ea089f51e4bad0a41489a3759149"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"d04f6cba95f39dc80f817837e33e924fd788e15f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a71c63a1_22fa301e","updated":"2026-07-13 09:25:59.000000000","message":"The test LGTM","commit_id":"cba61522e9bca747b48d6ac1e79281117327d405"},{"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":"c662b51d9dbd1728e78967024c2f4711c82e0b84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"226eceba_5b36caf2","updated":"2026-07-24 12:48:08.000000000","message":"LGTM and gates are passing","commit_id":"564d1a686a3b74147f6aa175767d669cbe2698d8"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"948e3d461a2025deb5b1d018717123f2c8fbe5a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"b5620091_3f83a1dd","updated":"2026-08-06 12:52:02.000000000","message":"Thanks Amit\n\nAs I mentioned in the other patch, there is already a similar test in the tempest project, but it doesn\u0027t cover the rebuild server scenario yet:\n\nhttps://github.com/openstack/tempest/blob/master/tempest/scenario/test_volume_boot_pattern.py#L62\n\nMaybe we should consider adding the rebuild server coverage to the existing tempest test instead. That would avoid duplicating scenarios and help reduce the maintenance burden of scenario testing.\n\nLet\u0027s see what Ghanshyam thinks","commit_id":"564d1a686a3b74147f6aa175767d669cbe2698d8"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ee3c04d08861e19a3188720e320e97369a6e1b5a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d4c74306_15afd144","updated":"2026-07-28 07:51:20.000000000","message":"recheck\ntempest-slow-py3 failed again - but unrelated","commit_id":"564d1a686a3b74147f6aa175767d669cbe2698d8"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"3b64e14dfa66d370362e6bdd564af5dc25a9dd02","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c9080f70_bbeb31b1","updated":"2026-07-28 04:46:48.000000000","message":"recheck \nfailed test is unrealted\n`tempest.scenario.test_instances_with_cinder_volumes.TestInstancesWithCinderVolumes.test_instances_with_cinder_volumes_on_all_compute_nodes`\n\ntempest-slow-py3 one failed more then few times yesterday - but not really blocked, I think !!!\n\nhttps://zuul.opendev.org/t/openstack/builds?job_name\u003dtempest-slow-py3\u0026pipeline\u003dcheck\u0026skip\u003d0","commit_id":"564d1a686a3b74147f6aa175767d669cbe2698d8"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"7c61c07a68e54477dabea36f7e613f755e612af1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"75253557_b2dc143f","updated":"2026-07-27 06:15:12.000000000","message":"recheck \nthere is an update on fix","commit_id":"564d1a686a3b74147f6aa175767d669cbe2698d8"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"5de9f1175da3647100eddd790230a527a9cffdd0","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"cd361582_b10af04a","in_reply_to":"81baf4c3_1136636a","updated":"2026-08-07 14:45:49.000000000","message":"Right, that makes sense, particularly given that it\u0027s a slow test.\nI\u0027m fine with this change. Thanks, Amit!","commit_id":"564d1a686a3b74147f6aa175767d669cbe2698d8"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"0d084550c9b3e07c024fc33126c547f7c79c1b1b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"81baf4c3_1136636a","in_reply_to":"b5620091_3f83a1dd","updated":"2026-08-07 05:44:21.000000000","message":"hey Liron, thanks for the look.\nyeah its a good point of consolidation for similar tests, we could add a TestVolumeBootPatternV293 class there to support mv too.\n\nBut as I see test_volume_boot_pattern is a scenario test (SSH, networking, writting file in VM and hence tagged slow) and this one is targated bug fix verification - it just checks the snapshots survive a rebuild at API level\n\nServerActionsV293TestJSON already has test_rebuild_volume_backed_server so it seems  like a natural fit.","commit_id":"564d1a686a3b74147f6aa175767d669cbe2698d8"},{"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":"3d5b2935dec6ab2bc22c2f1bef37c4ede29318a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"9fcc8391_9ed84e82","updated":"2026-08-10 13:16:07.000000000","message":"LGTM","commit_id":"a8ef225335b05d0297179105ecf19c04db761f1f"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"3fbd427f8f6ba6a9acfe95e3f9591dcace835d2d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"c453e40c_5dec5f09","updated":"2026-08-20 10:57:01.000000000","message":"LGTM","commit_id":"a8ef225335b05d0297179105ecf19c04db761f1f"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"b7a6c7557ee74c0fcf74b80830c6e0a1139329ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"e6d4a17b_eff935cc","updated":"2026-09-14 07:49:48.000000000","message":"fix is merged in cinder, \nI only rebased it to resolve conflicts , CI should still pass\n\nreviewers this is good to land now.","commit_id":"7422a5f6a1e23e59d00dfc8f451c7cdba583413f"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"9aa4a740cd26f763259297a4383559fb1f37b302","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"1cd778d8_fd0f4b65","updated":"2026-09-14 11:13:48.000000000","message":"recheck\n\nunrelated test\n\n`test_volume_migrate_attached_data_volume[compute,id-1b8661cb-db93-4110-860b-201295027b78,slow,volume]`\n\nfailed with \n\n```\n  File \"/opt/stack/tempest/tempest/lib/common/utils/linux/remote_client.py\", line 115, in exec_command\n    return self.ssh_client.exec_command(cmd)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/tempest/lib/common/ssh.py\", line 237, in exec_command\n    raise exceptions.SSHExecCommandFailed(\ntempest.lib.exceptions.SSHExecCommandFailed: Command \u0027set -eu -o pipefail; PATH\u003d$PATH:/sbin:/usr/sbin; sudo mount /dev/vdb /mnt/vdb\u0027, exit status: 255, stderr:\nmount: mounting /dev/vdb on /mnt/vdb failed: Device or resource busy\n```","commit_id":"e45ebff6a08c94ad36ac321786018f8c937243eb"}],"tempest/api/compute/servers/test_server_actions.py":[{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"61e032a91c358c9e29eac14638f6dfc6079f9989","unresolved":true,"context_lines":[{"line_number":1023,"context_line":"        # Verify snapshot still exists after rebuild"},{"line_number":1024,"context_line":"        snap_after \u003d self.snapshots_client.show_snapshot("},{"line_number":1025,"context_line":"            snapshot_id)[\u0027snapshot\u0027]"},{"line_number":1026,"context_line":"        self.assertEqual(\u0027available\u0027, snap_after[\u0027status\u0027])"},{"line_number":1027,"context_line":"        self.assertEqual(volume_id, snap_after[\u0027volume_id\u0027])"},{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"        # Verify snapshot is usable by creating volume from it"}],"source_content_type":"text/x-python","patch_set":1,"id":"e3125938_14349369","line":1026,"updated":"2026-07-03 10:53:13.000000000","message":"so this should fail right now, but with only RBD.\nthen with depends-on it should pass","commit_id":"4117103533257a9ee7cf328db10203d1a56e248d"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"a2f953a0111312bfea0077f598874983121bc4e9","unresolved":false,"context_lines":[{"line_number":1023,"context_line":"        # Verify snapshot still exists after rebuild"},{"line_number":1024,"context_line":"        snap_after \u003d self.snapshots_client.show_snapshot("},{"line_number":1025,"context_line":"            snapshot_id)[\u0027snapshot\u0027]"},{"line_number":1026,"context_line":"        self.assertEqual(\u0027available\u0027, snap_after[\u0027status\u0027])"},{"line_number":1027,"context_line":"        self.assertEqual(volume_id, snap_after[\u0027volume_id\u0027])"},{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"        # Verify snapshot is usable by creating volume from it"}],"source_content_type":"text/x-python","patch_set":1,"id":"aca59ab1_be68ef2a","line":1026,"in_reply_to":"49d03cca_cb72ace3","updated":"2026-07-13 13:40:42.000000000","message":"passed with  depends-on\nhttps://c4eada0370586e541fb2-090e0b161d681e3915fde898eedb8514.ssl.cf2.rackcdn.com/openstack/fa3fa5118c4549f2a8290ede076388cb/testr_results.html","commit_id":"4117103533257a9ee7cf328db10203d1a56e248d"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"50fe61d58ab47928d6c82caf69cf65a5ee2066e1","unresolved":true,"context_lines":[{"line_number":1023,"context_line":"        # Verify snapshot still exists after rebuild"},{"line_number":1024,"context_line":"        snap_after \u003d self.snapshots_client.show_snapshot("},{"line_number":1025,"context_line":"            snapshot_id)[\u0027snapshot\u0027]"},{"line_number":1026,"context_line":"        self.assertEqual(\u0027available\u0027, snap_after[\u0027status\u0027])"},{"line_number":1027,"context_line":"        self.assertEqual(volume_id, snap_after[\u0027volume_id\u0027])"},{"line_number":1028,"context_line":""},{"line_number":1029,"context_line":"        # Verify snapshot is usable by creating volume from it"}],"source_content_type":"text/x-python","patch_set":1,"id":"49d03cca_cb72ace3","line":1026,"in_reply_to":"e3125938_14349369","updated":"2026-07-13 06:39:59.000000000","message":"`nova-ceph-multistore` job before depends-on\nhttps://70a366f81cf63ddc4b03-580e84ccb0b17d3ff354ab4c1b56697e.ssl.cf1.rackcdn.com/openstack/86f8e2c42a7b4fb7a9a41810cef2d525/testr_results.html","commit_id":"4117103533257a9ee7cf328db10203d1a56e248d"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"bdb2a99e0e09fd2e28e872c92e3755d6fead763b","unresolved":true,"context_lines":[{"line_number":984,"context_line":""},{"line_number":985,"context_line":"    @decorators.idempotent_id(\u00277f8a9b0c-1d2e-3f4a-5b6c-7d8e9f0a1b2c\u0027)"},{"line_number":986,"context_line":"    def test_rebuild_bfv_server_with_snapshot(self):"},{"line_number":987,"context_line":"        \"\"\"Test rebuilding a BFV server with reimage_boot_volume flag\"\"\""},{"line_number":988,"context_line":"        server \u003d self.reader_servers_client.show_server("},{"line_number":989,"context_line":"            self.server_id)[\u0027server\u0027]"},{"line_number":990,"context_line":"        volume_id \u003d server[\u0027os-extended-volumes:volumes_attached\u0027][0][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"4717016c_9e2463a5","line":987,"updated":"2026-07-08 09:59:32.000000000","message":"The docstring here might be little bit misleading as there is no reimage_boot_volume flag in the below code","commit_id":"fe48665be326882eabfb0705a9be139ed23ba25c"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"39a754a837ec46bc322c0dde9d090063650d5c47","unresolved":false,"context_lines":[{"line_number":984,"context_line":""},{"line_number":985,"context_line":"    @decorators.idempotent_id(\u00277f8a9b0c-1d2e-3f4a-5b6c-7d8e9f0a1b2c\u0027)"},{"line_number":986,"context_line":"    def test_rebuild_bfv_server_with_snapshot(self):"},{"line_number":987,"context_line":"        \"\"\"Test rebuilding a BFV server with reimage_boot_volume flag\"\"\""},{"line_number":988,"context_line":"        server \u003d self.reader_servers_client.show_server("},{"line_number":989,"context_line":"            self.server_id)[\u0027server\u0027]"},{"line_number":990,"context_line":"        volume_id \u003d server[\u0027os-extended-volumes:volumes_attached\u0027][0][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"4d8f1fb0_1f60bf1e","line":987,"in_reply_to":"24c80bdb_857e1984","updated":"2026-07-13 01:18:48.000000000","message":"Done","commit_id":"fe48665be326882eabfb0705a9be139ed23ba25c"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"eaf1c97678bcad14a14e6bb8061f99866d4b6f25","unresolved":true,"context_lines":[{"line_number":984,"context_line":""},{"line_number":985,"context_line":"    @decorators.idempotent_id(\u00277f8a9b0c-1d2e-3f4a-5b6c-7d8e9f0a1b2c\u0027)"},{"line_number":986,"context_line":"    def test_rebuild_bfv_server_with_snapshot(self):"},{"line_number":987,"context_line":"        \"\"\"Test rebuilding a BFV server with reimage_boot_volume flag\"\"\""},{"line_number":988,"context_line":"        server \u003d self.reader_servers_client.show_server("},{"line_number":989,"context_line":"            self.server_id)[\u0027server\u0027]"},{"line_number":990,"context_line":"        volume_id \u003d server[\u0027os-extended-volumes:volumes_attached\u0027][0][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"24c80bdb_857e1984","line":987,"in_reply_to":"4717016c_9e2463a5","updated":"2026-07-08 10:04:01.000000000","message":"yeah that\u0027s true, the flag is part of client only and not API.\nI realized this later on CI test. will update tis in next PS.","commit_id":"fe48665be326882eabfb0705a9be139ed23ba25c"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"95b162275d5be060155af6a470d8b4671b7e880c","unresolved":true,"context_lines":[{"line_number":1026,"context_line":"            snapshot_id\u003dsnapshot_id)[\u0027volume\u0027][\u0027id\u0027]"},{"line_number":1027,"context_line":"        self.addCleanup(self.delete_volume, restored_volume_id)"},{"line_number":1028,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":1029,"context_line":"            self.volumes_client, restored_volume_id, \u0027available\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"40dce723_bc21768d","line":1029,"updated":"2026-07-08 11:27:19.000000000","message":"After reviewing the entire test, I found that this test case is missing explicit\nassertions unlike other tests in the file, and instead relies on implicit checks\n\nProblem: The test could pass even if:\n- The snapshot was deleted during rebuild (the core bug being tested)\n- The boot volume was detached/replaced\n- Wrong snapshot/volume IDs were used\n\nRecommended Additions:\n\n#1. Verify snapshot still exists after rebuild\nsnapshot \u003d self.snapshots_client.show_snapshot(snapshot_id)[\u0027snapshot\u0027]\nself.assertEqual(\u0027available\u0027, snapshot[\u0027status\u0027])\n\n#2. Verify that volume ID remains same before and after rebuild\nrebuilt_server \u003d self.servers_client.show_server(server[\u0027id\u0027])[\u0027server\u0027]\nvolume_after_rebuild \u003d rebuilt_server[\u0027os-extended-volumes:volumes_attached\u0027][0][\u0027id\u0027]\nself.assertEqual(volume_id, volume_after_rebuild)","commit_id":"fe48665be326882eabfb0705a9be139ed23ba25c"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"39a754a837ec46bc322c0dde9d090063650d5c47","unresolved":true,"context_lines":[{"line_number":1026,"context_line":"            snapshot_id\u003dsnapshot_id)[\u0027volume\u0027][\u0027id\u0027]"},{"line_number":1027,"context_line":"        self.addCleanup(self.delete_volume, restored_volume_id)"},{"line_number":1028,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":1029,"context_line":"            self.volumes_client, restored_volume_id, \u0027available\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fef4429_93484169","line":1029,"in_reply_to":"40dce723_bc21768d","updated":"2026-07-13 01:18:48.000000000","message":"\u003e boot volume was detached/replaced\n\nnice catch, added assertion for vol id. \n\n\u003e Problem: The test could pass even if:\n- The snapshot was deleted during rebuild (the core bug being tested)\n\nfor snapshot check, I don\u0027t think snapshot show really help much, as we are able to create volume from snapshot after rebuild. if snapshot was deleted during rebuild , create_vol will fail with 404, so the test does catch that.","commit_id":"fe48665be326882eabfb0705a9be139ed23ba25c"},{"author":{"_account_id":38173,"name":"Tanvi Nautiyal","email":"tnautiya@redhat.com","username":"tnautiyal"},"change_message_id":"d04f6cba95f39dc80f817837e33e924fd788e15f","unresolved":false,"context_lines":[{"line_number":1026,"context_line":"            snapshot_id\u003dsnapshot_id)[\u0027volume\u0027][\u0027id\u0027]"},{"line_number":1027,"context_line":"        self.addCleanup(self.delete_volume, restored_volume_id)"},{"line_number":1028,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":1029,"context_line":"            self.volumes_client, restored_volume_id, \u0027available\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5e3ff454_839a83ba","line":1029,"in_reply_to":"9fef4429_93484169","updated":"2026-07-13 09:25:59.000000000","message":"Acknowledged","commit_id":"fe48665be326882eabfb0705a9be139ed23ba25c"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"c49742596e34ab1728575305ff72c8ba021a25b9","unresolved":true,"context_lines":[{"line_number":995,"context_line":"                                       server[\u0027id\u0027], \u0027SHUTOFF\u0027)"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"        # Create volume snapshot"},{"line_number":998,"context_line":"        snapshot_id \u003d self.snapshots_client.create_snapshot("},{"line_number":999,"context_line":"            volume_id\u003dvolume_id,"},{"line_number":1000,"context_line":"            force\u003dTrue)[\u0027snapshot\u0027][\u0027id\u0027]"},{"line_number":1001,"context_line":"        self.addCleanup(self.snapshots_client.wait_for_resource_deletion,"},{"line_number":1002,"context_line":"                        snapshot_id)"},{"line_number":1003,"context_line":"        self.addCleanup(self.snapshots_client.delete_snapshot, snapshot_id)"},{"line_number":1004,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":1005,"context_line":"            self.snapshots_client, snapshot_id, \u0027available\u0027)"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"        # Create volume from snapshot to verify it works before rebuild"},{"line_number":1008,"context_line":"        test_volume_id \u003d self.volumes_client.create_volume("}],"source_content_type":"text/x-python","patch_set":7,"id":"117acee0_0df32c11","line":1005,"range":{"start_line":998,"start_character":0,"end_line":1005,"end_character":60},"updated":"2026-07-13 10:11:24.000000000","message":"you can use helper method `create_volume_snapshot`\nhttps://github.com/openstack/tempest/blob/master/tempest/api/compute/base.py#L661","commit_id":"cba61522e9bca747b48d6ac1e79281117327d405"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"a2f953a0111312bfea0077f598874983121bc4e9","unresolved":true,"context_lines":[{"line_number":995,"context_line":"                                       server[\u0027id\u0027], \u0027SHUTOFF\u0027)"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"        # Create volume snapshot"},{"line_number":998,"context_line":"        snapshot_id \u003d self.snapshots_client.create_snapshot("},{"line_number":999,"context_line":"            volume_id\u003dvolume_id,"},{"line_number":1000,"context_line":"            force\u003dTrue)[\u0027snapshot\u0027][\u0027id\u0027]"},{"line_number":1001,"context_line":"        self.addCleanup(self.snapshots_client.wait_for_resource_deletion,"},{"line_number":1002,"context_line":"                        snapshot_id)"},{"line_number":1003,"context_line":"        self.addCleanup(self.snapshots_client.delete_snapshot, snapshot_id)"},{"line_number":1004,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":1005,"context_line":"            self.snapshots_client, snapshot_id, \u0027available\u0027)"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"        # Create volume from snapshot to verify it works before rebuild"},{"line_number":1008,"context_line":"        test_volume_id \u003d self.volumes_client.create_volume("}],"source_content_type":"text/x-python","patch_set":7,"id":"2cb7386b_298ba422","line":1005,"range":{"start_line":998,"start_character":0,"end_line":1005,"end_character":60},"in_reply_to":"117acee0_0df32c11","updated":"2026-07-13 13:40:42.000000000","message":"done, so now switched to `create_volume_snapshot` helper, thanks for noticing.\n\ninitially I had used direct API calls because I thought rebuild needed a raw reimage_boot_volume parameter, but that\u0027s just a CLI flag and this is automatically handled in mv 2.93.\nso I kept the rest of the test consistent with direct calls, the helpers are fine fot the rest too.","commit_id":"cba61522e9bca747b48d6ac1e79281117327d405"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"97ab36fb8baa1183de26ac36bd0a75a22a2f77b3","unresolved":false,"context_lines":[{"line_number":995,"context_line":"                                       server[\u0027id\u0027], \u0027SHUTOFF\u0027)"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"        # Create volume snapshot"},{"line_number":998,"context_line":"        snapshot_id \u003d self.snapshots_client.create_snapshot("},{"line_number":999,"context_line":"            volume_id\u003dvolume_id,"},{"line_number":1000,"context_line":"            force\u003dTrue)[\u0027snapshot\u0027][\u0027id\u0027]"},{"line_number":1001,"context_line":"        self.addCleanup(self.snapshots_client.wait_for_resource_deletion,"},{"line_number":1002,"context_line":"                        snapshot_id)"},{"line_number":1003,"context_line":"        self.addCleanup(self.snapshots_client.delete_snapshot, snapshot_id)"},{"line_number":1004,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":1005,"context_line":"            self.snapshots_client, snapshot_id, \u0027available\u0027)"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"        # Create volume from snapshot to verify it works before rebuild"},{"line_number":1008,"context_line":"        test_volume_id \u003d self.volumes_client.create_volume("}],"source_content_type":"text/x-python","patch_set":7,"id":"b0305edc_720fdff5","line":1005,"range":{"start_line":998,"start_character":0,"end_line":1005,"end_character":60},"in_reply_to":"2cb7386b_298ba422","updated":"2026-07-23 09:50:29.000000000","message":"Done","commit_id":"cba61522e9bca747b48d6ac1e79281117327d405"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"c49742596e34ab1728575305ff72c8ba021a25b9","unresolved":true,"context_lines":[{"line_number":1005,"context_line":"            self.snapshots_client, snapshot_id, \u0027available\u0027)"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"        # Create volume from snapshot to verify it works before rebuild"},{"line_number":1008,"context_line":"        test_volume_id \u003d self.volumes_client.create_volume("},{"line_number":1009,"context_line":"            snapshot_id\u003dsnapshot_id)[\u0027volume\u0027][\u0027id\u0027]"},{"line_number":1010,"context_line":"        self.addCleanup(self.delete_volume, test_volume_id)"},{"line_number":1011,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":1012,"context_line":"            self.volumes_client, test_volume_id, \u0027available\u0027)"},{"line_number":1013,"context_line":""},{"line_number":1014,"context_line":"        # Start server before rebuild"},{"line_number":1015,"context_line":"        self.servers_client.start_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"77ff3b94_5678bdfd","line":1012,"range":{"start_line":1008,"start_character":0,"end_line":1012,"end_character":61},"updated":"2026-07-13 10:11:24.000000000","message":"same here, you can use `create_volume`:\n\nhttps://github.com/openstack/tempest/blob/master/tempest/api/compute/base.py#L516\n\nthis is a classmethod, so if the volume needs to be deleted at the end of the test, you only need to add `self.addCleanup`","commit_id":"cba61522e9bca747b48d6ac1e79281117327d405"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"97ab36fb8baa1183de26ac36bd0a75a22a2f77b3","unresolved":false,"context_lines":[{"line_number":1005,"context_line":"            self.snapshots_client, snapshot_id, \u0027available\u0027)"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"        # Create volume from snapshot to verify it works before rebuild"},{"line_number":1008,"context_line":"        test_volume_id \u003d self.volumes_client.create_volume("},{"line_number":1009,"context_line":"            snapshot_id\u003dsnapshot_id)[\u0027volume\u0027][\u0027id\u0027]"},{"line_number":1010,"context_line":"        self.addCleanup(self.delete_volume, test_volume_id)"},{"line_number":1011,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":1012,"context_line":"            self.volumes_client, test_volume_id, \u0027available\u0027)"},{"line_number":1013,"context_line":""},{"line_number":1014,"context_line":"        # Start server before rebuild"},{"line_number":1015,"context_line":"        self.servers_client.start_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"4aa381ac_6958f14e","line":1012,"range":{"start_line":1008,"start_character":0,"end_line":1012,"end_character":61},"in_reply_to":"77ff3b94_5678bdfd","updated":"2026-07-23 09:50:29.000000000","message":"Done","commit_id":"cba61522e9bca747b48d6ac1e79281117327d405"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"c49742596e34ab1728575305ff72c8ba021a25b9","unresolved":true,"context_lines":[{"line_number":1031,"context_line":"        self.assertEqual(volume_id, attached_vol_id)"},{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":"        # Verify snapshot still exists and is usable after rebuild"},{"line_number":1034,"context_line":"        restored_volume_id \u003d self.volumes_client.create_volume("},{"line_number":1035,"context_line":"            snapshot_id\u003dsnapshot_id)[\u0027volume\u0027][\u0027id\u0027]"},{"line_number":1036,"context_line":"        self.addCleanup(self.delete_volume, restored_volume_id)"},{"line_number":1037,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":1038,"context_line":"            self.volumes_client, restored_volume_id, \u0027available\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"0e2ffd54_bff14afb","line":1038,"range":{"start_line":1034,"start_character":0,"end_line":1038,"end_character":65},"updated":"2026-07-13 10:11:24.000000000","message":"Same","commit_id":"cba61522e9bca747b48d6ac1e79281117327d405"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"97ab36fb8baa1183de26ac36bd0a75a22a2f77b3","unresolved":false,"context_lines":[{"line_number":1031,"context_line":"        self.assertEqual(volume_id, attached_vol_id)"},{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":"        # Verify snapshot still exists and is usable after rebuild"},{"line_number":1034,"context_line":"        restored_volume_id \u003d self.volumes_client.create_volume("},{"line_number":1035,"context_line":"            snapshot_id\u003dsnapshot_id)[\u0027volume\u0027][\u0027id\u0027]"},{"line_number":1036,"context_line":"        self.addCleanup(self.delete_volume, restored_volume_id)"},{"line_number":1037,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":1038,"context_line":"            self.volumes_client, restored_volume_id, \u0027available\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba0e5ec2_65dd3bc2","line":1038,"range":{"start_line":1034,"start_character":0,"end_line":1038,"end_character":65},"in_reply_to":"0e2ffd54_bff14afb","updated":"2026-07-23 09:50:29.000000000","message":"Done","commit_id":"cba61522e9bca747b48d6ac1e79281117327d405"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"c78c8c02b81a1eab19b3cf0a929d4e170c62efdc","unresolved":true,"context_lines":[{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"        # Create volume from snapshot to verify it works before rebuild"},{"line_number":1001,"context_line":"        test_volume \u003d self.create_volume(snapshot_id\u003dsnapshot[\u0027id\u0027])"},{"line_number":1002,"context_line":"        self.addCleanup(self.delete_volume, test_volume[\u0027id\u0027])"},{"line_number":1003,"context_line":""},{"line_number":1004,"context_line":"        # Start server before rebuild"},{"line_number":1005,"context_line":"        self.servers_client.start_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"e5f280e9_60b7e2b5","line":1002,"range":{"start_line":1002,"start_character":8,"end_line":1002,"end_character":62},"updated":"2026-08-04 09:25:23.000000000","message":"Is this really needed? The `create_volume` method already handles this at the class level.","commit_id":"564d1a686a3b74147f6aa175767d669cbe2698d8"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"0d084550c9b3e07c024fc33126c547f7c79c1b1b","unresolved":true,"context_lines":[{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"        # Create volume from snapshot to verify it works before rebuild"},{"line_number":1001,"context_line":"        test_volume \u003d self.create_volume(snapshot_id\u003dsnapshot[\u0027id\u0027])"},{"line_number":1002,"context_line":"        self.addCleanup(self.delete_volume, test_volume[\u0027id\u0027])"},{"line_number":1003,"context_line":""},{"line_number":1004,"context_line":"        # Start server before rebuild"},{"line_number":1005,"context_line":"        self.servers_client.start_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"921eb539_7ef0d5b1","line":1002,"range":{"start_line":1002,"start_character":8,"end_line":1002,"end_character":62},"in_reply_to":"e5f280e9_60b7e2b5","updated":"2026-08-07 05:44:21.000000000","message":"thanks done.","commit_id":"564d1a686a3b74147f6aa175767d669cbe2698d8"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"c78c8c02b81a1eab19b3cf0a929d4e170c62efdc","unresolved":true,"context_lines":[{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":"        # Verify snapshot still exists and is usable after rebuild"},{"line_number":1024,"context_line":"        restored_volume \u003d self.create_volume(snapshot_id\u003dsnapshot[\u0027id\u0027])"},{"line_number":1025,"context_line":"        self.addCleanup(self.delete_volume, restored_volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"715dbdbf_ac613da5","line":1025,"range":{"start_line":1025,"start_character":8,"end_line":1025,"end_character":66},"updated":"2026-08-04 09:25:23.000000000","message":"Same","commit_id":"564d1a686a3b74147f6aa175767d669cbe2698d8"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"0d084550c9b3e07c024fc33126c547f7c79c1b1b","unresolved":false,"context_lines":[{"line_number":1022,"context_line":""},{"line_number":1023,"context_line":"        # Verify snapshot still exists and is usable after rebuild"},{"line_number":1024,"context_line":"        restored_volume \u003d self.create_volume(snapshot_id\u003dsnapshot[\u0027id\u0027])"},{"line_number":1025,"context_line":"        self.addCleanup(self.delete_volume, restored_volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"6dadb75b_e73010e3","line":1025,"range":{"start_line":1025,"start_character":8,"end_line":1025,"end_character":66},"in_reply_to":"715dbdbf_ac613da5","updated":"2026-08-07 05:44:21.000000000","message":"Done","commit_id":"564d1a686a3b74147f6aa175767d669cbe2698d8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4d7359408daf797f7ea81b44885e60eea117ff48","unresolved":true,"context_lines":[{"line_number":991,"context_line":"            self.server_id)[\u0027server\u0027]"},{"line_number":992,"context_line":"        volume_id \u003d server[\u0027os-extended-volumes:volumes_attached\u0027][0][\u0027id\u0027]"},{"line_number":993,"context_line":""},{"line_number":994,"context_line":"        # Stop server before creating snapshot"},{"line_number":995,"context_line":"        self.servers_client.stop_server(server[\u0027id\u0027])"},{"line_number":996,"context_line":"        waiters.wait_for_server_status(self.servers_client,"},{"line_number":997,"context_line":"                                       server[\u0027id\u0027], \u0027SHUTOFF\u0027)"},{"line_number":998,"context_line":""},{"line_number":999,"context_line":"        # Create volume snapshot"},{"line_number":1000,"context_line":"        snapshot \u003d self.create_volume_snapshot(volume_id, force\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":11,"id":"a15872eb_3c18bffd","line":997,"range":{"start_line":994,"start_character":0,"end_line":997,"end_character":63},"updated":"2026-09-25 02:43:33.000000000","message":"what is the requirement of stopping the sever here? i think we can directly rebuild the server in active state?","commit_id":"e45ebff6a08c94ad36ac321786018f8c937243eb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4d7359408daf797f7ea81b44885e60eea117ff48","unresolved":true,"context_lines":[{"line_number":999,"context_line":"        # Create volume snapshot"},{"line_number":1000,"context_line":"        snapshot \u003d self.create_volume_snapshot(volume_id, force\u003dTrue)"},{"line_number":1001,"context_line":""},{"line_number":1002,"context_line":"        # Create volume from snapshot to verify it works before rebuild"},{"line_number":1003,"context_line":"        self.create_volume(snapshot_id\u003dsnapshot[\u0027id\u0027])"},{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"        # Start server before rebuild"}],"source_content_type":"text/x-python","patch_set":11,"id":"b36c69b8_df3e239b","line":1002,"range":{"start_line":1002,"start_character":8,"end_line":1002,"end_character":71},"updated":"2026-09-25 02:43:33.000000000","message":"add a comment that cinder had a bug that snapshot exist in DB but not in backend so checking snapshot with get API will not be enough to know if snapshot really exist or not.","commit_id":"e45ebff6a08c94ad36ac321786018f8c937243eb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4d7359408daf797f7ea81b44885e60eea117ff48","unresolved":true,"context_lines":[{"line_number":1002,"context_line":"        # Create volume from snapshot to verify it works before rebuild"},{"line_number":1003,"context_line":"        self.create_volume(snapshot_id\u003dsnapshot[\u0027id\u0027])"},{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"        # Start server before rebuild"},{"line_number":1006,"context_line":"        self.servers_client.start_server(server[\u0027id\u0027])"},{"line_number":1007,"context_line":"        waiters.wait_for_server_status(self.servers_client,"},{"line_number":1008,"context_line":"                                       server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":1009,"context_line":""},{"line_number":1010,"context_line":"        # Rebuild server"},{"line_number":1011,"context_line":"        self.servers_client.rebuild_server("}],"source_content_type":"text/x-python","patch_set":11,"id":"913634e4_142451ac","line":1008,"range":{"start_line":1005,"start_character":0,"end_line":1008,"end_character":62},"updated":"2026-09-25 02:43:33.000000000","message":"we should not need this, please check comment above","commit_id":"e45ebff6a08c94ad36ac321786018f8c937243eb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4d7359408daf797f7ea81b44885e60eea117ff48","unresolved":true,"context_lines":[{"line_number":1010,"context_line":"        # Rebuild server"},{"line_number":1011,"context_line":"        self.servers_client.rebuild_server("},{"line_number":1012,"context_line":"            server[\u0027id\u0027],"},{"line_number":1013,"context_line":"            self.image_ref)"},{"line_number":1014,"context_line":"        waiters.wait_for_server_status(self.servers_client,"},{"line_number":1015,"context_line":"                                       server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":1016,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"1fc4742d_8c9eab9a","line":1013,"range":{"start_line":1013,"start_character":11,"end_line":1013,"end_character":26},"updated":"2026-09-25 02:43:33.000000000","message":"server_id is created with this image only, let\u0027s rebuild with image_ref_alt.","commit_id":"e45ebff6a08c94ad36ac321786018f8c937243eb"}]}
