)]}'
{"id":"openstack%2Fnova~1004670","triplet_id":"openstack%2Fnova~master~I048aadb75a418f732fdb2919b14085e753fb32cb","project":"openstack/nova","branch":"master","topic":"bug/2166788","attention_set":{"22443":{"account":{"_account_id":22443,"name":"Mike Lowe","email":"jomlowe@iu.edu","username":"jomlowe"},"last_update":"2026-09-08 18:47:00.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I048aadb75a418f732fdb2919b14085e753fb32cb","subject":"Detect orphaned PCI allocations in nova-manage placement audit","status":"NEW","created":"2026-09-08 16:44:08.000000000","updated":"2026-09-08 18:47:00.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":"a15fbadb1544e0b8ed94539a3dc08afe674538f3","_number":1004670,"virtual_id_number":1004670,"owner":{"_account_id":22443,"name":"Mike Lowe","email":"jomlowe@iu.edu","username":"jomlowe"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-09-08 18:46:50.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"},"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-09-08 17:36:02.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-09-08 17:39:49.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-09-08 18:46:50.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-09-08 18:47:00.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":"421e37ffec955d844a3c95b51383f74abf216f4d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":22443,"name":"Mike Lowe","email":"jomlowe@iu.edu","username":"jomlowe"},"date":"2026-09-08 16:44:08.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"e1eace0bd4a78b81346a2fbb2179dc89377b69a8","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-08 17:36:02.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/927f5783f3df49258582b76267a4cba8\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/2a598bf3a64d45b291839f3fd8f6ef5c : SUCCESS in 21m 26s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/167c8f66b8c1485ebc77f7ce314a4ba8 : SUCCESS in 17m 39s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/83f1bf8d2b9a41b296a5a3dfa99882f9 : SUCCESS in 21m 15s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"fd6361ae1e9ac58ad731bfb6e5877f5b4cd5f7df","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-09-08 17:39:49.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I048aadb75a418f732fdb2919b14085e753fb32cb .","accounts_in_message":[],"_revision_number":1},{"id":"57a5973f6c1b35727ec3be5c8facbb7e16cabc9c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-08 18:46:50.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0bd950394ff54dd18a5a92d4b1a42b02\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/c720972bd75d4be5aff85394447e6e1d : SUCCESS in 1h 02m 35s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/48f8dfcba6ec43d1a9d73b98adee6b7b : SUCCESS in 1h 34m 09s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/c120c816130e4d559bd461168970990a : SUCCESS in 1h 00m 43s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/9a323cfe63ce4671a25e56d5209de548 : SUCCESS in 1h 10m 21s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0ccec254c8c0477b8af400ca1ca8d588 : SUCCESS in 4m 10s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/8ed09a45c87d47dcb3d1a4947cee504f : SUCCESS in 14m 20s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/59792a3a8352446281bf928a55211c38 : SUCCESS in 14m 04s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/121068a5740d4566ac9474468e584c2d : SUCCESS in 18m 22s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/10502032ea8c4d76ba9d65f2e6cbf4e7 : SUCCESS in 12m 39s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/357a16cbf02942bebc52e8cdb1b4384b : SUCCESS in 8m 21s\n- ironic-tempest-bios-ipmi-autodetect https://zuul.opendev.org/t/openstack/build/abd7188da8e74bbb8fcd1501c5f1f542 : SUCCESS in 1h 13m 00s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/69699ab088394e878cd5405bfe12e072 : SUCCESS in 1h 19m 14s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/64fab0bf55594bccb459a3e927ac50ba : SUCCESS in 22m 53s\n- nova-whitebox https://zuul.opendev.org/t/openstack/build/9aa586b6cda8419caddb800e979c14f5 : SUCCESS in 37m 38s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/d6c1f75f3c774764b602d1c20416efd2 : SUCCESS in 47m 11s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/f3d5aaf54d65474bacbcf9764058b6f0 : SUCCESS in 33m 55s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/fdac5aa2759a447bb56474788b936355 : SUCCESS in 1h 56m 04s\n- nova-next https://zuul.opendev.org/t/openstack/build/1843ee05158c4142a3780f8a17b381a1 : SUCCESS in 1h 10m 56s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/ecfc0890354e415ba3be36cc8aaebdfd : SUCCESS in 25m 42s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/2322c48a4f7c460e8cac73f3b915eb3c : SUCCESS in 5m 28s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/1a03c99b8bbf480d8a2953a52f3181e0 : SUCCESS in 29m 05s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/bdf93260c90943f9b98987c4b5726f36 : SUCCESS in 28m 13s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/a383af365b4e4e448edae7e07004470d : SUCCESS in 36m 55s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/c4538b0cb4a84a85a890bd504fc158d1 : SUCCESS in 1h 25m 33s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/463a4b02d4664012946eda0431ceeda8 : SUCCESS in 39m 09s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/c4d853f3d37b4508b2fbb9ee613f0295 : SUCCESS in 58m 46s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/eb26242ab248431ba6626f3388b9a7de : SUCCESS in 22m 45s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/34edabf51aa8483cb024243446ba900d : SUCCESS in 22m 53s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"bafcb69ff56b5984c7feb26685234547925702a1","revisions":{"bafcb69ff56b5984c7feb26685234547925702a1":{"kind":"REWORK","_number":1,"created":"2026-09-08 16:44:08.000000000","uploader":{"_account_id":22443,"name":"Mike Lowe","email":"jomlowe@iu.edu","username":"jomlowe"},"ref":"refs/changes/70/1004670/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/70/1004670/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/70/1004670/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/70/1004670/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/70/1004670/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/70/1004670/1"}}},"commit":{"parents":[{"commit":"7582db6d65b9880e1ef7d906ddad1d7c95bb53a5","subject":"Merge \"Parallelize per-node resource updates\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/7582db6d65b9880e1ef7d906ddad1d7c95bb53a5"}]}],"author":{"name":"Mike Lowe","email":"jomlowe@iu.edu","date":"2026-09-08 15:24:46.000000000","tz":-240},"committer":{"name":"Mike Lowe","email":"jomlowe@iu.edu","date":"2026-09-08 15:24:46.000000000","tz":-240},"subject":"Detect orphaned PCI allocations in nova-manage placement audit","message":"Detect orphaned PCI allocations in nova-manage placement audit\n\nThe nova-manage placement audit command only flagged a consumer\u0027s\nPlacement allocation as a candidate orphan if it contained at least\none resource class from a hardcoded NOVA_RCS allowlist. That list\npredates PCI device tracking in Placement and does not include the\ndynamically generated CUSTOM_PCI_\u003cvendor_id\u003e_\u003cproduct_id\u003e resource\nclasses used by PCI-in-Placement.\n\nAs a result, once [pci]report_in_placement is enabled, allocations\nmade up solely of PCI resource classes for deleted instances or\nmigrations were silently skipped by the audit command and never\nreported or removed, even with --delete.\n\nTreat any resource class starting with CUSTOM_PCI_ as Nova-managed,\nin addition to the existing NOVA_RCS list, so PCI allocations are\naudited the same way as VCPU/MEMORY_MB/DISK_GB allocations.\n\nCloses-Bug: #2166788\nAssisted-By: Claude Sonnet 5\nChange-Id: I048aadb75a418f732fdb2919b14085e753fb32cb\nSigned-off-by: Mike Lowe \u003cjomlowe@iu.edu\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/bafcb69ff56b5984c7feb26685234547925702a1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/bafcb69ff56b5984c7feb26685234547925702a1"}]},"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":""}}}]}
