)]}'
{"id":"openstack%2Fwatcher-specs~1005750","triplet_id":"openstack%2Fwatcher-specs~master~I58058487e5e69764bdb1035a9df7adfccb8659d1","project":"openstack/watcher-specs","branch":"master","attention_set":{"34452":{"account":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"last_update":"2026-09-15 15:25:49.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I58058487e5e69764bdb1035a9df7adfccb8659d1","subject":"Add spec for OpenStackSDK migration 2027.1","status":"NEW","created":"2026-09-15 15:25:45.000000000","updated":"2026-09-15 17:06:54.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"435200c311e981079737fb5b5aaadbc4af1ade6e","_number":1005750,"virtual_id_number":1005750,"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":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-09-15 17:06:54.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":-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":[{"_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":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Standard Change","+1":"Important Change","+2":"High Priority Change"},"description":"","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"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-09-15 15:25:49.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-09-15 15:56:29.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":"74a301a9939581a011be77d470f5b5f487989b8f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-09-15 15:25:45.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"838d4f9383d0c8d5dbf4a0827a330302ab397215","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-09-15 15:25:49.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"b631e062d95dbf6a5ad5725b9f52ecb2881f0887","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-09-15 15:37:49.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/6137e983d3cc48be865441941335bf1a\n\n- teim-code-review https://zuul.teim.app/t/main/build/21143c8aced74e88b7a12f0b4f3bc685 : SUCCESS in 11m 55s","accounts_in_message":[],"_revision_number":1},{"id":"fbc453f455243335059583a344693a923b598a77","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-15 15:56:29.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c3e400e9d9634005a1911c0afc832513\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5ab66fffbd19495ba185bab789c6f760 : SUCCESS in 7m 45s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/edf3a8d9469945ebb98cf9055e3cf0c7 : SUCCESS in 3m 18s","accounts_in_message":[],"_revision_number":1},{"id":"fdac26cbf22c379c955df2fc25c4edc8316f00d8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-09-15 16:45:04.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"f85c3f65538d082bbee836a40f592ab7a7b70070","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-09-15 16:45:08.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"292932522b13d1ec876a450faf0fe34ab244708d","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-09-15 16:55:30.000000000","message":"Patch Set 2:\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/01722ccad6df4a859009eca387ef1bcb\n\n- teim-code-review https://zuul.teim.app/t/main/build/dcda543c074540aab0b8240b45b6c866 : SUCCESS in 10m 17s","accounts_in_message":[],"_revision_number":2},{"id":"435200c311e981079737fb5b5aaadbc4af1ade6e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-15 17:06:54.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9665c66dcd2d4a5b995163d024b93d47\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0a307c00192c44e4bf0523b99e555940 : SUCCESS in 7m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/630fe997e2694059a61201b343a8b376 : SUCCESS in 4m 46s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"08749f519c2e3c92f4d2ec4ea199a705e4aad417","revisions":{"3bd82e7d0d2694bda15113bab567702e4578db1b":{"kind":"REWORK","_number":1,"created":"2026-09-15 15:25:45.000000000","uploader":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"ref":"refs/changes/50/1005750/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-specs","ref":"refs/changes/50/1005750/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-specs refs/changes/50/1005750/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-specs refs/changes/50/1005750/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-specs refs/changes/50/1005750/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-specs refs/changes/50/1005750/1"}}},"commit":{"parents":[{"commit":"815ed72b57fe68802e665740ea547999fdeabb80","subject":"Merge \"Add 2027.1 spec structure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-specs/commit/815ed72b57fe68802e665740ea547999fdeabb80"}]}],"author":{"name":"jgilaber","email":"jgilaber@redhat.com","date":"2026-09-15 15:22:57.000000000","tz":120},"committer":{"name":"jgilaber","email":"jgilaber@redhat.com","date":"2026-09-15 15:24:08.000000000","tz":120},"subject":"Add spec for OpenStackSDK migration 2027.1","message":"Add spec for OpenStackSDK migration 2027.1\n\nContinue the phased migration from individual Python client\nlibraries to OpenStackSDK. This iteration covers:\n\n- Ironic helper migration (carried from 2026.2), preceded by\n  Python functional tests for the saving_energy strategy\n- Watcher resource-optimization proxy contribution to OpenStackSDK\n- Stretch goal: migrate python-watcherclient consumers to the proxy\n\nPrevious iterations:\n- 2026.1: specs/2026.1/implemented/use_openstacksdk.rst\n- 2026.2: specs/2026.2/approved/use_openstacksdk.rst\n\nGenerated-By: claude-code (claude-sonnet-4-6)\nChange-Id: I58058487e5e69764bdb1035a9df7adfccb8659d1\nSigned-off-by: jgilaber \u003cjgilaber@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-specs/commit/3bd82e7d0d2694bda15113bab567702e4578db1b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-specs/commit/3bd82e7d0d2694bda15113bab567702e4578db1b"}]},"branch":"refs/heads/master"},"08749f519c2e3c92f4d2ec4ea199a705e4aad417":{"kind":"REWORK","_number":2,"created":"2026-09-15 16:45:04.000000000","uploader":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"ref":"refs/changes/50/1005750/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-specs","ref":"refs/changes/50/1005750/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-specs refs/changes/50/1005750/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-specs refs/changes/50/1005750/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-specs refs/changes/50/1005750/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-specs refs/changes/50/1005750/2"}}},"commit":{"parents":[{"commit":"815ed72b57fe68802e665740ea547999fdeabb80","subject":"Merge \"Add 2027.1 spec structure\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-specs/commit/815ed72b57fe68802e665740ea547999fdeabb80"}]}],"author":{"name":"jgilaber","email":"jgilaber@redhat.com","date":"2026-09-15 15:22:57.000000000","tz":120},"committer":{"name":"jgilaber","email":"jgilaber@redhat.com","date":"2026-09-15 16:44:58.000000000","tz":120},"subject":"Add spec for OpenStackSDK migration 2027.1","message":"Add spec for OpenStackSDK migration 2027.1\n\nContinue the phased migration from individual Python client\nlibraries to OpenStackSDK. This iteration covers:\n\n- Ironic helper migration (carried from 2026.2), preceded by\n  Python functional tests for the saving_energy strategy\n- Watcher resource-optimization proxy contribution to OpenStackSDK\n- Stretch goal: migrate python-watcherclient consumers to the proxy\n\nPrevious iterations:\n- 2026.1: specs/2026.1/implemented/use_openstacksdk.rst\n- 2026.2: specs/2026.2/approved/use_openstacksdk.rst\n\nGenerated-By: claude-code (claude-sonnet-4-6)\nChange-Id: I58058487e5e69764bdb1035a9df7adfccb8659d1\nSigned-off-by: jgilaber \u003cjgilaber@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-specs/commit/08749f519c2e3c92f4d2ec4ea199a705e4aad417"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-specs/commit/08749f519c2e3c92f4d2ec4ea199a705e4aad417"}]},"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"},{"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":""}}}]}
