)]}'
{"id":"openstack%2Fwatcher~988348","triplet_id":"openstack%2Fwatcher~master~I29e86aaadbf8bdf91759ab8f76fd303a2b64274f","project":"openstack/watcher","branch":"master","topic":"bug/2141951","attention_set":{"30002":{"account":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"last_update":"2026-07-27 11:09:34.000000000","reason":"\u003cGERRIT_ACCOUNT_34452\u003e replied on the change","reason_account":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}},"16312":{"account":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"last_update":"2026-06-11 11:36:55.000000000","reason":"\u003cGERRIT_ACCOUNT_30002\u003e replied on the change","reason_account":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}}},"removed_from_attention_set":{"26471":{"account":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"last_update":"2026-05-13 22:45:50.000000000","reason":"removed on reply"}},"hashtags":[],"change_id":"I29e86aaadbf8bdf91759ab8f76fd303a2b64274f","subject":"Add least_loaded host_choice for workload_stabilization strategy","status":"NEW","created":"2026-05-12 20:00:33.000000000","updated":"2026-07-27 11:09:34.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":8,"unresolved_comment_count":3,"has_review_started":true,"meta_rev_id":"cb4fac3ec83a39c95e56fdeed0ec0580c4b2d0d3","_number":988348,"virtual_id_number":988348,"owner":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-05-13 21:22:05.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"recommended":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":1,"date":"2026-05-13 22:45:50.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":1,"default_value":0,"optional":true},"Workflow":{"rejected":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"all":[{"value":-1,"date":"2026-05-29 12:49:33.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Standard Change","+1":"Important Change","+2":"High Priority Change"},"default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}],"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-05-12 22:07:22.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-05-12 22:58:35.000000000","updated_by":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"reviewer":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"state":"REVIEWER"},{"updated":"2026-06-09 16:52:12.000000000","updated_by":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"reviewer":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"state":"CC"},{"updated":"2026-07-27 11:09:34.000000000","updated_by":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"reviewer":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"state":"CC"}],"messages":[{"id":"e70d20e07f0ae602d025382168a7342444661f56","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-05-12 20:00:33.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"65be6194d6540553cd4001f22fab2798b74346c7","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-05-12 20:01:01.000000000","message":"Patch Set 1: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"d5137fd00248d997e14827fea170fb13c9162695","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-12 22:07:22.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6aed533ec1b648f3a7cb88a4fcf81cb0\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0f2a41fce5324ce0a3b7d78142ce6dc0 : SUCCESS in 7m 22s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/33b23aa354a8460992c4a05c4752192e : SUCCESS in 2m 41s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/60c95e7243df4ada95ddd35ec773a15c : SUCCESS in 5m 36s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5e3a9f1c764d45f1a2da7c1e15036e11 : SUCCESS in 5m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/87e8736fa0624e0399f515aedb7c67a9 : SUCCESS in 9m 04s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d8ec9f2ed1bc48b0a8b843b047265aeb : SUCCESS in 7m 34s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/285e6ae35741441dba8a72a4e2acc6ba : SUCCESS in 4m 28s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/a629a7312f9044a190783fd7d41f6f39 : SUCCESS in 4m 35s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/bc804d72865d4112b2b755940ef6fbb2 : SUCCESS in 51m 19s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/a2bf25c074d449e49483a7dc4bd2b6e8 : SUCCESS in 24m 01s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/b7c6fa10e66b4066b1e28df6142869b9 : SUCCESS in 42m 37s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/e9006364cdaf43dcb0dac3ab2bf424ff : SUCCESS in 1h 57m 11s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/a4e6cbf936514356a18ecc3f1e29ed33 : SUCCESS in 1h 58m 33s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/d7aaaed06d5949cf92361c7ead0f789f : SUCCESS in 1h 03m 11s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/414de92e2d964407aecbef3545f3b7d5 : SUCCESS in 1h 58m 45s","accounts_in_message":[],"_revision_number":1},{"id":"7c349284873c802a03febcb4b9076af25a302b6c","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-05-12 22:58:35.000000000","message":"Patch Set 1: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/b88c90ce8eed4b18ae7eac764bc8f07f\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/fecbc8d0fcb44544b19b53f31961dbaf : SUCCESS in 2h 56m 22s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/ae4fdb6d3b6a45c685f6a4a2e5825536 : SUCCESS in 2h 12m 52s","accounts_in_message":[],"_revision_number":1},{"id":"2f5675646388056642952539a95a5602859b9240","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-05-13 11:07:54.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.\n\nCopied Votes:\n* Code-Review+1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n* Workflow-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"c4992026a6f7e64b6472f63faebe5cbe0841049f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-13 13:14:13.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/60b3052dc71d46c388d819ce1bbf85f6\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/4e527fb7a75c4735945fb42cfc5e29de : SUCCESS in 7m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/54922922a75346d59ab0563e051515dd : SUCCESS in 2m 24s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/0311e0a0227c4cdab2b1217bccb4ff6a : SUCCESS in 5m 21s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/49d014ee804a49b79e004784af841b02 : SUCCESS in 5m 33s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/e2bd84614a354dcdb20d27e8487d8a6d : SUCCESS in 10m 33s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8b70cd9297664552b9d22121d0828741 : SUCCESS in 9m 40s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/fec113507f714ab6bac45301ac7e538e : SUCCESS in 4m 21s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/cc58e5afa0ae48d897109a4d75a539b9 : SUCCESS in 4m 15s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/b36d71a57e8145c48ea607a728bf504b : SUCCESS in 53m 17s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/42ba1c0e096c49f796b4925fd0cb81a1 : SUCCESS in 52m 31s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/13e40f31302b4a869e8b03bd8b537d56 : SUCCESS in 37m 12s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/54949b9a4259432482c80218cd23f91a : SUCCESS in 1h 38m 33s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/23a714b25d774d9782ff889b89d17c35 : SUCCESS in 1h 04m 22s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/50b44e4e7db24f7785d6b6a80fa1dc1f : SUCCESS in 2h 01m 39s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/0c215cfe414b4783a352c543c13cb220 : SUCCESS in 1h 03m 58s","accounts_in_message":[],"_revision_number":2},{"id":"8cb85beb6b96c5ee075dcb8fba0370e2954150a4","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-05-13 15:03:01.000000000","message":"Patch Set 2: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/9ef52ab9eb984637abb3d68a08384f71\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/9e7a859e84a046bcb3c0a62acb8342be : SUCCESS in 3h 53m 51s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/9971e687a5184e7b8c085920bd72c759 : SUCCESS in 2h 12m 49s","accounts_in_message":[],"_revision_number":2},{"id":"28225e8336e09f9333bb460deba589dda22a77d4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-05-13 19:12:09.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":"2980e22293a2dd9f142d5f9fc182bece05c4b897","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-05-13 19:50:59.000000000","message":"Uploaded patch set 4: Patch Set 3 was rebased.","accounts_in_message":[],"_revision_number":4},{"id":"6bb23e5a12b01c65a94b5f10195fcf8ab761502a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-13 21:22:05.000000000","message":"Patch Set 4: Verified-1\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/4344372afb1d4d659872fef7ea61822b\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/42e45e8cd3874096a3fd2c5942730d29 : SUCCESS in 5m 46s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f88990aa8d324e51a3fd73f520a40581 : SUCCESS in 4m 14s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/cc0272e0a8b148e8a65e041a2535e607 : SUCCESS in 5m 11s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/3ecc263dff29443fb3444bce807f6a90 : SUCCESS in 6m 50s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d80c8726d6284d27a2f47c338a55cd29 : SUCCESS in 9m 32s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a4e439a2da024769b30ee98dcbe0a57b : SUCCESS in 11m 16s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/81bbce59022d4ebb89419292b543f1aa : SUCCESS in 5m 06s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/611f2b33cac04a6d9b38ea1388a10183 : SUCCESS in 3m 32s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/bba30eefc22645a782a2ada0357491f9 : SUCCESS in 52m 39s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/8409f5494fb647538d3d2ce1cb4d3a39 : SUCCESS in 57m 22s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/2374bca9f10d4701a1ab9a6c82d90a46 : SUCCESS in 28m 39s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/b74f885f1e534c1ba40c1a904b8cfb90 : SUCCESS in 1h 09m 23s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/777608bbd50e40de88d8e3a7baa4de79 : SUCCESS in 1h 13m 16s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/f8942652fcea49c6a183c95a4f773309 : FAILURE in 1h 29m 53s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/ad6612f0e84c4ad3aa4931881daa93f7 : SUCCESS in 1h 15m 53s","accounts_in_message":[],"_revision_number":4},{"id":"01ebc3f445bbfd24679bc312d64e9908adc1e807","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-05-13 22:45:50.000000000","message":"Patch Set 4: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/7edc199b0d684fa0b6212704cd52a57b\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/0b0c198f10254927b4e90d32ad3bab66 : SUCCESS in 2h 53m 28s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/670b207d3b7a41a4a0ebcda5e6bbed90 : SUCCESS in 2h 08m 21s","accounts_in_message":[],"_revision_number":4},{"id":"fb589dc66fcbcf6fe2bc87a6c9d31b34e8b1ef71","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-05-29 12:49:33.000000000","message":"Patch Set 4: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"3a66e735e52e55fcc478841060576dd52e8dc97c","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-06-09 16:52:12.000000000","message":"Patch Set 4:\n\n(3 comments)","accounts_in_message":[],"_revision_number":4},{"id":"d2b071a3948de1532ef372256e62eab3bb6fb699","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-06-10 10:15:38.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"ff35192a5c4aa017594190e7bca5fa4ddf39b338","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-06-11 11:36:55.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"cb4fac3ec83a39c95e56fdeed0ec0580c4b2d0d3","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-07-27 11:09:34.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"9094aac6bb45992885e508d92de4349baf7c4023","revisions":{"9dee4bd877122a32588a1dc380061dbe802e1820":{"kind":"REWORK","_number":1,"created":"2026-05-12 20:00:33.000000000","uploader":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"ref":"refs/changes/48/988348/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/48/988348/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/48/988348/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/48/988348/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/48/988348/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/48/988348/1"}}},"commit":{"parents":[{"commit":"9f689f41a32df33ce61490d1ab0124857f6e518f","subject":"Replace global lockutils locks with per-instance RLock","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/9f689f41a32df33ce61490d1ab0124857f6e518f"}]}],"author":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-05-12 19:32:35.000000000","tz":-180},"committer":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-05-12 20:00:16.000000000","tz":-180},"subject":"Add least_loaded host_choice for workload_stabilization strategy","message":"Add least_loaded host_choice for workload_stabilization strategy\n\nIntroduce a new destination host selection mode, \u0027least_loaded\u0027, for\nthe workload_stabilization strategy. When selected, the strategy\nevaluates only the N lightest nodes (by weighted metric load) as\nmigration destinations, rather than cycling, sampling randomly, or\nscanning all hosts.\n\nNew parameter:\n* least_loaded_count: number of least-loaded destination hosts to\n  evaluate. Hosts are ranked by a normalized weighted load across\n  all configured metrics.\n\nNew helpers used by least_loaded:\n* _calculate_weighted_loads(): normalises host metrics and computes a\n  single weighted load scalar per host.\n* get_least_loaded_hosts(): returns the N hosts with the lowest\n  weighted load, sorted ascending.\n\nPartial-Bug: #2141951\nCo-Authored-By: Claude Sonnet 4.6\nChange-Id: I29e86aaadbf8bdf91759ab8f76fd303a2b64274f\nSigned-off-by: Douglas Viroel \u003cviroel@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/9dee4bd877122a32588a1dc380061dbe802e1820"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/9dee4bd877122a32588a1dc380061dbe802e1820"}]},"branch":"refs/heads/master"},"2c013a5ad73bcd595df7a2149d7990b107982381":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-05-13 11:07:54.000000000","uploader":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"ref":"refs/changes/48/988348/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/48/988348/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/48/988348/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/48/988348/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/48/988348/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/48/988348/2"}}},"commit":{"parents":[{"commit":"bef15026f51cd20d292da62a9a52ef37c1058ffa","subject":"Replace global lockutils locks with per-instance RLock","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/bef15026f51cd20d292da62a9a52ef37c1058ffa"}]}],"author":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-05-12 19:32:35.000000000","tz":-180},"committer":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-05-13 11:07:23.000000000","tz":-180},"subject":"Add least_loaded host_choice for workload_stabilization strategy","message":"Add least_loaded host_choice for workload_stabilization strategy\n\nIntroduce a new destination host selection mode, \u0027least_loaded\u0027, for\nthe workload_stabilization strategy. When selected, the strategy\nevaluates only the N lightest nodes (by weighted metric load) as\nmigration destinations, rather than cycling, sampling randomly, or\nscanning all hosts.\n\nNew parameter:\n* least_loaded_count: number of least-loaded destination hosts to\n  evaluate. Hosts are ranked by a normalized weighted load across\n  all configured metrics.\n\nNew helpers used by least_loaded:\n* _calculate_weighted_loads(): normalises host metrics and computes a\n  single weighted load scalar per host.\n* get_least_loaded_hosts(): returns the N hosts with the lowest\n  weighted load, sorted ascending.\n\nPartial-Bug: #2141951\nCo-Authored-By: Claude Sonnet 4.6\nChange-Id: I29e86aaadbf8bdf91759ab8f76fd303a2b64274f\nSigned-off-by: Douglas Viroel \u003cviroel@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/2c013a5ad73bcd595df7a2149d7990b107982381"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/2c013a5ad73bcd595df7a2149d7990b107982381"}]},"branch":"refs/heads/master"},"d3171729b93c5891148b8203702d30fc6e83b140":{"kind":"REWORK","_number":3,"created":"2026-05-13 19:12:09.000000000","uploader":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"ref":"refs/changes/48/988348/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/48/988348/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/48/988348/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/48/988348/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/48/988348/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/48/988348/3"}}},"commit":{"parents":[{"commit":"bef15026f51cd20d292da62a9a52ef37c1058ffa","subject":"Replace global lockutils locks with per-instance RLock","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/bef15026f51cd20d292da62a9a52ef37c1058ffa"}]}],"author":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-05-12 19:32:35.000000000","tz":-180},"committer":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-05-13 18:41:41.000000000","tz":-180},"subject":"Add least_loaded host_choice for workload_stabilization strategy","message":"Add least_loaded host_choice for workload_stabilization strategy\n\nIntroduce a new destination host selection mode, \u0027least_loaded\u0027, for\nthe workload_stabilization strategy. When selected, the strategy\nevaluates only the N lightest nodes (by weighted metric load) as\nmigration destinations, rather than cycling, sampling randomly, or\nscanning all hosts.\n\nNew parameter:\n* least_loaded_count: number of least-loaded destination hosts to\n  evaluate. Hosts are ranked by a normalized weighted load across\n  all configured metrics.\n\nNew helpers used by least_loaded:\n* _calculate_weighted_loads(): normalises host metrics and computes a\n  single weighted load scalar per host.\n* get_least_loaded_hosts(): returns the N hosts with the lowest\n  weighted load, sorted ascending.\n\nPartial-Bug: #2141951\nCo-Authored-By: Claude Sonnet 4.6\nChange-Id: I29e86aaadbf8bdf91759ab8f76fd303a2b64274f\nSigned-off-by: Douglas Viroel \u003cviroel@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/d3171729b93c5891148b8203702d30fc6e83b140"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/d3171729b93c5891148b8203702d30fc6e83b140"}]},"branch":"refs/heads/master"},"9094aac6bb45992885e508d92de4349baf7c4023":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2026-05-13 19:50:59.000000000","uploader":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"ref":"refs/changes/48/988348/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/48/988348/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/48/988348/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/48/988348/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/48/988348/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/48/988348/4"}}},"commit":{"parents":[{"commit":"7554e6b49ec56e3a55bd87f912941ad9e21d4b39","subject":"Replace global lockutils locks with per-instance RLock","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/7554e6b49ec56e3a55bd87f912941ad9e21d4b39"}]}],"author":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-05-12 19:32:35.000000000","tz":-180},"committer":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-05-13 19:49:42.000000000","tz":-180},"subject":"Add least_loaded host_choice for workload_stabilization strategy","message":"Add least_loaded host_choice for workload_stabilization strategy\n\nIntroduce a new destination host selection mode, \u0027least_loaded\u0027, for\nthe workload_stabilization strategy. When selected, the strategy\nevaluates only the N lightest nodes (by weighted metric load) as\nmigration destinations, rather than cycling, sampling randomly, or\nscanning all hosts.\n\nNew parameter:\n* least_loaded_count: number of least-loaded destination hosts to\n  evaluate. Hosts are ranked by a normalized weighted load across\n  all configured metrics.\n\nNew helpers used by least_loaded:\n* _calculate_weighted_loads(): normalises host metrics and computes a\n  single weighted load scalar per host.\n* get_least_loaded_hosts(): returns the N hosts with the lowest\n  weighted load, sorted ascending.\n\nPartial-Bug: #2141951\nCo-Authored-By: Claude Sonnet 4.6\nChange-Id: I29e86aaadbf8bdf91759ab8f76fd303a2b64274f\nSigned-off-by: Douglas Viroel \u003cviroel@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/9094aac6bb45992885e508d92de4349baf7c4023"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/9094aac6bb45992885e508d92de4349baf7c4023"}]},"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":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}},{"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":""}}}]}
