)]}'
{"id":"openstack%2Fnova~973604","triplet_id":"openstack%2Fnova~master~I4cb8e8b62860fff9739d1aa0d3d4b4b9d94b3922","project":"openstack/nova","branch":"master","topic":"pci-passthrough-groups","attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-05-05 15:40:14.000000000","reason":"\u003cGERRIT_ACCOUNT_9708\u003e replied on the change","reason_account":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"}},"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-01-23 19:19:24.000000000","reason":"\u003cGERRIT_ACCOUNT_11604\u003e replied on the change","reason_account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}},"782":{"account":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"last_update":"2026-01-23 19:19:24.000000000","reason":"\u003cGERRIT_ACCOUNT_11604\u003e replied on the change","reason_account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}}},"removed_from_attention_set":{"9708":{"account":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"last_update":"2026-04-17 13:29:51.000000000","reason":"\u003cGERRIT_ACCOUNT_9708\u003e replied on the change","reason_account":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"}}},"hashtags":[],"change_id":"I4cb8e8b62860fff9739d1aa0d3d4b4b9d94b3922","subject":"[WIP] Add PCI device groups for atomic allocation","status":"NEW","created":"2026-01-16 12:26:19.000000000","updated":"2026-05-05 15:40:14.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":64,"unresolved_comment_count":57,"has_review_started":true,"meta_rev_id":"107f8d684015126ea462f96026406cf3279a4ffc","_number":973604,"virtual_id_number":973604,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-01-23 21:40:44.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"}],"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":{"disliked":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":-1,"date":"2026-04-17 13:29:51.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"}],"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":"","value":-1,"default_value":0,"optional":true},"Workflow":{"rejected":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"all":[{"value":-1,"date":"2026-04-17 14:46:42.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"}],"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":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]}],"REVIEWER":[{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-01-16 12:48:48.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-01-16 13:29:42.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-01-16 14:41:42.000000000","updated_by":{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]},"reviewer":{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-01-16 14:52:48.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-01-23 19:19:24.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"},{"updated":"2026-01-23 19:19:24.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"state":"REVIEWER"},{"updated":"2026-01-23 19:19:24.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"state":"REVIEWER"},{"updated":"2026-01-23 20:13:51.000000000","updated_by":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"reviewer":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"state":"CC"},{"updated":"2026-01-23 21:47:40.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":"2026-01-28 16:08:24.000000000","updated_by":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"reviewer":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"state":"CC"}],"messages":[{"id":"468592d0f7471ab9214b80d8727d36ded2b07284","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-01-16 12:26:19.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"9e17d55fb6e685f548fb341f2fc585abb43ec8d5","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-16 12:48:48.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/fd62a9db3a3c47348c5e4b2696d81987\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/287e40dd42cd4879b49bcb44c8ae36ee : FAILURE in 18m 00s (non-voting)\n- openstack-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/06f51228683c4c248a61b14fea9c8f94 : FAILURE in 17m 18s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/77ec7563bea8491fa341b5c88b6cba54 : FAILURE in 20m 32s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"23023927153c7a0780c5e7105f95f1e9c146bab0","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-01-16 13:29:42.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I4cb8e8b62860fff9739d1aa0d3d4b4b9d94b3922 .","accounts_in_message":[],"_revision_number":1},{"id":"9ae777041ee45717acd0534cdd5738c18d502a86","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-01-16 14:26:31.000000000","message":"Patch Set 1: Workflow-1\n\n(3 comments)","accounts_in_message":[],"_revision_number":1},{"id":"a015167ff69579822eda01c3f3fc36b2b7d441d9","tag":"autogenerated:sap-openstack-ci~result","author":{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]},"date":"2026-01-16 14:41:42.000000000","message":"Patch Set 1:\n\nIgnore for now: Test failed. Logs on \u003chttp://openstack-ci-logs.global.cloud.sap/openstack-nova-973604-kkvvj/index.html\u003e","accounts_in_message":[],"_revision_number":1},{"id":"cf4c1ba7a8e192979871512c9a426c6bd1eab9bf","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-16 14:52:48.000000000","message":"Patch Set 1: Verified-1\n\n(2 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/d8c2939b699b4dcfa45cb6efe25e2764\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/200736f05100409ca92b2376d668ca24 : SUCCESS in 1h 01m 26s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/d4e7601f692e4641b7c9949336165f5a : SUCCESS in 1h 43m 29s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/b2c15ea65e704115ab60f82ebebf55ca : SUCCESS in 44m 17s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/88dbc79804004acdb96287be23bfaf77 : FAILURE in 21m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/46ae49248c2b4a3b8c6315445db9843f : FAILURE in 9m 46s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/06df93a6595f4f59b30b4cb9d78d06e5 : FAILURE in 13m 10s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a6b634f2b3cf41ecb33642eabacde4c8 : FAILURE in 16m 28s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1a2e7fa0b3bd46668281c5f63a764c4c : SUCCESS in 13m 39s\n- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa https://zuul.opendev.org/t/openstack/build/1223cc4ccb304d75a74be07116e18c32 : SUCCESS in 49m 37s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/babed5d5fbef41d8828835caecca3cb7 : SUCCESS in 1h 55m 26s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/f251d66d6ebf4969b8a8e0ebb409b175 : SUCCESS in 58m 39s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/eb33aa43ad614114a8000258f83885f9 : SUCCESS in 51m 23s\n- nova-lvm https://zuul.opendev.org/t/openstack/build/f2f5cdec8853493580b63ea83b196b3e : SUCCESS in 59m 30s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/3745c936c8d04a00a48d16b8d9cf3c7f : SUCCESS in 2h 19m 58s\n- nova-next https://zuul.opendev.org/t/openstack/build/6ef961ab660f4d9fa839a515256a6eb8 : SUCCESS in 1h 55m 09s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/73c7c9a04aff40f0975f34bccd642726 : SUCCESS in 52m 33s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/67d06b4f0ce4498ca1d348bb08e72b1d : SUCCESS in 3m 17s (non-voting)\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/518f94903ce24c65afd557e9048bea6f : FAILURE in 27m 49s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/c74be045a5234e1cbf1b88aff2a4e453 : FAILURE in 26m 14s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/ac72b59ac4504378b5ce6a11915e8a7c : SUCCESS in 1h 01m 58s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/d6abd98f706a449c9e6584319fb9f96e : SUCCESS in 57m 21s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/5472c149ca314726b68229bf6fbb0032 : SUCCESS in 28m 58s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/365231e235334d74a7fb97f8a3cefd18 : SUCCESS in 37m 26s (non-voting)\n- nova-tox-py312-threading https://zuul.opendev.org/t/openstack/build/96584b879a2e4e0d8da81bd426eb8331 : FAILURE in 14m 33s","accounts_in_message":[],"_revision_number":1},{"id":"29e061b0961cb8c8e895d493d7b81459c1d23faf","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-01-16 18:24:45.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":2},{"id":"6b6a6815416de55ca94c78452bddd6ef7ac67832","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-01-16 18:25:19.000000000","message":"Patch Set 2: Workflow-1","accounts_in_message":[],"_revision_number":2},{"id":"0732ac42dc0fa2f623940fbc7c8bfad22b08a77b","tag":"autogenerated:sap-openstack-ci~result","author":{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]},"date":"2026-01-16 18:48:53.000000000","message":"Patch Set 2:\n\nIgnore for now: Test failed. Logs on \u003chttp://openstack-ci-logs.global.cloud.sap/openstack-nova-973604-wnqcf/index.html\u003e","accounts_in_message":[],"_revision_number":2},{"id":"0fa405b27efc35ab007504060b489d189bb0e4e0","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-16 19:33:40.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f6614741aa4544c09111ec4d12c34f66\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/c6c308ccec374b498137622add9e71f4 : SUCCESS in 21m 18s (non-voting)\n- openstack-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/1d252e9bbf844532ac3189d6ec1d5484 : SUCCESS in 32m 46s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/8e12a692f31a4eaaaa86a97d67f19da7 : RETRY_LIMIT in 6m 03s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"b046e75230d7ffd0b93609a2d30d3537e7660465","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-01-16 19:49:36.000000000","message":"Patch Set 2:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I4cb8e8b62860fff9739d1aa0d3d4b4b9d94b3922 .","accounts_in_message":[],"_revision_number":2},{"id":"7ee74bd553c964b9cc08d011c4775fe4c781a45b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-16 20:58:50.000000000","message":"Patch Set 2: Verified-1\n\n(2 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/9151ec5a7b464378ab17a1095e6dd8e2\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/62b59a23b2f449499ba52f5e437c67d0 : SUCCESS in 34m 36s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/bf22e6215de94c9ab27674d67206aa6a : SUCCESS in 1h 10m 54s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/07d63ab0ff62424dbad0ce85e58d9d03 : SUCCESS in 1h 03m 22s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/e95ef432a488460888c29df55c000daf : SUCCESS in 26m 44s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d029b36217b1428e86f132a9b59a5337 : FAILURE in 7m 44s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/5fb4460faf1a41cbb5cf6c7b3c8e3859 : SUCCESS in 13m 35s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/008266780cf2447f8a383347488b6582 : SUCCESS in 13m 13s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1033caab195948e7973a6d0b3576ea13 : SUCCESS in 13m 38s\n- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa https://zuul.opendev.org/t/openstack/build/4faf37094e094a46bcd301154bfda364 : SUCCESS in 1h 17m 02s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/d8c6cdb9ffd446d8ba950f9c967f7634 : SUCCESS in 2h 11m 03s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/f38473d1d06b46f18e89ee32c0c11fb3 : SUCCESS in 33m 13s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/c97b0c09be8a4db48adc7d666de4981c : SUCCESS in 29m 24s\n- nova-lvm https://zuul.opendev.org/t/openstack/build/c8b7e4da6bd04abc8edd25cb587dd5bb : SUCCESS in 1h 08m 30s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/e984b206897940168901f709f8c06b36 : SUCCESS in 1h 57m 04s\n- nova-next https://zuul.opendev.org/t/openstack/build/cb77e2859a674633a6c69f2722aff48e : SUCCESS in 2h 27m 15s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/3cdedd3c93c94c3e9832fc5ca749f1c6 : SUCCESS in 33m 58s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/49b5bdf7064342b5808e45687b2e556b : SUCCESS in 5m 57s (non-voting)\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/d6752b99808947c3bfc3111104ba2107 : SUCCESS in 24m 03s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/0810dc3c8e8746bbacf7da1763aa57df : SUCCESS in 25m 45s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/8d1ecea9ae3b419a87881e7ef03f043c : SUCCESS in 1h 03m 13s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/c3774d3059f34ebbbb383835ae8acfcf : SUCCESS in 1h 01m 55s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/be0e04eb289d4f6ea312c733c17324e9 : SUCCESS in 29m 12s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/6bbe10d369ca418f9a391944671d0d69 : SUCCESS in 17m 26s (non-voting)\n- nova-tox-py312-threading https://zuul.opendev.org/t/openstack/build/21489c2230c74f7a9921a9fed0fca8c6 : SUCCESS in 13m 54s","accounts_in_message":[],"_revision_number":2},{"id":"8dd85739a75bf726628d7222628618faf34437ca","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-01-23 16:17:11.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"7cc68f8fcf90cc1edadee0730870c14fc1e3fef4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-01-23 18:52:48.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":3},{"id":"90fa65fe74d9340e41909bbd40d07f16ba982dac","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-01-23 19:19:24.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"1c806a3a3ad2832680b670d953bc44c326fd84c9","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-01-23 19:53:36.000000000","message":"Patch Set 3:\n\nBuild Failed \n\n* quobyteci:  nova_quobyteci : FAILURE, logs at: https://oscilogs.quobyte.com/logs/I4cb8e8b62860fff9739d1aa0d3d4b4b9d94b3922 .","accounts_in_message":[],"_revision_number":3},{"id":"74903caee62ab4bcb1868d50361d7827fcd2fd9b","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-01-23 20:13:44.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"7a9a159cff89eca88f4f1d9cbb6e6945e4dab9ec","tag":"autogenerated:zuul:manual-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-01-23 20:13:51.000000000","message":"Patch Set 3:\n\nStarting manual-ci jobs.","accounts_in_message":[],"_revision_number":3},{"id":"20478f2ffd32702cbb209d1cbc592aee26c09d23","tag":"autogenerated:zuul:manual-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-01-23 20:26:49.000000000","message":"Patch Set 3:\n\n(12 comments)\n\nBuild succeeded (manual-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/84e0d6c0d5814201a926b345ce9aa126\n\n- teim-code-review https://zuul.teim.app/t/main/build/2c25035b7df641e0985bf3b7351c8e5d : SUCCESS in 12m 50s","accounts_in_message":[],"_revision_number":3},{"id":"3711ed60007749492b378bd1b2e2d249cec19b16","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-23 21:40:44.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b529966dd3274e7c8e6d18424a5cad97\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5a5103a1580e44479b8c6f4a2fdb82bc : SUCCESS in 34m 19s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/324f72ca72f649dbbf015337b1ee837c : SUCCESS in 2h 00m 12s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/3526e34e95654f68ad4fbe1bba65d03b : SUCCESS in 36m 09s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/78156d20e40141ddac5062856c1359ce : SUCCESS in 24m 28s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8b47819e57dc4a73bb02710acab7a245 : SUCCESS in 4m 04s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/aa5eca253d9a4f9dbaefb314433cbba0 : SUCCESS in 12m 25s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/421277d7a4e6422fb78c78335484a034 : SUCCESS in 10m 22s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/be7ab0ed14c0418596d0df5a7cc56065 : SUCCESS in 12m 40s\n- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa https://zuul.opendev.org/t/openstack/build/a4229398ce084d99a9b9fcc64e78a6e8 : SUCCESS in 37m 16s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/fd32f318b30e4b48a39d8d2afce2a527 : SUCCESS in 1h 54m 27s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/3b5dab4964224fc7b3214ab5edea0dde : SUCCESS in 51m 58s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/fb1c19eb9d8f458dae365a5b4e327ace : SUCCESS in 1h 02m 23s\n- nova-lvm https://zuul.opendev.org/t/openstack/build/7095a7cd7e9e4bb38f8a1d7207e85317 : SUCCESS in 55m 41s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/987de9f29c5a4b5d94f1264ef5e09ee8 : SUCCESS in 2h 33m 21s\n- nova-next https://zuul.opendev.org/t/openstack/build/6104352bc19d49d4b88ef1e8da338dcb : SUCCESS in 2h 05m 38s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/e74cb2ccacc444548b76aafc5a98adf2 : SUCCESS in 49m 34s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/f8baec2e7e2442e8a235b88bb2023881 : SUCCESS in 4m 58s (non-voting)\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/199669a2be784cb2aeb27bbe086991ca : SUCCESS in 29m 07s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/580dbd7297684760a0e36d1c2dacfc6f : SUCCESS in 22m 49s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/72e3934ba7134f1eb64f292cca1fe8a4 : SUCCESS in 56m 13s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/7d88718afaa545449be99b666f98ee10 : SUCCESS in 1h 07m 19s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/af138f54c2a247848c96eed051bc1d03 : FAILURE in 24m 03s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/f3ebfdd6237044a1aac1fce4533e2782 : SUCCESS in 23m 21s (non-voting)\n- nova-tox-py312-threading https://zuul.opendev.org/t/openstack/build/392874b695a045f38442ab54bfa5baca : SUCCESS in 13m 18s","accounts_in_message":[],"_revision_number":3},{"id":"939e687ff734093801f4b967e065c67bc97248e1","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-01-23 21:47:40.000000000","message":"Patch Set 3:\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":3},{"id":"50feab68e892c9dced1c5c09ed5e61a5b90cf430","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-24 01:13:35.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bfa3e6c677504704929627128820048c\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/d573de5ae93d4e12994370f11eb5cf86 : SUCCESS in 31m 26s (non-voting)\n- openstack-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/2b8459274c9c4e8b96411381d01158cd : SUCCESS in 27m 17s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/8b3525bcfda6416f94a85b411253c2fe : RETRY_LIMIT in 7m 26s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"7171271e0587d733d5c333371635050efc4725a0","tag":"autogenerated:sap-openstack-ci~result","author":{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]},"date":"2026-01-25 02:50:44.000000000","message":"Patch Set 3:\n\nIgnore for now: Test failed. Logs on \u003chttp://openstack-ci-logs.global.cloud.sap/openstack-nova-973604-2zt8p/index.html\u003e","accounts_in_message":[],"_revision_number":3},{"id":"fadc2c13dbb793819419e7ebb00dbb9e475dd6df","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2026-04-17 13:29:51.000000000","message":"Patch Set 3: Code-Review-1\n\n(54 comments)","accounts_in_message":[],"_revision_number":3},{"id":"2914334b1d097e8c0cf6af6e02b12e776e32eec2","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-17 14:46:29.000000000","message":"Topic pci-groups removed","accounts_in_message":[],"_revision_number":3},{"id":"37bb2bc46c9f77bed237779a7252d4140a9ac6ff","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-17 14:46:33.000000000","message":"Topic set to pci-passthrough-groups","accounts_in_message":[],"_revision_number":3},{"id":"31b9de67579de0fb65459f31db4f43bf6f4b8559","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-17 14:46:42.000000000","message":"Patch Set 3: Workflow-1","accounts_in_message":[],"_revision_number":3},{"id":"107f8d684015126ea462f96026406cf3279a4ffc","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2026-05-05 15:40:14.000000000","message":"Patch Set 3:\n\n(4 comments)","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"7c4bcba6c534e65ab4fd669b5ab0479275dfb1b4","revisions":{"0fb12cb9781878200323447da95a456e12881a7f":{"kind":"REWORK","_number":1,"created":"2026-01-16 12:26:19.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/04/973604/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/04/973604/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/04/973604/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/04/973604/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/04/973604/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/04/973604/1"}}},"commit":{"parents":[{"commit":"f43c64c56cf319424dd7f1ea2a444fb8194b4e87","subject":"Merge \"Migrate upper functional job to Python 3.13\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/f43c64c56cf319424dd7f1ea2a444fb8194b4e87"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-01-16 11:38:53.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-01-16 12:24:58.000000000","tz":0},"subject":"[WIP] Add PCI device groups for atomic allocation","message":"[WIP] Add PCI device groups for atomic allocation\n\nImplement PCI device groups feature allowing operators to define\ngroups of PCI devices that must be scheduled and allocated as an\nindivisible unit. This is essential for accelerator devices like\nGraphcore IPUs that consist of multiple physical PCI devices that\nmust work together or Nvidia GPUS that are inter connected with\nnvlink or nvswitch.\n\nKey changes:\n- Add group_name and group_type tags to device_spec configuration\n- Create PciGroupResourceProvider class for Placement integration\n  with inventory\u003d1 ensuring atomic consumption\n- Extend PCI alias schema to support group_type field\n- Add NUMA affinity filtering for group pools (strict, socket, prefer)\n- Implement live_migratable handling for groups using most restrictive\n  value across all devices in the group\n- Add group pool isolation to prevent non-group requests from claiming\n  grouped devices by vendor/product ID matching\n\nConfiguration requires report_in_placement\u003dTrue and groups must have\nat least 2 devices with matching group_type values.\n\nIncludes comprehensive unit tests, functional tests for boot, suspend,\nresume, live migration, and heterogeneous device groups. Also adds\ndeveloper deep-dive documentation for PCI passthrough architecture.\n\nGenerated-By: Claude Opus 4.5\nChange-Id: I4cb8e8b62860fff9739d1aa0d3d4b4b9d94b3922\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/0fb12cb9781878200323447da95a456e12881a7f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/0fb12cb9781878200323447da95a456e12881a7f"}]},"branch":"refs/heads/master"},"85df4e06e4ae49d8c972550a422f37f2be649e54":{"kind":"REWORK","_number":2,"created":"2026-01-16 18:24:45.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/04/973604/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/04/973604/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/04/973604/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/04/973604/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/04/973604/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/04/973604/2"}}},"commit":{"parents":[{"commit":"f43c64c56cf319424dd7f1ea2a444fb8194b4e87","subject":"Merge \"Migrate upper functional job to Python 3.13\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/f43c64c56cf319424dd7f1ea2a444fb8194b4e87"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-01-16 11:38:53.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-01-16 18:24:28.000000000","tz":0},"subject":"[WIP] Add PCI device groups for atomic allocation","message":"[WIP] Add PCI device groups for atomic allocation\n\nImplement PCI device groups feature allowing operators to define\ngroups of PCI devices that must be scheduled and allocated as an\nindivisible unit. This is essential for accelerator devices like\nGraphcore IPUs that consist of multiple physical PCI devices that\nmust work together or Nvidia GPUS that are inter connected with\nnvlink or nvswitch.\n\nKey changes:\n- Add group_name and group_type tags to device_spec configuration\n- Create PciGroupResourceProvider class for Placement integration\n  with inventory\u003d1 ensuring atomic consumption\n- Extend PCI alias schema to support group_type field\n- Add NUMA affinity filtering for group pools (strict, socket, prefer)\n- Implement live_migratable handling for groups using most restrictive\n  value across all devices in the group\n- Add group pool isolation to prevent non-group requests from claiming\n  grouped devices by vendor/product ID matching\n\nConfiguration requires report_in_placement\u003dTrue and groups must have\nat least 2 devices with matching group_type values.\n\nIncludes comprehensive unit tests, functional tests for boot, suspend,\nresume, live migration, and heterogeneous device groups. Also adds\ndeveloper deep-dive documentation for PCI passthrough architecture.\n\nGenerated-By: Claude Opus 4.5\nChange-Id: I4cb8e8b62860fff9739d1aa0d3d4b4b9d94b3922\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/85df4e06e4ae49d8c972550a422f37f2be649e54"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/85df4e06e4ae49d8c972550a422f37f2be649e54"}]},"branch":"refs/heads/master"},"7c4bcba6c534e65ab4fd669b5ab0479275dfb1b4":{"kind":"REWORK","_number":3,"created":"2026-01-23 18:52:48.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/04/973604/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/04/973604/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/04/973604/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/04/973604/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/04/973604/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/04/973604/3"}}},"commit":{"parents":[{"commit":"7579dbdf0e721707e7c6b0e705a2763c0a3fdd95","subject":"Merge \"Use *_OR_ADMIN policy defaults for server shares\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/7579dbdf0e721707e7c6b0e705a2763c0a3fdd95"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-01-16 11:38:53.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-01-23 18:52:15.000000000","tz":0},"subject":"[WIP] Add PCI device groups for atomic allocation","message":"[WIP] Add PCI device groups for atomic allocation\n\nImplement PCI device groups feature allowing operators to define\ngroups of PCI devices that must be scheduled and allocated as an\nindivisible unit. This is essential for accelerator devices like\nGraphcore IPUs that consist of multiple physical PCI devices that\nmust work together or Nvidia GPUS that are inter connected with\nnvlink or nvswitch.\n\nKey changes:\n- Add group_name and group_type tags to device_spec configuration\n- Create PciGroupResourceProvider class for Placement integration\n  with inventory\u003d1 ensuring atomic consumption\n- Extend PCI alias schema to support group_type field\n- Add NUMA affinity filtering for group pools (strict, socket, prefer)\n- Implement live_migratable handling for groups using most restrictive\n  value across all devices in the group\n- Add group pool isolation to prevent non-group requests from claiming\n  grouped devices by vendor/product ID matching\n\nConfiguration requires report_in_placement\u003dTrue and groups must have\nat least 2 devices with matching group_type values.\n\nIncludes comprehensive unit tests, functional tests for boot, suspend,\nresume, live migration, and heterogeneous device groups. Also adds\ndeveloper deep-dive documentation for PCI passthrough architecture.\n\nGenerated-By: Claude Opus 4.5\nChange-Id: I4cb8e8b62860fff9739d1aa0d3d4b4b9d94b3922\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/7c4bcba6c534e65ab4fd669b5ab0479275dfb1b4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/7c4bcba6c534e65ab4fd669b5ab0479275dfb1b4"}]},"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","applied_by":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}},{"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":["label:Workflow\u003dMIN"],"failing_atoms":["label:Workflow\u003dMAX"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
