)]}'
{"id":"openstack%2Fnova~957764","triplet_id":"openstack%2Fnova~stable%2F2024.1~I439338bd2f27ccd65a436d18c8cbc9c3127ee612","project":"openstack/nova","branch":"stable/2024.1","topic":"bug/2112187","attention_set":{},"removed_from_attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2025-08-19 21:37:46.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I439338bd2f27ccd65a436d18c8cbc9c3127ee612","subject":"restrict swap volume to cinder","status":"MERGED","created":"2025-08-18 16:07:21.000000000","updated":"2025-08-19 21:38:50.000000000","submitted":"2025-08-19 21:37:46.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":4,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"957764-bug/2112187","meta_rev_id":"ecda95649e6b85e3cef3d6d9fd35772f5abd1724","_number":957764,"virtual_id_number":957764,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":0,"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-08-19 21:37:46.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"all":[{"value":2,"date":"2025-08-19 10:42:35.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":2,"date":"2025-08-18 16:22:04.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":1,"date":"2025-08-19 01:02:18.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"all":[{"value":0,"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":1,"date":"2025-08-19 19:35:59.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":0,"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-08-18 16:22:04.000000000","updated_by":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"reviewer":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"state":"REVIEWER"},{"updated":"2025-08-18 17:18:43.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2025-08-18 17:19:00.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2025-08-19 01:02:18.000000000","updated_by":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"reviewer":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"state":"REVIEWER"},{"updated":"2025-08-19 02:44:13.000000000","updated_by":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"reviewer":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"state":"CC"},{"updated":"2025-08-19 10:42:35.000000000","updated_by":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"reviewer":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"state":"REVIEWER"}],"messages":[{"id":"447a403092f6935e5ca53c23c28a3727d7963222","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-08-18 16:07:21.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"e6e5de24b382fb053448ad15030bd21c2a9a9b2d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-08-18 16:15:27.000000000","message":"Patch Set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"4a9d9b3e9fd83bde8422448d78f36f7f976af8e2","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2025-08-18 16:22:04.000000000","message":"Patch Set 2: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"69c6e38320bbd94e2ad55af1a288926aaf433540","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-18 17:18:43.000000000","message":"Patch Set 2:\n\nThis change depends on a change that failed to merge.\n\nChange https://review.opendev.org/957753 is needed.","accounts_in_message":[],"_revision_number":2},{"id":"b217cd6b342d58b6cecde898d997ef35e9f669c4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-18 17:19:00.000000000","message":"Patch Set 2: Verified-1\n\nThis change depends on a change that failed to merge.\n\nChange https://review.opendev.org/957753 is needed.","accounts_in_message":[],"_revision_number":2},{"id":"6c5f07af26411ab36d5c402e003d4a4105eb6a7a","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2025-08-19 01:02:18.000000000","message":"Patch Set 2: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"a32bfc5732da98007b9be387df5467dc7273d887","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-19 01:37:28.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/430d0d55f5ca4f81b98dd407b2908add\n\n- openstack-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/654aa86405d44822aa1c8706bbc0b19b : SUCCESS in 33m 05s (non-voting)\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/57f33f0828634c81ba9a8d8f4b3d5a5f : SUCCESS in 25m 43s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"98d64974111c0e96783683b75c17d07df9a924b6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-19 02:38:42.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2461342bef92453fbad8aee48137adb4\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/0b1568fb9ffd440bae26658b0ca3c868 : SUCCESS in 24m 41s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/50ce9ce2445b4367adf7b7ae292ca4df : SUCCESS in 1h 26m 03s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/ae0328bd12984f06952960e44f09f1a2 : SUCCESS in 41m 22s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7d28416b85514389a798a88f8bcd9d28 : SUCCESS in 17m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4117d4a05d394437981d5d45b8f763e5 : SUCCESS in 5m 48s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/2d35fbf272334537b1820bd702337e68 : SUCCESS in 13m 22s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2f992d0a0a414cb08ca81cdfa2446785 : SUCCESS in 9m 25s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2c7e9a8fa96d4ec890e8cec5e77756ae : SUCCESS in 9m 23s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e6887e9580ef4f459d5a25789012db68 : SUCCESS in 29m 18s\n- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa https://zuul.opendev.org/t/openstack/build/bae8c558d0464932b99b34140e548c93 : SUCCESS in 42m 40s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/2b63f43a5aef45a7972e0805cbd01dc9 : SUCCESS in 51m 42s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/c47b3af83afe4a9e82d542516e5042d4 : FAILURE in 6m 21s (non-voting)\n- nova-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/fd6c06e89c074549bde4427a39e51ce9 : SUCCESS in 25m 37s\n- nova-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/be547b33993a49f7a43d91bea58f8f9b : SUCCESS in 25m 38s\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/18f34f199d014ddb8ac505dac0b66c41 : SUCCESS in 23m 06s\n- tempest-integrated-compute-enforce-scope-new-defaults https://zuul.opendev.org/t/openstack/build/c5b137fd9ae04c97b90a130e75757365 : SUCCESS in 1h 27m 13s\n- tempest-integrated-compute-rbac-old-defaults https://zuul.opendev.org/t/openstack/build/2b908642ce2042af8ff69b624c4b2659 : SUCCESS in 1h 30m 09s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/ce8291dd9a7742b1951d530f56d224f4 : SUCCESS in 58m 33s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/59c0cacd2d7644d98f063a85622a4360 : SUCCESS in 52m 34s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/2c97c7d8fa0a4311ac0c1ee7436fa54b : SUCCESS in 11m 19s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/e5228b911b2540709d6a6e31161fe41b : SUCCESS in 28m 50s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"89c65b3c36c7215dd0d83a09220ad1e776880679","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2025-08-19 02:44:13.000000000","message":"Patch Set 2:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with \u0027run-Lightbits CI\u0027 to trigger a recheck. \nFor more information about CI, please see https://wiki.openstack.org/wiki/ThirdPartySystems/LightbitsLabs_CI","accounts_in_message":[],"_revision_number":2},{"id":"69e59afb0e87242b1506b6dcd87ccb0832b76ce8","author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"date":"2025-08-19 10:42:35.000000000","message":"Patch Set 2: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"1808a0ec16f74c533c1240a3a64bb47b87ed3201","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2025-08-19 19:35:59.000000000","message":"Patch Set 2: Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"3dc1a61866c86201c644823f06f2b05a6f03f4d4","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-19 19:36:38.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"fe677d01a6c3c91e53a8439171e6862e77d4fed7","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-19 21:37:46.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7c51323718f34c14a2f468f24339ac9a\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/790783e7c5ed42c8acc030baefaf167b : SUCCESS in 1h 00m 13s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/cc6c39d02d4148d7a40ba838e523f355 : SUCCESS in 1h 52m 00s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/066f1dce04814d9d805e761e7579cfa4 : SUCCESS in 58m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d9728a383d4a406aae98b88897e66be2 : SUCCESS in 7m 06s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/270d90bd1f584352b7d803ad9f862d5b : SUCCESS in 13m 41s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/b179b360b4ae43b0b83edebd089a6548 : SUCCESS in 12m 14s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e25baa57d8a24935a477b5fd61c0339b : SUCCESS in 10m 55s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/96ed0ee83df44f5880c9679ee2cc6615 : SUCCESS in 31m 47s\n- nova-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/eab1b917c69441dea3ffd1ee137df6c7 : SUCCESS in 23m 54s\n- nova-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/a07efff440a347bc8d0c68519e2fa7fc : SUCCESS in 25m 43s\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/4c0146ff02ef4df6bd921aa8ac437d8d : SUCCESS in 27m 05s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/802c1e6751a947328d4b9a980541894a : SUCCESS in 6m 04s\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/69ed0ae5efe543ffbe56e682af8038fa : SUCCESS in 1h 31m 17s\n- tempest-integrated-compute-enforce-scope-new-defaults https://zuul.opendev.org/t/openstack/build/ea47d07d0e544683a099283b5b0cd9e3 : SUCCESS in 1h 40m 17s\n- tempest-integrated-compute-rbac-old-defaults https://zuul.opendev.org/t/openstack/build/c171b223c0b2499dbedc1ba7bcf4f80f : SUCCESS in 1h 40m 05s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/52292347751f4a86864da053d1ccb23b : SUCCESS in 1h 17m 54s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/2d6e250f883c40fabd06b98e33e166c6 : SUCCESS in 50m 51s","accounts_in_message":[],"_revision_number":2},{"id":"18917debd2302f92625c2c2e725d3822cb66b595","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-19 21:37:46.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"ecda95649e6b85e3cef3d6d9fd35772f5abd1724","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-19 21:38:50.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5c8309e5d48648de8f9fabbd1ade42a6\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c957489c6fb748b5b8664abf5a9e751c : SUCCESS in 49s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/76505f77a5294ea19b15c2c249096c7d : SUCCESS in 47s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"5a92bb594fd5513158044653ddd6919ae8f0ffb2","revisions":{"52db1aa87582a20c293bd43efe4244ccc23610e4":{"kind":"REWORK","_number":1,"created":"2025-08-18 16:07:21.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/64/957764/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/64/957764/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/64/957764/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/64/957764/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/64/957764/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/64/957764/1"}}},"commit":{"parents":[{"commit":"64594ec320ee23f243d5396411d6c156a257d169","subject":"Use dict object for request_specs_dict in the _list_view","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/64594ec320ee23f243d5396411d6c156a257d169"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-08-15 13:33:34.000000000","tz":60},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-08-18 16:07:18.000000000","tz":60},"subject":"restrict swap volume to cinder","message":"restrict swap volume to cinder\n\nThis change tightens the validation around the attachment\nupdate API to ensure that it can only be called if the source\nvolume has a non empty migration status.\n\nThat means it will only accept a request to swap the volume if\nit is the result of a cinder volume migration.\n\nThis change is being made to prevent the instance domain\nXML from getting out of sync with the nova BDM records\nand cinder connection info. In the future support for direct\nswap volume actions can be re-added if and only if the\nnova libvirt driver is updated to correctly modify the domain.\nThe libvirt driver is the only driver that supported this API\noutside of a cinder orchestrated swap volume.\n\nBy allowing the domain XML and BDMs to get out of sync\nif an admin later live-migrates the VM the host path will not be\nmodified for the destination host. Normally this results in a live\nmigration failure which often prompts the admin to cold migrate instead.\nhowever if the source device path exists on the destination the migration\nwill proceed. This can lead to 2 VMs using the same host block device.\nAt best this will cause a crash or data corruption.\nAt worst it will allow one guest to access the data of another.\n\nPrior to this change there was an explicit warning in nova API ref\nstating that humans should never call this API because it can lead\nto this situation. Now it considered a hard error due to the\nsecurity implications.\n\nCloses-Bug: #2112187\nChange-Id: I439338bd2f27ccd65a436d18c8cbc9c3127ee612\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n(cherry picked from commit 821f9976fb2422461445d61b92d86b56401cb41d)\n(cherry picked from commit ae113e62f0eba5cb0b63216fc79a263830c6a004)\n(cherry picked from commit dcb688524a643182e6d9469f9622663486b2dfbe)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/52db1aa87582a20c293bd43efe4244ccc23610e4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/52db1aa87582a20c293bd43efe4244ccc23610e4"}]},"branch":"refs/heads/stable/2024.1"},"5a92bb594fd5513158044653ddd6919ae8f0ffb2":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2025-08-18 16:15:27.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/64/957764/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/64/957764/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/64/957764/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/64/957764/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/64/957764/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/64/957764/2"}}},"commit":{"parents":[{"commit":"64594ec320ee23f243d5396411d6c156a257d169","subject":"Use dict object for request_specs_dict in the _list_view","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/64594ec320ee23f243d5396411d6c156a257d169"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-08-15 13:33:34.000000000","tz":60},"committer":{"name":"sean mooney","email":"work@seanmooney.info","date":"2025-08-18 16:15:27.000000000","tz":0},"subject":"restrict swap volume to cinder","message":"restrict swap volume to cinder\n\nThis change tightens the validation around the attachment\nupdate API to ensure that it can only be called if the source\nvolume has a non empty migration status.\n\nThat means it will only accept a request to swap the volume if\nit is the result of a cinder volume migration.\n\nThis change is being made to prevent the instance domain\nXML from getting out of sync with the nova BDM records\nand cinder connection info. In the future support for direct\nswap volume actions can be re-added if and only if the\nnova libvirt driver is updated to correctly modify the domain.\nThe libvirt driver is the only driver that supported this API\noutside of a cinder orchestrated swap volume.\n\nBy allowing the domain XML and BDMs to get out of sync\nif an admin later live-migrates the VM the host path will not be\nmodified for the destination host. Normally this results in a live\nmigration failure which often prompts the admin to cold migrate instead.\nhowever if the source device path exists on the destination the migration\nwill proceed. This can lead to 2 VMs using the same host block device.\nAt best this will cause a crash or data corruption.\nAt worst it will allow one guest to access the data of another.\n\nPrior to this change there was an explicit warning in nova API ref\nstating that humans should never call this API because it can lead\nto this situation. Now it considered a hard error due to the\nsecurity implications.\n\nCloses-Bug: #2112187\nDepends-on: https://review.opendev.org/c/openstack/tempest/+/957753\nChange-Id: I439338bd2f27ccd65a436d18c8cbc9c3127ee612\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n(cherry picked from commit 93c0f9bc749cea39f9cd1bd9d3e5a5585f1f6cac)\n(cherry picked from commit 76fe0294ffa8fc2444727ba8da584724d2493d56)\n(cherry picked from commit 6fcc9e2dd97abfc78fda822484d8d3592d719bea)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/5a92bb594fd5513158044653ddd6919ae8f0ffb2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/5a92bb594fd5513158044653ddd6919ae8f0ffb2"}]},"branch":"refs/heads/stable/2024.1","description":"Edit commit message"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"}},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
