)]}'
{"id":"openstack%2Fnova~987168","triplet_id":"openstack%2Fnova~master~I8fda00d44caecac4ef118c044caaf066eb9998fb","project":"openstack/nova","branch":"master","attention_set":{"35086":{"account":{"_account_id":35086,"name":"Khoi","email":"nguyenhuukhoinw@gmail.com","username":"nhk"},"last_update":"2026-05-04 15:45:47.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I8fda00d44caecac4ef118c044caaf066eb9998fb","subject":"Allow removing stale aggregate hosts","status":"NEW","created":"2026-05-04 13:09:25.000000000","updated":"2026-05-04 15:54:49.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"557685c34a5b9cf722f443876cd1bd0fc695f357","_number":987168,"virtual_id_number":987168,"owner":{"_account_id":35086,"name":"Khoi","email":"nguyenhuukhoinw@gmail.com","username":"nhk"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-05-04 15:45:39.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":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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":{"all":[{"_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,"permitted_voting_range":{"min":0,"max":1},"_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":{"CC":[{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"}],"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-05-04 13:58:32.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":"2026-05-04 14:11:53.000000000","updated_by":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-05-04 15:45:39.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":"2026-05-04 15:45:47.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"}],"messages":[{"id":"4653945d12e165ecd331c06d3e234a3a1a45b636","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":35086,"name":"Khoi","email":"nguyenhuukhoinw@gmail.com","username":"nhk"},"date":"2026-05-04 13:09:25.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"bd0ccf84ffba031790191e61b39dec722a7c6f6a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":35086,"name":"Khoi","email":"nguyenhuukhoinw@gmail.com","username":"nhk"},"date":"2026-05-04 13:11:15.000000000","message":"Uploaded patch set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"beb4fade703cd82c7f0b297f57060a760c61df19","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":35086,"name":"Khoi","email":"nguyenhuukhoinw@gmail.com","username":"nhk"},"date":"2026-05-04 13:11:42.000000000","message":"Uploaded patch set 3: Commit message was updated.","accounts_in_message":[],"_revision_number":3},{"id":"8d3025c42b50deaa1066e7547bf057e786ac9a0c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":35086,"name":"Khoi","email":"nguyenhuukhoinw@gmail.com","username":"nhk"},"date":"2026-05-04 13:12:17.000000000","message":"Uploaded patch set 4: Commit message was updated.","accounts_in_message":[],"_revision_number":4},{"id":"5c89b4ea39b7dee21e35668628c922262f7db2cb","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 13:58:32.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9bfb8bfcf0ad44a68018f5635bc0806e\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/e2d0458f60fd44649cdd4f59f2312f00 : SUCCESS in 20m 47s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/c5fbfe921f4e48a5afa5b2af4be895e5 : SUCCESS in 12m 53s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/b51fc78e8863403baa5afebfeced6f23 : SUCCESS in 21m 41s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"77974031e7d9ee5257d5020099948975f4f6a57e","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-05-04 14:11:53.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I8fda00d44caecac4ef118c044caaf066eb9998fb .","accounts_in_message":[],"_revision_number":1},{"id":"a2f0f9ae7c89956b37a4dcf12f64b042e01c397f","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-05-04 14:13:07.000000000","message":"Patch Set 2:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I8fda00d44caecac4ef118c044caaf066eb9998fb .","accounts_in_message":[],"_revision_number":2},{"id":"1485190682a96652885a1986f8989c9e7dc0eadc","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-05-04 14:14:17.000000000","message":"Patch Set 4:\n\nBuild Failed \n\n* quobyteci:  nova_quobyteci : FAILURE, logs at: https://oscilogs.quobyte.com/logs/I8fda00d44caecac4ef118c044caaf066eb9998fb .","accounts_in_message":[],"_revision_number":4},{"id":"0ff670e697e0ef7ace66a7bbe260602c14593ab2","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-05-04 14:19:04.000000000","message":"Patch Set 3:\n\nBuild Failed \n\n* quobyteci:  nova_quobyteci : FAILURE, logs at: https://oscilogs.quobyte.com/logs/I8fda00d44caecac4ef118c044caaf066eb9998fb .","accounts_in_message":[],"_revision_number":3},{"id":"b627b82b9f46887266d34e905dc9c7a149608afd","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 15:45:39.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/73178dda82f641efb1ebba8ad3352f3f\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/b3f8554202344944b00e98bc1a19c2d8 : SUCCESS in 1h 13m 29s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/61ff6aed5b2c4d5d9384d99ba774fd97 : SUCCESS in 1h 49m 38s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/949466b3c074422ab3bb92b673006381 : SUCCESS in 1h 02m 26s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6e7d58d520b8496db22a704f84f664d7 : SUCCESS in 49m 52s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c6a4eccfbedf4e47a0c12ea07b9f577b : SUCCESS in 5m 14s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2109c33d4be544309e439a08ce795303 : SUCCESS in 17m 30s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/f2ac614854a344e69a74f4fed0c936e0 : SUCCESS in 11m 56s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/10e75972bc3b4486b47b4230e1ab642a : SUCCESS in 21m 33s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8e792633c5b84a32896bd08af2275d86 : SUCCESS in 13m 05s\n- ironic-tempest-bios-ipmi-autodetect https://zuul.opendev.org/t/openstack/build/f4fcc50574524a23830bb7c5fb7c079d : POST_FAILURE in 20m 47s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/22f0b0b23e70482db413b51690232806 : SUCCESS in 1h 58m 44s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/4dbf1e730af241198c2bc75b4daf912b : SUCCESS in 1h 11m 05s\n- nova-vtpm https://zuul.opendev.org/t/openstack/build/d37f93b401ef4883b42c8dc599f32ca8 : SUCCESS in 32m 46s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/e934ed0556aa4cd4a7fe41e91ff4179b : SUCCESS in 45m 46s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/167d2ca1805e40d990de5d8f3289c511 : SUCCESS in 55m 33s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/0e17f6845b2e4579b2284bcd542de390 : SUCCESS in 2h 28m 27s\n- nova-next https://zuul.opendev.org/t/openstack/build/6c9daeed67b44ee09136155b701d6612 : SUCCESS in 2h 10m 20s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/7a6955c4401f4403823d34f9c17a63aa : SUCCESS in 58m 58s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/bc92ec42440c4fbbad800a120fad78dc : SUCCESS in 5m 21s (non-voting)\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/23ad268be21e4b3688463e2182fdaa81 : SUCCESS in 31m 05s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/11a0c2f0545d4e5ca6276ad2b0b48145 : SUCCESS in 27m 37s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/03197ddf2b0c4344a7303a401aa70099 : SUCCESS in 1h 23m 24s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/7afac88da9d64fcb8682cf05ebee9b19 : SUCCESS in 1h 05m 16s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/a56bccd7dc1a4591a2a9f61853d26809 : SUCCESS in 31m 24s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/d63f989838534fabbf298f69dff94130 : SUCCESS in 35m 38s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/eb2007d8e0bf4ea78278acfdc3053373 : SUCCESS in 13m 40s","accounts_in_message":[],"_revision_number":4},{"id":"557685c34a5b9cf722f443876cd1bd0fc695f357","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2026-05-04 15:54:49.000000000","message":"Patch Set 4:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"f84bdd5858d33bcb94764944d9ebe015f4b70bc3","revisions":{"5e4de9b49919c1b63087f706a4bc1b976400045f":{"kind":"REWORK","_number":1,"created":"2026-05-04 13:09:25.000000000","uploader":{"_account_id":35086,"name":"Khoi","email":"nguyenhuukhoinw@gmail.com","username":"nhk"},"ref":"refs/changes/68/987168/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/68/987168/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/68/987168/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/68/987168/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/68/987168/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/68/987168/1"}}},"commit":{"parents":[{"commit":"2e0bfb1102d8af376c110a169eba42e0905dae07","subject":"Merge \"[py313-threading]Skip eventlet specific tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/2e0bfb1102d8af376c110a169eba42e0905dae07"}]}],"author":{"name":"nguyenhuukhoinw","email":"nguyenhuukhoinw@gmail.com","date":"2026-05-04 13:08:55.000000000","tz":420},"committer":{"name":"nguyenhuukhoinw","email":"nguyenhuukhoinw@gmail.com","date":"2026-05-04 13:08:55.000000000","tz":420},"subject":"Allow removing stale aggregate hosts","message":"Allow removing stale aggregate hosts\n\nRemoving a host from an aggregate looks up the compute node before deleting the Nova aggregate membership so placement mirroring can be cleaned first. If the aggregate contains stale host membership after the compute node record has been removed, that lookup raises ComputeHostNotFound and operators cannot remove the stale host through the API.\n\nSkip placement cleanup when no compute node record exists and continue with Aggregate.delete_host(). Existing hosts still use the current placement cleanup path.\n\nCloses-Bug: #2150873\nChange-Id: I8fda00d44caecac4ef118c044caaf066eb9998fb\nSigned-off-by: nguyenhuukhoinw \u003cnguyenhuukhoinw@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/5e4de9b49919c1b63087f706a4bc1b976400045f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/5e4de9b49919c1b63087f706a4bc1b976400045f"}]},"branch":"refs/heads/master"},"53d526b47a3a72d8772c9ace2837999783d41536":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-05-04 13:11:15.000000000","uploader":{"_account_id":35086,"name":"Khoi","email":"nguyenhuukhoinw@gmail.com","username":"nhk"},"ref":"refs/changes/68/987168/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/68/987168/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/68/987168/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/68/987168/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/68/987168/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/68/987168/2"}}},"commit":{"parents":[{"commit":"2e0bfb1102d8af376c110a169eba42e0905dae07","subject":"Merge \"[py313-threading]Skip eventlet specific tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/2e0bfb1102d8af376c110a169eba42e0905dae07"}]}],"author":{"name":"nguyenhuukhoinw","email":"nguyenhuukhoinw@gmail.com","date":"2026-05-04 13:08:55.000000000","tz":420},"committer":{"name":"nguyenhuukhoinw","email":"nguyenhuukhoinw@gmail.com","date":"2026-05-04 13:10:47.000000000","tz":420},"subject":"Allow removing stale aggregate hosts","message":"Allow removing stale aggregate hosts\n\nRemoving a host from an aggregate looks up the compute node before deleting\nthe Nova aggregate membership so placement mirroring can be cleaned first.\n\nIf the aggregate contains stale host membership after the compute node record\nhas been removed, that lookup raises ComputeHostNotFound and operators cannot\nremove the stale host through the API.\n\nSkip placement cleanup when no compute node record exists and continue with\nAggregate.delete_host(). Existing hosts still use the current placement cleanup\npath.\n\nCloses-Bug: #2150873\n\nChange-Id: I8fda00d44caecac4ef118c044caaf066eb9998fb\nSigned-off-by: nguyenhuukhoinw \u003cnguyenhuukhoinw@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/53d526b47a3a72d8772c9ace2837999783d41536"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/53d526b47a3a72d8772c9ace2837999783d41536"}]},"branch":"refs/heads/master"},"de64bf9d4515431e2e275b32fc60cb3cb9727967":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2026-05-04 13:11:42.000000000","uploader":{"_account_id":35086,"name":"Khoi","email":"nguyenhuukhoinw@gmail.com","username":"nhk"},"ref":"refs/changes/68/987168/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/68/987168/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/68/987168/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/68/987168/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/68/987168/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/68/987168/3"}}},"commit":{"parents":[{"commit":"2e0bfb1102d8af376c110a169eba42e0905dae07","subject":"Merge \"[py313-threading]Skip eventlet specific tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/2e0bfb1102d8af376c110a169eba42e0905dae07"}]}],"author":{"name":"nguyenhuukhoinw","email":"nguyenhuukhoinw@gmail.com","date":"2026-05-04 13:08:55.000000000","tz":420},"committer":{"name":"nguyenhuukhoinw","email":"nguyenhuukhoinw@gmail.com","date":"2026-05-04 13:11:19.000000000","tz":420},"subject":"Allow removing stale aggregate hosts","message":"Allow removing stale aggregate hosts\n\nRemoving a host from an aggregate looks up the compute node before deleting\nthe Nova aggregate membership so placement mirroring can be cleaned first.\n\nIf the aggregate contains stale host membership after the compute node record\nhas been removed, that lookup raises ComputeHostNotFound and operators cannot\nremove the stale host through the API.\n\nSkip placement cleanup when no compute node record exists. Continue with\nthe Nova aggregate deletion. Existing hosts still use the current placement\ncleanup path.\n\nCloses-Bug: #2150873\n\nChange-Id: I8fda00d44caecac4ef118c044caaf066eb9998fb\nSigned-off-by: nguyenhuukhoinw \u003cnguyenhuukhoinw@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/de64bf9d4515431e2e275b32fc60cb3cb9727967"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/de64bf9d4515431e2e275b32fc60cb3cb9727967"}]},"branch":"refs/heads/master"},"f84bdd5858d33bcb94764944d9ebe015f4b70bc3":{"kind":"NO_CODE_CHANGE","_number":4,"created":"2026-05-04 13:12:17.000000000","uploader":{"_account_id":35086,"name":"Khoi","email":"nguyenhuukhoinw@gmail.com","username":"nhk"},"ref":"refs/changes/68/987168/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/68/987168/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/68/987168/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/68/987168/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/68/987168/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/68/987168/4"}}},"commit":{"parents":[{"commit":"2e0bfb1102d8af376c110a169eba42e0905dae07","subject":"Merge \"[py313-threading]Skip eventlet specific tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/2e0bfb1102d8af376c110a169eba42e0905dae07"}]}],"author":{"name":"nguyenhuukhoinw","email":"nguyenhuukhoinw@gmail.com","date":"2026-05-04 13:08:55.000000000","tz":420},"committer":{"name":"nguyenhuukhoinw","email":"nguyenhuukhoinw@gmail.com","date":"2026-05-04 13:11:48.000000000","tz":420},"subject":"Allow removing stale aggregate hosts","message":"Allow removing stale aggregate hosts\n\nRemoving a host from an aggregate looks up the compute node before\ndeleting the Nova aggregate membership. This lets placement mirroring\nbe cleaned first.\n\nIf the aggregate contains stale host membership after the compute node\nrecord has been removed, that lookup raises ComputeHostNotFound.\nOperators cannot remove the stale host through the API.\n\nSkip placement cleanup when no compute node record exists. Continue\nwith the Nova aggregate deletion. Existing hosts still use the current\nplacement cleanup path.\n\nCloses-Bug: #2150873\n\nChange-Id: I8fda00d44caecac4ef118c044caaf066eb9998fb\nSigned-off-by: nguyenhuukhoinw \u003cnguyenhuukhoinw@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/f84bdd5858d33bcb94764944d9ebe015f4b70bc3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/f84bdd5858d33bcb94764944d9ebe015f4b70bc3"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"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":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
