)]}'
{"id":"openstack%2Fwatcher~993088","triplet_id":"openstack%2Fwatcher~master~I41037390bad33e3a6b865c06a949066a3bc3c59d","project":"openstack/watcher","branch":"master","topic":"bug-2156473","attention_set":{"30002":{"account":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"last_update":"2026-07-23 12:56:52.000000000","reason":"\u003cGERRIT_ACCOUNT_16312\u003e replied on the change","reason_account":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"}},"28006":{"account":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"last_update":"2026-07-30 07:15:33.000000000","reason":"\u003cGERRIT_ACCOUNT_16312\u003e replied on the change","reason_account":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"}}},"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-07-28 09:03:28.000000000","reason":"removed on reply"},"16312":{"account":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"last_update":"2026-07-30 07:15:33.000000000","reason":"\u003cGERRIT_ACCOUNT_16312\u003e replied on the change","reason_account":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"}}},"hashtags":[],"change_id":"I41037390bad33e3a6b865c06a949066a3bc3c59d","subject":"Add allocation-based capacity checks to vm_workload_consolidation","status":"NEW","created":"2026-06-12 09:00:22.000000000","updated":"2026-07-30 07:15:33.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":20,"unresolved_comment_count":2,"has_review_started":true,"meta_rev_id":"8f50a2cd2317b52833bb35d4f35d04af4d6db4aa","_number":993088,"virtual_id_number":993088,"owner":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"_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-07-29 17:19:04.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":{"approved":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"all":[{"value":2,"date":"2026-07-29 15:36:07.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"value":-1,"date":"2026-07-29 18:20:17.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":"","default_value":0,"optional":true},"Workflow":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"_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":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"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":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}],"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":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-12 11:10:59.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-06-12 11:56:47.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-24 12:40:35.000000000","updated_by":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"reviewer":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"state":"CC"},{"updated":"2026-07-15 15:11:05.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"},{"updated":"2026-07-20 18:06:41.000000000","updated_by":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"reviewer":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"state":"CC"},{"updated":"2026-07-28 14:03:28.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":"REVIEWER"}],"messages":[{"id":"cb0a5d07585e72c1b4e160616e309eb371e6ce1c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-06-12 09:00:22.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"0556a9ea2187899b37b2f64ac0a9d0f84b7144fa","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-12 11:10:59.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/06f140d9a2ca4d3a84e584fa4624d8df\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/f30e9cafd3e14ae58eda025471b34f73 : SUCCESS in 7m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bed6153148a840fba91c4cf43c12cffd : SUCCESS in 5m 00s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/d21d45cceef840469d5ef53800085822 : SUCCESS in 3m 56s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/429fa4aa767b4a6198f25c0d8a6d932b : SUCCESS in 5m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/8cb4079d56a44db3b940cf5c2eca15f5 : SUCCESS in 4m 58s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b8c68231f52d496d8d0bfbc1bf7b7791 : SUCCESS in 11m 14s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/56537698f0634c85a34b4330f3296f24 : SUCCESS in 3m 11s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/e38446e9862e417abe95cbeae11e9e33 : SUCCESS in 4m 55s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/a3e98155cda245c2b1e447312ea3b247 : SUCCESS in 27m 02s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/c40c01d1952f407b8cd0534a93352875 : SUCCESS in 51m 03s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/6d2d101634504950b5f416248f75c224 : SUCCESS in 43m 14s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/44cb9959f08f4b668e267532c48dc908 : SUCCESS in 1h 49m 25s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/ba295f65be044525a84e6c140901281f : SUCCESS in 2h 03m 46s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/57e4963e127a4b83aaa84d273b9284f5 : SUCCESS in 1h 50m 48s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/81c477f8106947c59b54361b2d85763d : SUCCESS in 1h 51m 36s","accounts_in_message":[],"_revision_number":1},{"id":"8529886004957d66b3d2ae2207a5ef55a537a061","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-12 11:56:47.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/eb9d366f6cf042e5bd32674f3749a7fd\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/5a554f00be3f48ce8c2b4a23fa724b1a : SUCCESS in 2h 54m 34s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/9a010605df9b43e7a5dd5d141a43c050 : SUCCESS in 2h 10m 52s","accounts_in_message":[],"_revision_number":1},{"id":"644479581131ad7ea46e63e950ef1f667ac5c89b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-06-24 12:40:26.000000000","message":"Uploaded patch set 2.\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":2},{"id":"3162479966702dea1cc51d34c763be4eab05ca24","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-24 12:40:35.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"2ad1ab0eefbf906ff1f5e2fec7c87427d7995f6e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-24 13:24:06.000000000","message":"Patch Set 2:\n\n(5 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/207d0d86d57b4b8e981cd80754f04ade\n\n- teim-code-review https://zuul.teim.app/t/main/build/1f2a3950fa0b4b6ab29e1363a7f977cd : SUCCESS in 15m 50s\n\nWarning:\n  The allocation check in instance_fits() uses flavor allocations (vcpus/memory/disk) while the existing check uses measured utilization metrics. These use different data sources and may disagree. The combined check is stricter than either alone. Impact: The allocation check rejects placements the utilization check alone would allow, making the strategy more conservative. This is the intended bug fix but changes behavior for all existing deployments using this strategy. Recommendation: Verify that this behavioral change is acceptable for existing deployments. Consider adding a release note documenting that the vm_workload_consolidation strategy now enforces allocation limits and may produce different (more conservative) migration plans than before. The commit message explains the rationale well but a release note for operators is recommended.\n  The node_allocation_cache uses lazy-initialization from the live compute model then incremental updates, matching the existing node_utilization_cache pattern. Cache consistency is correct because migrate_instance() mutates the model before cache adjustment. Impact: The cache consistency is maintained correctly across all code paths: add_migration(), optimize_solution(), and initial lazy population. No staleness issues were identified. Recommendation: No action needed. The implementation correctly mirrors the established node_utilization_cache pattern. Consider adding a brief comment in get_free_node_allocation() noting that the cache is initialized from the live model and maintained incrementally, matching the node_utilization_cache pattern.","accounts_in_message":[],"_revision_number":2},{"id":"c92ee17b790476692579b1e319e0087d9944ac86","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-24 14:53:00.000000000","message":"Patch Set 2: 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/80648bac6f834fc1bde05bd1f1b8eaa7\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/501056f8c8de40e3849bd57d87c8090a : SUCCESS in 9m 08s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3b3d3aa4c77e496c94e4ea1fedcd08aa : SUCCESS in 3m 27s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e3d1515143f6466185a875d55c544be1 : SUCCESS in 3m 26s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5437bbe9f3fc4d6986daff02571c522d : SUCCESS in 8m 26s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/3b7d77d3c02f4b26a6d92f5029f70501 : SUCCESS in 5m 03s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/12395ce202c04f3eb605c84d2f966dd3 : SUCCESS in 9m 45s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f6048057b81345a3a2521fabb522bcd7 : SUCCESS in 5m 22s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/f72d04fba440476595508e6b43904f7f : SUCCESS in 5m 01s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/f8ff3efd71864d70aed111f5ea9a5873 : SUCCESS in 46m 46s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/8a5c86ca37bf4531bf2f5f446ea6a31d : SUCCESS in 27m 39s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/c77fcf836078444284855547f7630cc5 : SUCCESS in 20m 03s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/f854e0bb0be54cefac1c356e53cd8701 : SUCCESS in 2h 08m 14s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/f8384769ed2744aa8f10f2449b9f2659 : SUCCESS in 2h 03m 55s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/47167ec111b741ad88888ac546d6e1a7 : TIMED_OUT in 2h 05m 20s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/ddf9610e1a5349c5ab4cb0fa0b75337b : SUCCESS in 1h 59m 17s","accounts_in_message":[],"_revision_number":2},{"id":"b193d8741eeeaa9a791846e55216702b3898f3bc","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-24 15:37:55.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/6e4041de02f94e13bede64a5f65c69a9\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/73b54d9dd0c54719aa2632380273463b : SUCCESS in 2h 56m 05s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/5e67775c26f545ed97b4c5e119bb1a62 : SUCCESS in 2h 11m 49s","accounts_in_message":[],"_revision_number":2},{"id":"740314b7d8bf1016ac9ba883525c0f2f4fb6103e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-06-30 14:57:40.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":"2baa1b96960e785188a081b2accbc577041f914f","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-30 14:57:50.000000000","message":"Patch Set 3:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":3},{"id":"a237f6e4215c53ce151698d2415581f5d183cb83","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-06-30 15:06:08.000000000","message":"Patch Set 3:\n\n(3 comments)","accounts_in_message":[],"_revision_number":3},{"id":"dbd7164ee0892cd1ba27b8862d5b5214fd62f25e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-06-30 15:30:40.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"e5c72f2b8b770e99a633c0c71e0adea7235e835b","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-30 15:30:49.000000000","message":"Patch Set 4:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":4},{"id":"559bba85e4c2ae9bd2d64f165f044defaa30344e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-30 15:49:14.000000000","message":"Patch Set 4:\n\n(5 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/f6f5cc569f824927972893202dcb0447\n\n- teim-code-review https://zuul.teim.app/t/main/build/48cdcb4bdc6746a0bf3e0a00b033d2bc : SUCCESS in 18m 17s\n\nWarning:\n  The commit metadata records \u0027Assisted-By: Claude\u0027 (per the change summary), which satisfies the OpenInfra AI attribution policy; no Generated-By footer violation is evident. No commit-message action required. Impact: Confirms AI-assistance attribution is present and compliant for this change, so there is no policy blocker for the patch. Recommendation: No action needed; attribution is already recorded.","accounts_in_message":[],"_revision_number":4},{"id":"a212786f89311e355912519c47cc318757576e74","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-30 17:38:25.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ad2b408bf3894d5496a3f5611535a741\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/e42403dfa5f7448db49d201882e7da8e : SUCCESS in 9m 35s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a5a76ec7cf0543bd98e8d005741f31b7 : SUCCESS in 6m 00s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/f128ed7efaf24843bccaaad3e99c8f25 : SUCCESS in 7m 02s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/19051f643c1e47b2b5485a383c804590 : SUCCESS in 7m 12s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/c8dfb426de4a4a748b799a592d7d704d : SUCCESS in 5m 01s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/eb2a6e09bad648d1b2277baaad88c03b : SUCCESS in 9m 01s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/6d6bf88d970d4142a984a76ce32ca6ed : SUCCESS in 5m 46s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/4db5913d2ee946eaa5b5e08657840598 : SUCCESS in 5m 34s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/6541c5cabe274f7a871efd7f88776ee0 : SUCCESS in 54m 51s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/f7c0c34fdb8048eaa15acef462c1b07d : SUCCESS in 26m 39s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/9df4dc553d3e46c98cc8cecc89a4002d : SUCCESS in 42m 18s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/201dd922eafb4d038ec06c615233ea04 : SUCCESS in 1h 55m 10s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/08adbc28a9994cf38e8f08f20df793c7 : SUCCESS in 1h 33m 35s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/9d5ab49a4d564992be8c7759d17ca0a4 : SUCCESS in 2h 02m 40s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/6bab4896f5bc488a985631538584d721 : SUCCESS in 2h 01m 29s","accounts_in_message":[],"_revision_number":4},{"id":"1a7740af347161d2f0439dd5a98e46e0203978b0","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-30 18:34:29.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/40477c77d5774114ab04a0cf754853f3\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/e0242f02ae8543cea5d6289b16d9eade : SUCCESS in 3h 02m 14s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/97f3b44c64bb40eea17e0ab553703a57 : SUCCESS in 2h 20m 06s","accounts_in_message":[],"_revision_number":4},{"id":"eb0af4d178d4d887116007b4868476c30db811f9","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-07-15 15:11:05.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"40d1cd495f95ac2d5c2d991b48305a4d389b9604","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-07-20 18:06:41.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"9003aa44fa8053a70bb7fd911bfc82133dcad721","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-07-23 12:56:52.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"0922f821b9b0d8261c5e745d805509e6d94875fc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-07-28 08:50:47.000000000","message":"Uploaded patch set 5.\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":5},{"id":"00996142a962b930eed13cdc11b02cc66504cfe9","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-28 08:50:56.000000000","message":"Patch Set 5:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":5},{"id":"bc8a9cd04d74a6d80922958e8c71d17babfb8aa9","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-07-28 09:03:28.000000000","message":"Patch Set 5: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/00c8247c877c472597e14e51934d0e0c\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/e35eb65cef9b479ea8544f0bd6831a3c : FAILURE in 9m 05s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/a9b052601f8c4fe8af6a77feffae0942 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":5},{"id":"8612c20caf383ee0f98715a7db34d73169494779","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-28 09:12:10.000000000","message":"Patch Set 5:\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/2b621663ed20440dbd39125ccf0c14f2\n\n- teim-code-review https://zuul.teim.app/t/main/build/fe2c1a29d2eb4c4e92ed38b7955df9de : SUCCESS in 12m 42s","accounts_in_message":[],"_revision_number":5},{"id":"852ca036398932e53ac8d1bb91f5a26ec6b553b4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-28 10:42:57.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c83a98834d0c498dbc32c66c3121344b\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7ed3993c207a4893a6bcb646ed62e007 : SUCCESS in 7m 22s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1938addc956b4f1888bea7edae6d6f36 : SUCCESS in 4m 27s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/ba228f3a7133400286c8dc427b52fef6 : SUCCESS in 5m 16s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/3747b52c67a14cdf9779af0c816cc619 : SUCCESS in 5m 35s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/b56f4dbfdeef4c1b8efe1b8cfedd6afb : SUCCESS in 9m 46s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/03e090e85de444e7b353e360beef5099 : SUCCESS in 9m 11s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/172881e88acb4a8baf8567af558beacf : SUCCESS in 4m 28s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/463bb8234cd944eea87f692b23176567 : SUCCESS in 6m 26s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/8b4e01e7d7134b31b12dea60556aff01 : SUCCESS in 54m 54s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3cdc81fbd4c9433d98c652fb539c25bf : SUCCESS in 57m 16s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/14d88c06019e451f81db0398b6a5dba0 : SUCCESS in 19m 53s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/33a641cf642441edb41bc412591530be : SUCCESS in 1h 30m 27s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/8e1ec0ded8de49089275f64d24ba5f9f : SUCCESS in 1h 34m 47s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/6500c0773f414d60894da6a4b0a505ba : SUCCESS in 1h 28m 03s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/e154995255814341a7903e82153a1b06 : SUCCESS in 1h 46m 08s","accounts_in_message":[],"_revision_number":5},{"id":"e075c69758f2a2ae362a3210e7d84263eb82c2f6","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-07-28 14:03:28.000000000","message":"Patch Set 5: Code-Review+2\n\n(2 comments)","accounts_in_message":[],"_revision_number":5},{"id":"fadffbdcb02d95e2b47860a98870cf009db55b40","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-07-29 15:36:07.000000000","message":"Patch Set 6: Patch Set 5 was rebased\n\nCopied Votes:\n* Code-Review+2, Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"5fddf8f8d6404d4b5a2e38542f1ce95368a70bde","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-29 15:36:16.000000000","message":"Patch Set 6:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":6},{"id":"a9a87b0bf65c5c2f610cc89581007dbfad4337b2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-29 17:19:04.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5809903b716d420b9468a45a57f4bc9f\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/fd04bead0389400db2e5d57520651b62 : SUCCESS in 7m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/20db192255cd444582183becbdc2f230 : SUCCESS in 4m 24s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/63b9bbfd17984d64949668734863c0ae : SUCCESS in 3m 45s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/f627aacf7e9845268fffc8a378d04196 : SUCCESS in 5m 30s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d2cce5f1b37a49e4a804dbe446077ed8 : SUCCESS in 5m 05s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d4ce0b457967436aa4cc728ea2e6c820 : SUCCESS in 8m 34s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/eedb8be04aa9417eae02e3d975fa4c2a : SUCCESS in 2m 39s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/58f682479f6a4b03907fe4acaaa7d100 : SUCCESS in 5m 47s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/5488b1a3e11c4078b70aed0552e34574 : SUCCESS in 37m 50s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/02556ee735d54c18848d0b9d916946d6 : SUCCESS in 23m 25s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/08dd810140a641ef8742f39b6aa15cdc : SUCCESS in 38m 59s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/1086fcbc2c73488bb579b2abde77d9f6 : SUCCESS in 1h 00m 57s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/c68a2293b72b445783c3a6c12b933ead : SUCCESS in 1h 04m 04s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/af505a2544024a6494cfd9e7ed646d24 : SUCCESS in 1h 10m 48s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/ef8a2b23e61f47bda8edca0976ccae59 : SUCCESS in 1h 36m 21s","accounts_in_message":[],"_revision_number":6},{"id":"40ea830ac17e4de78cabaf1980f067c87e0b5495","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-29 17:55:21.000000000","message":"Patch Set 6:\n\n(1 comment)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/b8c6b5d16415449c90c1b928554f33b6\n\n- teim-code-review https://zuul.teim.app/t/main/build/7052ea0492ec4721810a2d303d51fdd9 : SUCCESS in 11m 03s","accounts_in_message":[],"_revision_number":6},{"id":"a7df2ca60e7934c380b6e153d6da26a96be86518","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-07-29 18:20:17.000000000","message":"Patch Set 6: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/cf100ceafd304ba88cbe2af8f128bb02\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/b91124128d8a43b6bcab88174a08ac9a : FAILURE in 9m 17s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/498188a7af0745ecbc8dd2904a3e54d9 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":6},{"id":"8f50a2cd2317b52833bb35d4f35d04af4d6db4aa","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-07-30 07:15:33.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"bb6a9766f5bcca7f9b6f2b27cb451da713450466","revisions":{"c5d8814637470835fa13a6727b2fd36141dc6595":{"kind":"REWORK","_number":1,"created":"2026-06-12 09:00:22.000000000","uploader":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"ref":"refs/changes/88/993088/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/88/993088/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/88/993088/1"}}},"commit":{"parents":[{"commit":"547b959fe1acd343c70da5a352c41afb86ef7fd9","subject":"Cache node utilization to fix vm_workload_consolidation at scale","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/547b959fe1acd343c70da5a352c41afb86ef7fd9"}]}],"author":{"name":"Alfredo Moralejo","email":"amoralej@redhat.com","date":"2026-06-02 09:25:46.000000000","tz":120},"committer":{"name":"Alfredo Moralejo","email":"amoralej@redhat.com","date":"2026-06-12 08:24:13.000000000","tz":120},"subject":"Add allocation-based capacity checks to vm_workload_consolidation","message":"Add allocation-based capacity checks to vm_workload_consolidation\n\ninstance_fits() only checked actual CPU/RAM/disk utilization, not the\nallocated resources from the instance flavor. This allowed the algorithm\nto pack far more instances onto a node than Nova\u0027s placement would\npermit (e.g. a 1-vCPU instance at 0.1% CPU shows ~0.001 vCPUs\nutilization, but still consumes 1 allocated vCPU).\n\nAdd get_free_node_allocation() with a cached allocation tracker that\ncomputes free vcpus/memory/disk per node, updated incrementally in\nO(1) after each migration. instance_fits() now rejects placements\nthat would exceed allocation capacity. Both offload and consolidation\nphases also track allocation-saturated destination nodes to skip them\nearly.\n\nAssisted-By: Claude\nCloses-Bug: #2156473\nChange-Id: I41037390bad33e3a6b865c06a949066a3bc3c59d\nSigned-off-by: Alfredo Moralejo \u003camoralej@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/c5d8814637470835fa13a6727b2fd36141dc6595"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/c5d8814637470835fa13a6727b2fd36141dc6595"}]},"branch":"refs/heads/master"},"947ac9ed2d0d2ad864c4113b9f5424d395767d24":{"kind":"REWORK","_number":2,"created":"2026-06-24 12:40:26.000000000","uploader":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"ref":"refs/changes/88/993088/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/88/993088/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/88/993088/2"}}},"commit":{"parents":[{"commit":"6e511796e108d26a2e8fa71f12d485e7066d135b","subject":"Cache node utilization to fix vm_workload_consolidation at scale","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/6e511796e108d26a2e8fa71f12d485e7066d135b"}]}],"author":{"name":"Alfredo Moralejo","email":"amoralej@redhat.com","date":"2026-06-02 09:25:46.000000000","tz":120},"committer":{"name":"Alfredo Moralejo","email":"amoralej@redhat.com","date":"2026-06-24 12:32:23.000000000","tz":120},"subject":"Add allocation-based capacity checks to vm_workload_consolidation","message":"Add allocation-based capacity checks to vm_workload_consolidation\n\ninstance_fits() only checked actual CPU/RAM/disk utilization, not the\nallocated resources from the instance flavor. This allowed the algorithm\nto pack far more instances onto a node than Nova\u0027s placement would\npermit (e.g. a 1-vCPU instance at 0.1% CPU shows ~0.001 vCPUs\nutilization, but still consumes 1 allocated vCPU).\n\nAdd get_free_node_allocation() with a cached allocation tracker that\ncomputes free vcpus/memory/disk per node, updated incrementally in\nO(1) after each migration. instance_fits() now rejects placements\nthat would exceed allocation capacity. Both offload and consolidation\nphases also track allocation-saturated destination nodes to skip them\nearly.\n\nAssisted-By: Claude\nCloses-Bug: #2156473\nChange-Id: I41037390bad33e3a6b865c06a949066a3bc3c59d\nSigned-off-by: Alfredo Moralejo \u003camoralej@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/947ac9ed2d0d2ad864c4113b9f5424d395767d24"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/947ac9ed2d0d2ad864c4113b9f5424d395767d24"}]},"branch":"refs/heads/master"},"c7b023b831011c42cad838635708e83e6ad42ce9":{"kind":"REWORK","_number":3,"created":"2026-06-30 14:57:40.000000000","uploader":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"ref":"refs/changes/88/993088/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/88/993088/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/88/993088/3"}}},"commit":{"parents":[{"commit":"3b4afbb3bef3ef29b6c6944361910c61323c107b","subject":"Cache node utilization to fix vm_workload_consolidation at scale","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/3b4afbb3bef3ef29b6c6944361910c61323c107b"}]}],"author":{"name":"Alfredo Moralejo","email":"amoralej@redhat.com","date":"2026-06-02 09:25:46.000000000","tz":120},"committer":{"name":"Alfredo Moralejo","email":"amoralej@redhat.com","date":"2026-06-30 14:52:36.000000000","tz":120},"subject":"Add allocation-based capacity checks to vm_workload_consolidation","message":"Add allocation-based capacity checks to vm_workload_consolidation\n\ninstance_fits() only checked actual CPU/RAM/disk utilization, not the\nallocated resources from the instance flavor. This allowed the algorithm\nto pack far more instances onto a node than Nova\u0027s placement would\npermit (e.g. a 1-vCPU instance at 0.1% CPU shows ~0.001 vCPUs\nutilization, but still consumes 1 allocated vCPU).\n\nAdd get_free_node_allocation() with a cached allocation tracker that\ncomputes free vcpus/memory/disk per node, updated incrementally in\nO(1) after each migration. instance_fits() now rejects placements\nthat would exceed allocation capacity. Both offload and consolidation\nphases also track allocation-saturated destination nodes to skip them\nearly.\n\nAssisted-By: Claude\nCloses-Bug: #2156473\nChange-Id: I41037390bad33e3a6b865c06a949066a3bc3c59d\nSigned-off-by: Alfredo Moralejo \u003camoralej@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/c7b023b831011c42cad838635708e83e6ad42ce9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/c7b023b831011c42cad838635708e83e6ad42ce9"}]},"branch":"refs/heads/master"},"ea584d20d0972d52c5cb479dbe4e92b8756528aa":{"kind":"REWORK","_number":4,"created":"2026-06-30 15:30:40.000000000","uploader":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"ref":"refs/changes/88/993088/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/88/993088/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/88/993088/4"}}},"commit":{"parents":[{"commit":"3b4afbb3bef3ef29b6c6944361910c61323c107b","subject":"Cache node utilization to fix vm_workload_consolidation at scale","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/3b4afbb3bef3ef29b6c6944361910c61323c107b"}]}],"author":{"name":"Alfredo Moralejo","email":"amoralej@redhat.com","date":"2026-06-02 09:25:46.000000000","tz":120},"committer":{"name":"Alfredo Moralejo","email":"amoralej@redhat.com","date":"2026-06-30 15:29:55.000000000","tz":120},"subject":"Add allocation-based capacity checks to vm_workload_consolidation","message":"Add allocation-based capacity checks to vm_workload_consolidation\n\ninstance_fits() only checked actual CPU/RAM/disk utilization, not the\nallocated resources from the instance flavor. This allowed the algorithm\nto pack far more instances onto a node than Nova\u0027s placement would\npermit (e.g. a 1-vCPU instance at 0.1% CPU shows ~0.001 vCPUs\nutilization, but still consumes 1 allocated vCPU).\n\nAdd get_free_node_allocation() with a cached allocation tracker that\ncomputes free vcpus/memory/disk per node, updated incrementally in\nO(1) after each migration. instance_fits() now rejects placements\nthat would exceed allocation capacity. Both offload and consolidation\nphases also track allocation-saturated destination nodes to skip them\nearly.\n\nAssisted-By: Claude\nCloses-Bug: #2156473\nChange-Id: I41037390bad33e3a6b865c06a949066a3bc3c59d\nSigned-off-by: Alfredo Moralejo \u003camoralej@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/ea584d20d0972d52c5cb479dbe4e92b8756528aa"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/ea584d20d0972d52c5cb479dbe4e92b8756528aa"}]},"branch":"refs/heads/master"},"361b8409d53c0b276fc297ebfbf3e7e3d755f3e1":{"kind":"REWORK","_number":5,"created":"2026-07-28 08:50:47.000000000","uploader":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"ref":"refs/changes/88/993088/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/88/993088/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/88/993088/5"}}},"commit":{"parents":[{"commit":"593bd642b3307c8d6e578b8dcd8a9caf77c69e3d","subject":"Add node resource allocation cache to ModelRoot","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/593bd642b3307c8d6e578b8dcd8a9caf77c69e3d"}]}],"author":{"name":"Alfredo Moralejo","email":"amoralej@redhat.com","date":"2026-07-27 12:33:12.000000000","tz":120},"committer":{"name":"Alfredo Moralejo","email":"amoralej@redhat.com","date":"2026-07-28 08:37:40.000000000","tz":120},"subject":"Add allocation-based capacity checks to vm_workload_consolidation","message":"Add allocation-based capacity checks to vm_workload_consolidation\n\ninstance_fits() only checked actual CPU/RAM/disk utilization, not\nthe allocated resources from the instance flavor. This allowed the\nalgorithm to pack more instances onto a node than Nova\u0027s placement\nservice would permit. The strategy now also verifies that flavor-level\nallocations (vcpus, memory, disk) do not exceed node capacity using\nthe ModelRoot resource cache, and uses a shared is_node_saturated()\nhelper to skip full nodes early in both offload and consolidation\nphases.\n\nCloses-Bug: #2156473\nAssisted-By: Claude\nChange-Id: I41037390bad33e3a6b865c06a949066a3bc3c59d\nSigned-off-by: Alfredo Moralejo \u003camoralej@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/361b8409d53c0b276fc297ebfbf3e7e3d755f3e1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/361b8409d53c0b276fc297ebfbf3e7e3d755f3e1"}]},"branch":"refs/heads/master"},"bb6a9766f5bcca7f9b6f2b27cb451da713450466":{"kind":"TRIVIAL_REBASE","_number":6,"created":"2026-07-29 15:36:07.000000000","uploader":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"ref":"refs/changes/88/993088/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/88/993088/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/993088/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/88/993088/6"}}},"commit":{"parents":[{"commit":"3201a7461cd2b84951015fd1ea36e7e739dcacdc","subject":"Add node resource allocation cache to ModelRoot","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/3201a7461cd2b84951015fd1ea36e7e739dcacdc"}]}],"author":{"name":"Alfredo Moralejo","email":"amoralej@redhat.com","date":"2026-07-27 12:33:12.000000000","tz":120},"committer":{"name":"Alfredo Moralejo","email":"amoralej@redhat.com","date":"2026-07-29 15:36:07.000000000","tz":0},"subject":"Add allocation-based capacity checks to vm_workload_consolidation","message":"Add allocation-based capacity checks to vm_workload_consolidation\n\ninstance_fits() only checked actual CPU/RAM/disk utilization, not\nthe allocated resources from the instance flavor. This allowed the\nalgorithm to pack more instances onto a node than Nova\u0027s placement\nservice would permit. The strategy now also verifies that flavor-level\nallocations (vcpus, memory, disk) do not exceed node capacity using\nthe ModelRoot resource cache, and uses a shared is_node_saturated()\nhelper to skip full nodes early in both offload and consolidation\nphases.\n\nCloses-Bug: #2156473\nAssisted-By: Claude\nChange-Id: I41037390bad33e3a6b865c06a949066a3bc3c59d\nSigned-off-by: Alfredo Moralejo \u003camoralej@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/bb6a9766f5bcca7f9b6f2b27cb451da713450466"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/bb6a9766f5bcca7f9b6f2b27cb451da713450466"}]},"branch":"refs/heads/master","description":"Rebase","conflicts":{"base":"593bd642b3307c8d6e578b8dcd8a9caf77c69e3d","ours":"361b8409d53c0b276fc297ebfbf3e7e3d755f3e1","theirs":"3201a7461cd2b84951015fd1ea36e7e739dcacdc","merge_strategy":"recursive","contains_conflicts":false}}},"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"},{"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":"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":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
