)]}'
{"id":"openstack%2Fwatcher~999388","triplet_id":"openstack%2Fwatcher~master~If28e71d87c0d0335554de58d48078ece3e242b75","project":"openstack/watcher","branch":"master","attention_set":{"34452":{"account":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"last_update":"2026-07-31 10:53:07.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"If28e71d87c0d0335554de58d48078ece3e242b75","subject":"Add Ironic emulator and saving_energy functional tests","status":"NEW","created":"2026-07-31 09:42:59.000000000","updated":"2026-07-31 10:53:07.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"763a9f4d64fb3a9906836431e74de04293024a61","_number":999388,"virtual_id_number":999388,"owner":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"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"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-07-31 10:51:22.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":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"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":{"rejected":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"all":[{"value":-1,"date":"2026-07-31 10:43:29.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"_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":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"}],"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-31 09:44:21.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-31 10:03:07.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"}],"messages":[{"id":"3574405673927a956927325334d04a2fd64fa072","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-07-31 09:42:59.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"5511f2f16ed58ffbb794527f5a9b85421ba5de0f","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-31 09:44:21.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"42ba784b6bea8a888947879b9db58a802bee42b1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-31 10:03:07.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6019ccc4859e44f98ddc04b9b7c4f3be\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/4e5c222ddab04650b698b3928b06ae88 : SUCCESS in 8m 14s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fbc40369e7444262bf3d6eb07c0d258f : SUCCESS in 4m 52s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/ed01b492a09a4ac18ba1b06cd245b8ea : SUCCESS in 4m 48s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/2350c1148ca8454cbe6c016b2cff7853 : SUCCESS in 5m 59s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/e3a0932ff1564bd4bd1d33ed3cabd114 : SUCCESS in 10m 32s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fcf28e0bf06a48d3be867c52efedd107 : SUCCESS in 5m 13s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/1c25b7739a094dc7af8ed9ebd39c9eab : SUCCESS in 5m 58s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/673dc423076f4f7ca964f6542da03980 : SUCCESS in 4m 28s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/0e9f926bd4874eeeb49d7dbf49cb7286 : SUCCESS in 6m 58s","accounts_in_message":[],"_revision_number":1},{"id":"564c346592409f58eb8a2d594a192d2843360f92","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-07-31 10:19:06.000000000","message":"Patch Set 1: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"12334432fba089895ecfaf59b8079498ba1dedb5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-07-31 10:30:26.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n* Workflow-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"cd30ebf4fc779372fa7ae305e440f4e25425262f","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-31 10:31:13.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"11cc5b7b6932d845f759c077e7e9cbf33d681cb2","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-07-31 10:43:29.000000000","message":"Patch Set 2: Workflow-1","accounts_in_message":[],"_revision_number":2},{"id":"fbe4606785cb582685aaad90d445a13fcca30982","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-31 10:51:22.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/84222182cf824b1cbbfa341a176b2046\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/c866c424b89749d19300635096b700af : SUCCESS in 7m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ca91dda58db24b379f093c7e40a6da71 : SUCCESS in 4m 20s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e5f4c07820fa468d9abc6f52d9481b2c : SUCCESS in 3m 37s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/c34ad1d364cc494eb13117efc7bb459d : SUCCESS in 5m 20s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f0e888ecb5b24bd58e79b458d740921b : SUCCESS in 9m 02s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e1d1bc5dba9349afb338bf13b49320db : SUCCESS in 10m 28s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/49de19778f2c43ddab4b758336029d39 : SUCCESS in 3m 24s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/b4e1367ac5a24f7b818bcbdd89c5ca55 : SUCCESS in 6m 17s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/872a356096f1495d9821d84decd6658e : SUCCESS in 3m 04s","accounts_in_message":[],"_revision_number":2},{"id":"763a9f4d64fb3a9906836431e74de04293024a61","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-31 10:53:07.000000000","message":"Patch Set 2:\n\n(1 comment)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/e8628dd89cb645f5b4472acd89ceec05\n\n- teim-code-review https://zuul.teim.app/t/main/build/1dd877935eca4632abe55eef682143fe : SUCCESS in 7m 45s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"0d816d655cedf8052cc50e292cde079446e6cdb0","revisions":{"d8992a5f918b02d03067a85a3fe92dc8c9ed1aa3":{"kind":"REWORK","_number":1,"created":"2026-07-31 09:42:59.000000000","uploader":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"ref":"refs/changes/88/999388/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/88/999388/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/999388/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/999388/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/999388/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/88/999388/1"}}},"commit":{"parents":[{"commit":"900743c5aa0669de53acc24375bbcdbb477f830d","subject":"Fix Hypervisor attribute access in saving_energy","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/900743c5aa0669de53acc24375bbcdbb477f830d"}]}],"author":{"name":"jgilaber","email":"jgilaber@redhat.com","date":"2026-07-16 14:03:21.000000000","tz":120},"committer":{"name":"jgilaber","email":"jgilaber@redhat.com","date":"2026-07-31 09:42:39.000000000","tz":120},"subject":"Add Ironic emulator and saving_energy functional tests","message":"Add Ironic emulator and saving_energy functional tests\n\nAdd an in-process Ironic v1 API emulator (Flask WSGI app with\nwsgi-intercept) following the existing Nova/Placement pattern.\nWire it into the functional test base via IronicFixture and add\n5 functional tests for the saving_energy strategy covering\nexcess/deficit power states, balanced topology, all-busy nodes,\nand full end-to-end action plan execution.\n\nGenerated-By: claude-code (claude-opus-4-6)\nChange-Id: If28e71d87c0d0335554de58d48078ece3e242b75\nSigned-off-by: jgilaber \u003cjgilaber@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/d8992a5f918b02d03067a85a3fe92dc8c9ed1aa3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/d8992a5f918b02d03067a85a3fe92dc8c9ed1aa3"}]},"branch":"refs/heads/master"},"0d816d655cedf8052cc50e292cde079446e6cdb0":{"kind":"REWORK","_number":2,"created":"2026-07-31 10:30:26.000000000","uploader":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"ref":"refs/changes/88/999388/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/88/999388/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/999388/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/999388/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/88/999388/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/88/999388/2"}}},"commit":{"parents":[{"commit":"e5df79b9a4d92c128f006e73a70a1b30aa033e32","subject":"Fix Hypervisor attribute access in saving_energy","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/e5df79b9a4d92c128f006e73a70a1b30aa033e32"}]}],"author":{"name":"jgilaber","email":"jgilaber@redhat.com","date":"2026-07-16 14:03:21.000000000","tz":120},"committer":{"name":"jgilaber","email":"jgilaber@redhat.com","date":"2026-07-31 10:28:29.000000000","tz":120},"subject":"Add Ironic emulator and saving_energy functional tests","message":"Add Ironic emulator and saving_energy functional tests\n\nAdd an in-process Ironic v1 API emulator (Flask WSGI app with\nwsgi-intercept) following the existing Nova/Placement pattern.\nWire it into the functional test base via IronicFixture and add\n5 functional tests for the saving_energy strategy covering\nexcess/deficit power states, balanced topology, all-busy nodes,\nand full end-to-end action plan execution.\n\nGenerated-By: claude-code (claude-opus-4-6)\nChange-Id: If28e71d87c0d0335554de58d48078ece3e242b75\nSigned-off-by: jgilaber \u003cjgilaber@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/0d816d655cedf8052cc50e292cde079446e6cdb0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/0d816d655cedf8052cc50e292cde079446e6cdb0"}]},"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"},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}},{"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":""}}}]}
