)]}'
{"id":"openstack%2Fplacement~997617","triplet_id":"openstack%2Fplacement~master~I9bac03b0162009cdcea024f091bf63b177eaa279","project":"openstack/placement","branch":"master","topic":"bug/2160721","attention_set":{},"removed_from_attention_set":{"4690":{"account":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"last_update":"2026-07-24 23:01:51.000000000","reason":"\u003cGERRIT_ACCOUNT_4690\u003e replied on the change","reason_account":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}},"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-07-27 11:01:55.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"}},"9708":{"account":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"last_update":"2026-07-27 17:43:14.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I9bac03b0162009cdcea024f091bf63b177eaa279","subject":"Check overall capacity before generating candidates","status":"MERGED","created":"2026-07-16 16:35:50.000000000","updated":"2026-07-27 17:45:22.000000000","submitted":"2026-07-27 17:43:14.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":33,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"997617-bug/2160721","meta_rev_id":"e3fee593f9da99fb9daf1f38dee16f37c0137553","_number":997617,"virtual_id_number":997617,"owner":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-07-27 17:43:14.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":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"all":[{"value":2,"date":"2026-07-24 23:01:51.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":2,"date":"2026-07-27 11:01:55.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"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":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"all":[{"value":1,"date":"2026-07-24 23:01:51.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"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":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"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":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-16 17:52:47.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-07-17 17:19:52.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"state":"REVIEWER"},{"updated":"2026-07-22 22:14:44.000000000","updated_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"reviewer":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"state":"CC"},{"updated":"2026-07-24 23:01:51.000000000","updated_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"reviewer":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"state":"REVIEWER"}],"messages":[{"id":"f49ecf1132e3bc35a52a794dc56e4392e79d1f84","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2026-07-16 16:35:50.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"b69b123ab51ce08bf546429f01906213c9c5a5ca","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2026-07-16 16:42:06.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"a4a6d4fd5ffa649f73d1e8728b354883698a8960","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-16 17:52:47.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4947e63408914ae28c282ea3f7355ed3\n\n- grenade https://zuul.opendev.org/t/openstack/build/050e9344b28147dfac40c1fd2997d50f : SUCCESS in 53m 56s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/ef141a7bf78c4741845d084419691b58 : SUCCESS in 1h 07m 23s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/4c60895717314aa9a62b6689dc99adfb : SUCCESS in 1h 14m 40s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/59bcf6f7b58a4a21954391a6d11031dc : SUCCESS in 58m 03s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/5685b4f9694b462b9e00d9dd32f72cf6 : SUCCESS in 15m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c0a4f9a1da5a411690251c2c471ed8af : SUCCESS in 5m 03s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/ccff1cdad6cf48d3aa1d625d7543afab : SUCCESS in 5m 38s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/26673c3b1fc14b7288dbb0de568f17d4 : SUCCESS in 4m 27s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ada81eaffcdb40fe8c44c0b7dafffb94 : FAILURE in 7m 46s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/98618f3e479b4a4f89ab1805fba1d542 : SUCCESS in 8m 25s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3adf241954ef4bf3b49b2b6ed7d7ab27 : SUCCESS in 9m 28s\n- openstack-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/b11ef7f4aeb44fdcaf3844c214dcecea : SUCCESS in 6m 42s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/6575d09c99c64b8e819bb2584efdc942 : SUCCESS in 5m 15s\n- openstack-tox-functional-py314 https://zuul.opendev.org/t/openstack/build/c415de82b4964330a745c5451f3fe615 : SUCCESS in 9m 46s (non-voting)\n- placement-nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/353b0adc0f5148d09bfa1b9985779413 : SUCCESS in 21m 45s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/8546021f44ac4e0a941e28d6a636a98c : FAILURE in 3m 30s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/abb6f2c91ce44d99ac367641f00d887c : FAILURE in 3m 04s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/6fff848930d04e3eb994800e749e7fee : SUCCESS in 1h 07m 50s","accounts_in_message":[],"_revision_number":1},{"id":"3d0fea5f9f0d6d7f0c1562eb70e27cb39019a255","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2026-07-17 12:15:08.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"276488cdc34a9622a6b04e2aad017db1814b5286","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-17 14:02:13.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/51cf63db8e874e88a0d4632ff19928d7\n\n- grenade https://zuul.opendev.org/t/openstack/build/55ef1d0f024042aab4936590cfcfe506 : SUCCESS in 1h 04m 38s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/e9bde34983bf402f83146662c89426fc : SUCCESS in 1h 02m 46s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/328b8ff27351493890518379231c6a5d : SUCCESS in 1h 40m 20s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/baf6d30fb67840ca8d3b572329d6069a : SUCCESS in 58m 11s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/a2d83c3f42fc4d20acc7105e6486cbec : SUCCESS in 19m 14s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3dd048388cd44f4697c30db84a79737f : SUCCESS in 4m 49s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/cb474b0a343244c0918f7b138edf395b : SUCCESS in 4m 24s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4d77c6d726e340edbaf55ee9c2bee682 : SUCCESS in 7m 19s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/176f24f1c46e46fcbd6a1a11040bfea4 : FAILURE in 6m 49s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/489c0073bd904ffea5e92c7ce095fe5e : SUCCESS in 8m 47s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ffa694213e054a94a893016dd9e0fbe4 : SUCCESS in 9m 18s\n- openstack-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/d07d59948ee045daa385b2c0dc61cd9a : SUCCESS in 5m 05s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/a38a1fa1d1b44328bd1510af7da2d0eb : SUCCESS in 5m 21s\n- openstack-tox-functional-py314 https://zuul.opendev.org/t/openstack/build/918bffdc4a354340ab1d3d6692fd9993 : SUCCESS in 7m 28s (non-voting)\n- placement-nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/8e39355d8f3e4b72a9ffdf28dc933af6 : SUCCESS in 24m 10s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/e0e232c21eee4215956c4c7b313eaff2 : FAILURE in 3m 29s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/e1d01e6a123f42bb882a605dd8c0e2d0 : FAILURE in 3m 57s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/c06397873d75433ba187af33f38a34a4 : SUCCESS in 59m 34s","accounts_in_message":[],"_revision_number":2},{"id":"0165cb1b848e031604e788e58ad6f3834c65dc7e","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-17 17:19:52.000000000","message":"Patch Set 2: Code-Review+1\n\n(12 comments)","accounts_in_message":[],"_revision_number":2},{"id":"c050a5e5d50f185e62bd28e43db9a3ffa064f9b3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2026-07-21 08:51:16.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"e5ef5b21a8ae1e74a9468750c5b907c88638f1e4","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2026-07-21 08:51:47.000000000","message":"Patch Set 3:\n\n(5 comments)","accounts_in_message":[],"_revision_number":3},{"id":"f3d5775719694377a7685011b8b274e375972c64","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2026-07-21 08:51:58.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"c2c7652a056be0e65fd7f62cb24a7de7c1ca4422","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-21 09:52:32.000000000","message":"Patch Set 3: Code-Review+2\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"0b8a4c905ff51dab99e97a80d0dd96c3736a2c1e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-21 10:23:02.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ff1b5e8e8f1e42fbaefb6bf290573a7b\n\n- grenade https://zuul.opendev.org/t/openstack/build/e316c9f0e08148b1b4d97ae8236de3cc : SUCCESS in 1h 18m 31s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5f292a42fa6342feb984eb4244fb5289 : SUCCESS in 1h 00m 44s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/5fb314194ce144d3a645cd3d4c0a0c47 : SUCCESS in 1h 24m 16s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/f7fda32c15a145eb8d47224a4f84807a : SUCCESS in 1h 01m 53s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/c659790b67874a8bb14d14ee5d608302 : SUCCESS in 13m 44s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0809d74515b34196bdc99a9884014e69 : SUCCESS in 4m 47s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2fa61f2cbaf44e1094275bbded79841d : SUCCESS in 4m 14s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b61a0f5407464c3f86147c1522c6f69e : SUCCESS in 4m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/dd93bd085db54388af913ca94d0d922a : FAILURE in 6m 16s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/294a27e6cf9540629fafb7163651e384 : SUCCESS in 7m 46s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/8e33888295a143a7a3974e9e40662a6d : SUCCESS in 9m 50s\n- openstack-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/b8e52ea3c5dc4679a0310cdd1dc23e2e : SUCCESS in 5m 26s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/05459ba7802449c7bcdffcfb3551e3dd : SUCCESS in 6m 03s\n- openstack-tox-functional-py314 https://zuul.opendev.org/t/openstack/build/13f97dcbc4504abd82ee39958b0a22ee : SUCCESS in 10m 06s (non-voting)\n- placement-nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/eb3ff06ecff347c88c41036c2f2e34d1 : SUCCESS in 24m 28s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/35a0957e1e9a43038ed1cec0c9852a97 : FAILURE in 3m 22s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/a5c08af83ddf48e886ad9980f6c649ac : FAILURE in 3m 01s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/e1c3c7706c5f46058e5ea02ddf31e218 : SUCCESS in 55m 47s","accounts_in_message":[],"_revision_number":3},{"id":"2cfe18a0800309fb6c52f75b5cc5636b5437a049","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-07-22 22:14:44.000000000","message":"Patch Set 3:\n\n(5 comments)","accounts_in_message":[],"_revision_number":3},{"id":"5c418fde26d7b2419f23f5a5146054707b7d2244","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2026-07-24 18:33:19.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"1a3ff812829dc0e08b12a34a06f50ad1bf87c47e","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2026-07-24 18:34:07.000000000","message":"Patch Set 3:\n\n(5 comments)","accounts_in_message":[],"_revision_number":3},{"id":"0a245188ec002572625cc5b134ad4cded0e7f060","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-24 19:55:53.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1976214778d04e72934b1fa757633666\n\n- grenade https://zuul.opendev.org/t/openstack/build/ffb9e99397464fd8b57e404f0b8549cb : SUCCESS in 1h 11m 30s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/c278369bafd14fae894a75e010e9d95a : SUCCESS in 1h 06m 36s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/bdb2271d69864c7aa405a871184a582e : SUCCESS in 1h 17m 25s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/ab167ecb1f5641139a71400796629fdf : SUCCESS in 1h 00m 05s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/3970532569bc43b5ac9da4e20854046d : SUCCESS in 15m 26s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/edad4ecd4bd24f38aeab5fc112771b9f : SUCCESS in 5m 28s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/20dd364a99194188a36371ae9dbb3b37 : SUCCESS in 4m 18s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/77f2b4d316ad4681aea7b5ed7378e4fa : SUCCESS in 4m 00s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7b6702426605490487113ecee58b70fd : FAILURE in 5m 59s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d3f8d3408f874b30beadf8ac5a78e00c : SUCCESS in 8m 34s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/61b404bcfbc64f7586861e2bcb9701f9 : SUCCESS in 8m 30s\n- openstack-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/a9f328ce492241da948dc1c85510c753 : SUCCESS in 6m 33s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/d0f1d68469e047848531f81a792162a6 : SUCCESS in 5m 12s\n- openstack-tox-functional-py314 https://zuul.opendev.org/t/openstack/build/e55abe00d373495490950a87dce29d21 : SUCCESS in 7m 36s (non-voting)\n- placement-nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/d3d7f0f8bc0d44898db0968a1f6e6774 : SUCCESS in 19m 04s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/be7241adfe854112aaa282c3fef7b06c : FAILURE in 3m 24s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/ea1a404221a24e30852b305fa999d9aa : FAILURE in 3m 01s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/39c95f1a131e427398ae1a321537d8b5 : SUCCESS in 53m 43s","accounts_in_message":[],"_revision_number":4},{"id":"f5709562d037d9cb2eaf5079ffa9a2a15b58b4d3","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-07-24 23:01:51.000000000","message":"Patch Set 4: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"1718fb388423ffb78adb6aff8c877686d98b77d6","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-27 11:01:55.000000000","message":"Patch Set 4: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"eea7dfdc9df416a1909049d4fae318ee82297b1d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-27 15:30:43.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":4},{"id":"1cac381ef75340eb3975d3472b2c4930c62e4a10","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-27 17:43:14.000000000","message":"Patch Set 4: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ce2d0effe602412f87278e9887ad2625\n\n- grenade https://zuul.opendev.org/t/openstack/build/740384226e5b4a1e853943d08a378873 : SUCCESS in 1h 08m 40s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/76085bd4cdaf46e3ae0222f075ea165e : SUCCESS in 1h 34m 57s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/485ad47f555f43c6891401ef3fb17296 : SUCCESS in 1h 07m 59s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/4369736affb146ac94b44844bb7d2bd1 : SUCCESS in 58m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2a43b89cd51a4ec69733f9a81050013f : SUCCESS in 5m 54s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4813c7016380482093c1bcc81685425c : SUCCESS in 5m 08s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0dfe73923ca843bab0775c11a7310bb4 : SUCCESS in 6m 43s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2887ea66ff9349dfb4babd917201e79a : SUCCESS in 9m 19s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/180c9182e59e404fb9fd82cd57be7caf : SUCCESS in 10m 07s\n- openstack-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/e2bcaf0bda394554889fed1522fb5188 : SUCCESS in 6m 21s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/bf2547be31cb47a097ad9bb5f9b8d2f5 : SUCCESS in 5m 57s\n- openstack-tox-functional-py314 https://zuul.opendev.org/t/openstack/build/06fbe92577fd47a7be974adcc3fea67d : SUCCESS in 8m 59s (non-voting)\n- placement-nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/8bd4f3f04836427e84f01000ca4d546e : SUCCESS in 22m 43s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/7beb0b192a684eaf88661e6f7b4ccf0c : SUCCESS in 39m 37s","accounts_in_message":[],"_revision_number":4},{"id":"aec9982b274ba89333a3261677908188f362710b","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-27 17:43:14.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":4},{"id":"e3fee593f9da99fb9daf1f38dee16f37c0137553","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-27 17:45:22.000000000","message":"Patch Set 4:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/687f2bd4218449c28925a7f5662689e1\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5f8760f7d607446cb7fd562fb2a84dd3 : SUCCESS in 44s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e2750aba34574b4c9c75124c71b1b4fd : SUCCESS in 48s","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"3457ecd69aa966c9f278c8bf7b2a90a5d9f96a3a","revisions":{"a33d0716298c524dd15554e172d1af4b5c8c2924":{"kind":"REWORK","_number":1,"created":"2026-07-16 16:35:50.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/17/997617/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/17/997617/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/17/997617/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/17/997617/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/17/997617/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/17/997617/1"}}},"commit":{"parents":[{"commit":"f97c829ca0ab9106e44070045ea0ba9b37f78eff","subject":"Reproduce bug 2160721","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/f97c829ca0ab9106e44070045ea0ba9b37f78eff"}]}],"author":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2026-07-16 16:19:09.000000000","tz":120},"committer":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2026-07-16 16:32:38.000000000","tz":120},"subject":"Check overall capacity before generating candidates","message":"Check overall capacity before generating candidates\n\nThis is a performance optimization for an edge case where\n* We have wide, symmetric provider trees. E.g. 10+ children RPs within a\n  tree providing the same type of resources\n* A GET allocation_candidates request that asks for 10+ request groups\n  of such resources\n* But the tree has less available resources left than the number of\n  requested groups by a small amount. I.e. the request almost fits but\n  does not.\n\nIn this case even the wide tree optimized allocation candidate\ngeneration algorithm produces a lot of partially valid candidates before\nit finds that the last (couple of) group in the request cannot be\nfulfilled. This takes excessive time.\n\nThis patch adds a check before the allocation candidate generation\nalgorithm runs. This check runs on each tree. It compares the total\nrequested resources per resource class with the total available\nresources per resource class in the tree and filters out the tree if it\nfinds that the overall pool of resources from the tree is not enough.\n\nAs testing shows that the cost of this pre-check is reasonable for the\nsimple cases too the pre-check is enabled unconditionally. However there\nis a small optimization in the pre-check. If a resource class only\nrequested in a single request group then it is ignored as our edge case\nis already eliminated when that group individually failed to be\nfulfilled. As an extension if the request has no resource class\nused in multiple groups, or only have a single group, then the pre-check\nis a no-op.\n\nCloses-Bug: #2160721\nSigned-off-by: Balazs Gibizer \u003cgibi@redhat.com\u003e\nChange-Id: I9bac03b0162009cdcea024f091bf63b177eaa279\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/a33d0716298c524dd15554e172d1af4b5c8c2924"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/a33d0716298c524dd15554e172d1af4b5c8c2924"}]},"branch":"refs/heads/master"},"98695d8b26d86d94d269b243a7939f224f622b14":{"kind":"REWORK","_number":2,"created":"2026-07-17 12:15:08.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/17/997617/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/17/997617/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/17/997617/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/17/997617/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/17/997617/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/17/997617/2"}}},"commit":{"parents":[{"commit":"f97c829ca0ab9106e44070045ea0ba9b37f78eff","subject":"Reproduce bug 2160721","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/f97c829ca0ab9106e44070045ea0ba9b37f78eff"}]}],"author":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2026-07-16 16:19:09.000000000","tz":120},"committer":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2026-07-17 12:14:54.000000000","tz":120},"subject":"Check overall capacity before generating candidates","message":"Check overall capacity before generating candidates\n\nThis is a performance optimization for an edge case where\n* We have wide, symmetric provider trees. E.g. 10+ children RPs within a\n  tree providing the same type of resources\n* A GET allocation_candidates request that asks for 10+ request groups\n  of such resources\n* But the tree has less available resources left than the number of\n  requested groups by a small amount. I.e. the request almost fits but\n  does not.\n\nIn this case even the wide tree optimized allocation candidate\ngeneration algorithm produces a lot of partially valid candidates before\nit finds that the last (couple of) group in the request cannot be\nfulfilled. This takes excessive time.\n\nThis patch adds a check before the allocation candidate generation\nalgorithm runs. This check runs on each tree. It compares the total\nrequested resources per resource class with the total available\nresources per resource class in the tree and filters out the tree if it\nfinds that the overall pool of resources from the tree is not enough.\n\nAs testing shows that the cost of this pre-check is reasonable for the\nsimple cases too the pre-check is enabled unconditionally. However there\nis a small optimization in the pre-check. If a resource class only\nrequested in a single request group then it is ignored as our edge case\nis already eliminated when that group individually failed to be\nfulfilled. As an extension if the request has no resource class\nused in multiple groups, or only have a single group, then the pre-check\nis a no-op.\n\nCloses-Bug: #2160721\nSigned-off-by: Balazs Gibizer \u003cgibi@redhat.com\u003e\nChange-Id: I9bac03b0162009cdcea024f091bf63b177eaa279\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/98695d8b26d86d94d269b243a7939f224f622b14"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/98695d8b26d86d94d269b243a7939f224f622b14"}]},"branch":"refs/heads/master"},"dfb9fc8d5fe069676b137e219f1c7097f4b0d4d3":{"kind":"REWORK","_number":3,"created":"2026-07-21 08:51:16.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/17/997617/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/17/997617/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/17/997617/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/17/997617/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/17/997617/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/17/997617/3"}}},"commit":{"parents":[{"commit":"f97c829ca0ab9106e44070045ea0ba9b37f78eff","subject":"Reproduce bug 2160721","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/f97c829ca0ab9106e44070045ea0ba9b37f78eff"}]}],"author":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2026-07-16 16:19:09.000000000","tz":120},"committer":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2026-07-21 08:49:52.000000000","tz":120},"subject":"Check overall capacity before generating candidates","message":"Check overall capacity before generating candidates\n\nThis is a performance optimization for an edge case where\n* We have wide, symmetric provider trees. E.g. 10+ children RPs within a\n  tree providing the same type of resources\n* A GET allocation_candidates request that asks for 10+ request groups\n  of such resources\n* But the tree has less available resources left than the number of\n  requested groups by a small amount. I.e. the request almost fits but\n  does not.\n\nIn this case even the wide tree optimized allocation candidate\ngeneration algorithm produces a lot of partially valid candidates before\nit finds that the last (couple of) group in the request cannot be\nfulfilled. This takes excessive time.\n\nThis patch adds a check before the allocation candidate generation\nalgorithm runs. This check runs on each tree. It compares the total\nrequested resources per resource class with the total available\nresources per resource class in the tree and filters out the tree if it\nfinds that the overall pool of resources from the tree is not enough.\n\nAs testing shows that the cost of this pre-check is reasonable for the\nsimple cases too the pre-check is enabled unconditionally. However there\nis a small optimization in the pre-check. If a resource class only\nrequested in a single request group then it is ignored as our edge case\nis already eliminated when that group individually failed to be\nfulfilled. As an extension if the request has no resource class\nused in multiple groups, or only have a single group, then the pre-check\nis a no-op.\n\nCloses-Bug: #2160721\nSigned-off-by: Balazs Gibizer \u003cgibi@redhat.com\u003e\nChange-Id: I9bac03b0162009cdcea024f091bf63b177eaa279\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/dfb9fc8d5fe069676b137e219f1c7097f4b0d4d3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/dfb9fc8d5fe069676b137e219f1c7097f4b0d4d3"}]},"branch":"refs/heads/master"},"3457ecd69aa966c9f278c8bf7b2a90a5d9f96a3a":{"kind":"REWORK","_number":4,"created":"2026-07-24 18:33:19.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/17/997617/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/17/997617/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/17/997617/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/17/997617/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/17/997617/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/17/997617/4"}}},"commit":{"parents":[{"commit":"f97c829ca0ab9106e44070045ea0ba9b37f78eff","subject":"Reproduce bug 2160721","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/f97c829ca0ab9106e44070045ea0ba9b37f78eff"}]}],"author":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2026-07-16 16:19:09.000000000","tz":120},"committer":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2026-07-24 18:33:07.000000000","tz":120},"subject":"Check overall capacity before generating candidates","message":"Check overall capacity before generating candidates\n\nThis is a performance optimization for an edge case where\n* We have wide, symmetric provider trees. E.g. 10+ children RPs within a\n  tree providing the same type of resources\n* A GET allocation_candidates request that asks for 10+ request groups\n  of such resources\n* But the tree has less available resources left than the number of\n  requested groups by a small amount. I.e. the request almost fits but\n  does not.\n\nIn this case even the wide tree optimized allocation candidate\ngeneration algorithm produces a lot of partially valid candidates before\nit finds that the last (couple of) group in the request cannot be\nfulfilled. This takes excessive time.\n\nThis patch adds a check before the allocation candidate generation\nalgorithm runs. This check runs on each tree. It compares the total\nrequested resources per resource class with the total available\nresources per resource class in the tree and filters out the tree if it\nfinds that the overall pool of resources from the tree is not enough.\n\nAs testing shows that the cost of this pre-check is reasonable for the\nsimple cases too the pre-check is enabled unconditionally. However there\nis a small optimization in the pre-check. If a resource class only\nrequested in a single request group then it is ignored as our edge case\nis already eliminated when that group individually failed to be\nfulfilled. As an extension if the request has no resource class\nused in multiple groups, or only have a single group, then the pre-check\nis a no-op.\n\nCloses-Bug: #2160721\nSigned-off-by: Balazs Gibizer \u003cgibi@redhat.com\u003e\nChange-Id: I9bac03b0162009cdcea024f091bf63b177eaa279\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/3457ecd69aa966c9f278c8bf7b2a90a5d9f96a3a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/3457ecd69aa966c9f278c8bf7b2a90a5d9f96a3a"}]},"branch":"refs/heads/master"}},"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":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}},{"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":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"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":{"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":"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":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
