)]}'
{"id":"openstack%2Fwatcher~999390","triplet_id":"openstack%2Fwatcher~master~Ibc3531d469bf28c5f1b29274f4e306011e87fd33","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 09:44:24.000000000","reason":"Someone else replied on the change"}},"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-31 10:42:41.000000000","reason":"removed on reply"}},"hashtags":[],"change_id":"Ibc3531d469bf28c5f1b29274f4e306011e87fd33","subject":"Migrate ironicclient to openstacksdk","status":"NEW","created":"2026-07-31 09:42:59.000000000","updated":"2026-07-31 12:15:16.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":3,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"6c927d863f2ec9c2a962a8951749e0f4f4b9c1de","_number":999390,"virtual_id_number":999390,"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":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-07-31 12:15:16.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":{"disliked":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"all":[{"value":-1,"date":"2026-07-31 10:42:41.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":{"all":[{"_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":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"}],"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"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-31 09:44:24.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 09:54:55.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-07-31 12:15:16.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":"4e4d3db85381371bcf604c81e5203d64c65197fc","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":"4290c9d166ead1fc334c73771a8acafb319ef23e","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:24.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"175fe8a77023e2a89a76f08c3b4dad7ba31dfc2b","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-07-31 09:54:55.000000000","message":"Patch Set 1: 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/5db8fc36097643398ef1ed4a4adbef3a\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/079059e6b97b422186015b25fc71422f : FAILURE in 9m 43s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/92a68b5ea5d14a2180f8ecfdcea39877 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":1},{"id":"1e4720b879fcd4aa69f77151fc6c84cf52930a40","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* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":2},{"id":"8f80e5679e6f90c085a94b1a0fd8073770a39ccf","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:17.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"2fc68e59df0d71e9c245e7700e117511fcdadb6a","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-07-31 10:42:41.000000000","message":"Patch Set 2: 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/1848819011284b9e8e29ea324890de8d\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/a5b2a183e4114f7ba998b6b648a24e25 : FAILURE in 10m 50s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/0ff1697cfbf94156bd93abac4ceeed52 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":2},{"id":"877022100079a98dc4bf7c429d0c06286b0f9f35","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 11:10:00.000000000","message":"Patch Set 2:\n\n(3 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/0e66092e82334d238c7715c43a68364e\n\n- teim-code-review https://zuul.teim.app/t/main/build/4258ffcaac24491db54eefbaa7ad79b1 : SUCCESS in 9m 06s\n\nWarning:\n  This commit deprecates the [ironic_client] configuration options (api_version, endpoint_type, region_name) and introduces a new [ironic] config group with keystoneauth adapter/session/auth options. These are user-visible, upgrade-impacting changes that require a release note. The analogous Cinder... Impact: Operators upgrading to this release will not be aware that [ironic_client] options are deprecated or that they should migrate to the [ironic] group, potentially causing confusion or missed configuration updates. Recommendation: Add a release note under releasenotes/notes/ following the same pattern as cinderclient-openstacksdk-migration-05ec7aaef6795584.yaml, documenting the upgrade path and deprecation of [ironic_client] options.\n  This migration removes all production callers of OpenStackClients.ironic(), but the method itself and the \u0027from ironicclient import client as irclient\u0027 import remain in clients.py. The analogous Cinder migration removed the equivalent dead code from clients.py. The ironicclient package remains a... Impact: Leaves dead code and an unnecessary runtime dependency on python-ironicclient. Could be confusing for future contributors who encounter the method. Recommendation: In a follow-up or this commit, remove the OpenStackClients.ironic() method, the irclient import, and the corresponding tests in test_clients.py. Alternatively, note this as a known follow-up item.","accounts_in_message":[],"_revision_number":2},{"id":"6c927d863f2ec9c2a962a8951749e0f4f4b9c1de","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-31 12:15:16.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/57f340d98ee543be9b6c5cf4297b3204\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/939697e606e64d23a02fd968787de3f5 : SUCCESS in 5m 11s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a9337eca1c064b1abb6df8a8742b5047 : SUCCESS in 3m 01s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/91ae681b7d084c09b710e7052ecf3526 : SUCCESS in 5m 24s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/fd893386084846938d97996cc4290400 : SUCCESS in 5m 49s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/95eb02834cc14343b2c9cc2437589ce9 : SUCCESS in 6m 14s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1f21897547b943ebac0d978d8e2b80ef : SUCCESS in 9m 59s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/df25fc5466194260ae70b8f571179214 : SUCCESS in 3m 47s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/dd9106fc4209400abaa71cab7fe0c7a1 : SUCCESS in 5m 10s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/c252701867c84e8d98175b0964a58f80 : SUCCESS in 28m 30s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/83a18edc560f4fd9856c8aff0f1c0e6e : SUCCESS in 54m 05s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/1e072e1c133b414fbd752e7cdeee4ac9 : SUCCESS in 40m 45s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/e6d751e83cb04a8e89854e658e3b9c74 : SUCCESS in 1h 31m 02s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/6ce44a79b06448a8a32379cb213019d3 : SUCCESS in 1h 35m 43s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/97db206a3d23462dbc17ac263a8fba9e : SUCCESS in 1h 34m 50s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/663eadda69ac4d18ba20d411f5204496 : SUCCESS in 1h 28m 57s\n- openstack-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/2dbac95f13064fa89c50d2022c451e7c : SUCCESS in 4m 53s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"8a55d3be4e9ef3e80eb797d62adb0a8f0f896aae","revisions":{"5e1440653695b9e137adb663b8a515b847ae42c9":{"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/90/999390/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/90/999390/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/90/999390/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/90/999390/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/90/999390/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/90/999390/1"}}},"commit":{"parents":[{"commit":"bc5c0a86915222f81fb573845f9e1b32622122c6","subject":"Add IronicNode wrapper dataclass","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/bc5c0a86915222f81fb573845f9e1b32622122c6"}]}],"author":{"name":"jgilaber","email":"jgilaber@redhat.com","date":"2026-03-20 09:35:06.000000000","tz":60},"committer":{"name":"jgilaber","email":"jgilaber@redhat.com","date":"2026-07-31 09:42:39.000000000","tz":120},"subject":"Migrate ironicclient to openstacksdk","message":"Migrate ironicclient to openstacksdk\n\nReplace python-ironicclient with openstacksdk\u0027s baremetal proxy\nfor all Ironic API interactions. This follows the same migration\npattern applied to the Nova client.\n\nKey changes:\n- Add [ironic] config group with keystoneauth adapter/session/auth\n  options, falling back to [watcher_clients_auth] if unconfigured\n- Deprecate [ironic_client] options in favor of [ironic] group\n- Update IronicHelper to create SDK connections directly instead\n  of using OpenStackClients.ironic()\n- Rename IronicNode.from_ironicclient to from_openstacksdk with\n  updated attribute mappings (id, is_maintenance)\n- Update test utilities to create openstacksdk Node objects\n- Add ironic keystoneauth config to devstack plugin\n\nGenerated-By: claude-code (claude-opus-4.6)\nChange-Id: Ibc3531d469bf28c5f1b29274f4e306011e87fd33\nSigned-off-by: jgilaber \u003cjgilaber@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/5e1440653695b9e137adb663b8a515b847ae42c9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/5e1440653695b9e137adb663b8a515b847ae42c9"}]},"branch":"refs/heads/master"},"8a55d3be4e9ef3e80eb797d62adb0a8f0f896aae":{"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/90/999390/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/90/999390/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/90/999390/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/90/999390/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/90/999390/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/90/999390/2"}}},"commit":{"parents":[{"commit":"f0ac21feabe598efd1e91ae679ba0493f9552bc8","subject":"Add IronicNode wrapper dataclass","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/f0ac21feabe598efd1e91ae679ba0493f9552bc8"}]}],"author":{"name":"jgilaber","email":"jgilaber@redhat.com","date":"2026-03-20 09:35:06.000000000","tz":60},"committer":{"name":"jgilaber","email":"jgilaber@redhat.com","date":"2026-07-31 10:28:29.000000000","tz":120},"subject":"Migrate ironicclient to openstacksdk","message":"Migrate ironicclient to openstacksdk\n\nReplace python-ironicclient with openstacksdk\u0027s baremetal proxy\nfor all Ironic API interactions. This follows the same migration\npattern applied to the Nova client.\n\nKey changes:\n- Add [ironic] config group with keystoneauth adapter/session/auth\n  options, falling back to [watcher_clients_auth] if unconfigured\n- Deprecate [ironic_client] options in favor of [ironic] group\n- Update IronicHelper to create SDK connections directly instead\n  of using OpenStackClients.ironic()\n- Rename IronicNode.from_ironicclient to from_openstacksdk with\n  updated attribute mappings (id, is_maintenance)\n- Update test utilities to create openstacksdk Node objects\n- Add ironic keystoneauth config to devstack plugin\n\nGenerated-By: claude-code (claude-opus-4.6)\nChange-Id: Ibc3531d469bf28c5f1b29274f4e306011e87fd33\nSigned-off-by: jgilaber \u003cjgilaber@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/8a55d3be4e9ef3e80eb797d62adb0a8f0f896aae"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/8a55d3be4e9ef3e80eb797d62adb0a8f0f896aae"}]},"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"},{"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":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
