)]}'
{"id":"openstack%2Fplacement~938943","triplet_id":"openstack%2Fplacement~stable%2F2024.1~I4f8c8491d21426310a82df7186b7689b2dad253e","project":"openstack/placement","branch":"stable/2024.1","topic":"bug/2070257","attention_set":{},"removed_from_attention_set":{"9708":{"account":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"last_update":"2025-04-11 08:30:14.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I4f8c8491d21426310a82df7186b7689b2dad253e","subject":"Factor out allocation candidate generation strategy","status":"MERGED","created":"2025-01-10 17:03:03.000000000","updated":"2025-04-11 08:31:10.000000000","submitted":"2025-04-11 08:30:14.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"938943-bug/2070257","meta_rev_id":"3c118a057d3ed8cba20137255fb64ebed8e420a6","_number":938943,"virtual_id_number":938943,"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":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-04-11 08:30: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":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"all":[{"value":2,"date":"2025-02-03 16:48:46.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":2,"date":"2025-02-27 12:35:52.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":0,"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":1,"date":"2025-02-27 12:35:52.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-01-10 18:46:20.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2025-02-03 16:48:46.000000000","updated_by":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"reviewer":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"state":"REVIEWER"},{"updated":"2025-02-27 12:35:52.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"}],"messages":[{"id":"0912e1896dcb184cc448df4f15b2a4da539333c8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2025-01-10 17:03:03.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c8d2e4f48c5e18bd14bdd26359adae8fc6cea85f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-01-10 18:46:20.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3e039dceba934fa99b242547c3550579\n\n- grenade https://zuul.opendev.org/t/openstack/build/ef1434cac1754ba4b2e5327d40dde9e0 : SUCCESS in 1h 15m 43s\n- grenade-skip-level https://zuul.opendev.org/t/openstack/build/0245813b837149d684b33a1dce959050 : SUCCESS in 1h 01m 43s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/3217fb27a6084d06ab80036fbc9b1158 : SUCCESS in 1h 31m 39s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/8f50bed1de1c4881a0026b7bfbd18e85 : SUCCESS in 37m 53s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/73106ef3097d463f87febdc0a00c7f07 : SUCCESS in 5m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c1d7fce65d454407bb46334b330b00b7 : SUCCESS in 4m 59s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/73c91cc1cf57413c87fe3a230269a065 : SUCCESS in 4m 43s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/71a709ba535e43eea1d7c06c18ed8ddc : SUCCESS in 4m 08s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fccfe8145772490eab3c7cca2ba6b82d : SUCCESS in 7m 34s\n- openstack-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/95e394add63646edb7e8f70ee9bef0de : SUCCESS in 4m 07s\n- openstack-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/04aee29e39a54298bd2b2730984cc77a : SUCCESS in 6m 24s\n- placement-nova-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/bdf3129661324230a20a1413588c270e : SUCCESS in 23m 01s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/bad17214eb824e718cc1b53465d3a100 : SUCCESS in 18m 51s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/0a29dac1ed634720af1fd1b321d935b4 : FAILURE in 2m 42s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/497d74dc62fe4d4a84fc7904d9891b4a : SUCCESS in 38m 22s","accounts_in_message":[],"_revision_number":1},{"id":"d6b9722908706b1763c0cbfafc09a668f334051d","author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"date":"2025-02-03 16:48:46.000000000","message":"Patch Set 1: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"022af2fbda953d6f0984af069531e00c5bd7a9ca","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-02-27 12:35:52.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"663d0d76daca54d450592b07c82b0f2a79e09cca","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-02-27 12:36:37.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"a670e0ee31126de8931962108b2bb69c6ac3693f","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-02-28 01:04:21.000000000","message":"Patch Set 1: Verified-2\n\nThis change depends on a change that failed to merge.\n\nChange https://review.opendev.org/938942 is needed.","accounts_in_message":[],"_revision_number":1},{"id":"0ae26e5ecbb948c4df6a25888e6507cde92309a1","author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"date":"2025-04-11 06:05:12.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"37a34bbd9164ec7e854275a2fd759197e486a65d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-11 07:05:45.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6694ef7233824fe88477abc123441a26\n\n- grenade https://zuul.opendev.org/t/openstack/build/e4bd8227fe694e79a4443f50166d2286 : SUCCESS in 39m 20s\n- grenade-skip-level https://zuul.opendev.org/t/openstack/build/ccd970fee1ab4ba9840b62483dcc3510 : SUCCESS in 36m 13s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/3c212977beb444f5b1dc2e57255d82ef : SUCCESS in 59m 32s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/2967619976d54e469c93437d280b5dc0 : SUCCESS in 24m 28s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6a4b88acee85409d8ba189ba8882163b : SUCCESS in 3m 56s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fbe6a777d9c24cfbbf3182a604bfba7e : SUCCESS in 3m 45s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/d2339ce0d947436594cf32f6c61d89b7 : SUCCESS in 4m 14s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/17b864dfb41a44cb8f6ca3de04c743a7 : SUCCESS in 3m 41s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/da3e512da2054e44bc70b013a8c69984 : SUCCESS in 6m 24s\n- openstack-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/802ba4bd8ea0450faa16a8539431ae6c : SUCCESS in 5m 36s\n- openstack-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/1c1b293548c54c9091284afe7b7cf78c : SUCCESS in 3m 06s\n- placement-nova-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/5e882346ada54d39956fca313a509221 : SUCCESS in 15m 01s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/fa13e0a757864304b3a883b93e63260a : SUCCESS in 10m 35s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/7f644054f6c04e97b59404f540173673 : FAILURE in 2m 52s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/15114cfb091f4744826a217db3a54ade : SUCCESS in 33m 52s","accounts_in_message":[],"_revision_number":1},{"id":"7a3662a75ab812b6a9c60dcbae42f478f2ee903a","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-11 07:06:16.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"8e27fa28f9c9b97991af92cfd0f660781c13a0c0","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-11 08:30:14.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/97ff106ae56643b39356928f52697900\n\n- grenade https://zuul.opendev.org/t/openstack/build/a759fb7f49324acab31e657fac85f28f : SUCCESS in 47m 36s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/5be0346eedfb41a8805a82da4b084ffa : SUCCESS in 1h 16m 17s\n- grenade-skip-level https://zuul.opendev.org/t/openstack/build/c9f15aee9263459fb558fee1ecb852ca : SUCCESS in 1h 01m 13s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/813403e89352455e8c28474108926c1c : SUCCESS in 32m 47s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/399ea55ee6814307adac06ee815dd747 : SUCCESS in 4m 31s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/bcbc9487bb6c4cfa9422cd68eeb88ecb : SUCCESS in 4m 02s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/bbd4a3e0660844798a3b3cc746f1aaa6 : SUCCESS in 3m 58s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7f74881b03a34d4c851e6fa7b3012d45 : SUCCESS in 6m 33s\n- openstack-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/058473a42a0d4d5ca29a9d92bee415de : SUCCESS in 5m 27s\n- openstack-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/7911fd66cdbe451c86ff3f9d5429afc1 : SUCCESS in 6m 52s\n- placement-nova-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/0ce2ad8d5d4f43679fe82c2b49248dfb : SUCCESS in 19m 08s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/b1042a45d09044c7b0e1cf40ec6c6ec9 : SUCCESS in 25m 19s","accounts_in_message":[],"_revision_number":1},{"id":"775d570e72082825b97b1553584116696ef7710a","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-11 08:30:14.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"3c118a057d3ed8cba20137255fb64ebed8e420a6","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-04-11 08:31:10.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1c3e4bd27f2e4fc8a4bbdbbb7476e9aa\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a421a3b811ff4035855f1ec19d301d3d : SUCCESS in 38s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"dc4ffdc4f88e5ac5c6b8fecd3d4ec88c12687a57","revisions":{"dc4ffdc4f88e5ac5c6b8fecd3d4ec88c12687a57":{"kind":"REWORK","_number":1,"created":"2025-01-10 17:03:03.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/43/938943/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/43/938943/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/43/938943/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/43/938943/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/43/938943/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/43/938943/1"}}},"commit":{"parents":[{"commit":"47ee16bdc83e9959c6f617be8fd93383394ca2bd","subject":"Add a global limit on the number of allocation candidates","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/47ee16bdc83e9959c6f617be8fd93383394ca2bd"}]}],"author":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-12-06 15:47:53.000000000","tz":60},"committer":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2025-01-10 17:02:46.000000000","tz":60},"subject":"Factor out allocation candidate generation strategy","message":"Factor out allocation candidate generation strategy\n\nThis is a pure refactor to pull out the logic of assembling an\nallocation candidate.\n\nThe _get_areq_list_generators returns a set of\ngenerators, one per root (anchoring) provider, that can generate all the\nviable candidates for that root by applying a product on the solutions\nfor each request groups.\n\nThe _generate_areq_lists implements the strategy of consuming these\ngenerators. The current behavior is that placement consumes the\ngenerator for the first root fully before moving to the next\n(depth-first).\n\nA later patch will change _generate_areq_lists to be able to apply\ndifferent strategies, like round-robin easily.\n\nRelated-Bug: #2070257\nChange-Id: I4f8c8491d21426310a82df7186b7689b2dad253e\n(cherry picked from commit 04718d65b60e817b5f47c5a3f50e302fe2302dfd)\n(cherry picked from commit 1b0a927203ec779be631e3c61b9d6e4c7231cdec)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/dc4ffdc4f88e5ac5c6b8fecd3d4ec88c12687a57"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/dc4ffdc4f88e5ac5c6b8fecd3d4ec88c12687a57"}]},"branch":"refs/heads/stable/2024.1"}},"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
