)]}'
{"id":"openstack%2Fpython-troveclient~998087","triplet_id":"openstack%2Fpython-troveclient~master~Icc65eed466398922dc1bf9e3b00fc14eb4860b38","project":"openstack/python-troveclient","branch":"master","attention_set":{},"removed_from_attention_set":{"5733":{"account":{"_account_id":5733,"name":"Kieran Spear","email":"kispear@gmail.com","username":"kspear"},"last_update":"2026-07-21 23:47:56.000000000","reason":"\u003cGERRIT_ACCOUNT_5733\u003e replied on the change","reason_account":{"_account_id":5733,"name":"Kieran Spear","email":"kispear@gmail.com","username":"kspear"}}},"hashtags":[],"change_id":"Icc65eed466398922dc1bf9e3b00fc14eb4860b38","subject":"Fix guest log retrieval when using token auth","status":"NEW","created":"2026-07-21 06:29:53.000000000","updated":"2026-07-21 23:56:01.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":"1544e9714123c9bdab648d3e98ecfca61e9555e1","_number":998087,"virtual_id_number":998087,"owner":{"_account_id":5733,"name":"Kieran Spear","email":"kispear@gmail.com","username":"kspear"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-07-21 23:56:01.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},"Backport-Candidate":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-21 06:40: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"},{"updated":"2026-07-21 18:21:11.000000000","updated_by":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"reviewer":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"state":"CC"}],"messages":[{"id":"7a41cbc3c026453764f24434194e4ee3294ad94f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5733,"name":"Kieran Spear","email":"kispear@gmail.com","username":"kspear"},"date":"2026-07-21 06:29:53.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"308e239a5f3df6afded0307de706ebf54f1f260f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-21 06:40:16.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b9b5e99052b84d23b871a813f7062ba8\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2c44775918784feaaafc6fec96eef930 : SUCCESS in 3m 51s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/f080644d850a4750b8a9d7c66d9dee85 : SUCCESS in 2m 52s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/970895509b7e4606bcf744c126d356de : SUCCESS in 4m 24s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/4d44cba722134884a48b85c3d03c78b8 : FAILURE in 4m 14s (non-voting)\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/42cabbd8007a4e84ac9bc99d8287ce2a : SUCCESS in 6m 42s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5d466ec6e90840e8b893923194872c9d : SUCCESS in 3m 42s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/67df62f65d5e4e81906eff28a7caaaa2 : SUCCESS in 4m 08s","accounts_in_message":[],"_revision_number":1},{"id":"75473305e5ce925eef805fa4e19bde9a838f8401","author":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"date":"2026-07-21 18:21:11.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"7b25f424b46f3f3c7c0726619bbcd1910acb0154","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5733,"name":"Kieran Spear","email":"kispear@gmail.com","username":"kspear"},"date":"2026-07-21 23:47:22.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"7d4c316b3c80c03504be051d8a11ad5003177171","author":{"_account_id":5733,"name":"Kieran Spear","email":"kispear@gmail.com","username":"kspear"},"date":"2026-07-21 23:47:56.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"1544e9714123c9bdab648d3e98ecfca61e9555e1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-21 23:56:01.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a877b525a0084d74beb6f541494e2bef\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0412c5adc85149bb841dfb0ee0a53d1b : SUCCESS in 2m 57s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/ffac6119fb38418a8713275af1d10bde : SUCCESS in 2m 49s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4909b31a960241c4a79d535453fb2276 : SUCCESS in 2m 44s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ec9c473f75254af0a2c5c1bf989bf6a0 : FAILURE in 6m 49s (non-voting)\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/fa892a72b0f048e789ad2bcb39ca5de2 : SUCCESS in 4m 14s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1be06182f5c24f60b11d8b46c60ac506 : SUCCESS in 2m 57s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f0948349f22a4e7bad10a8c20d49eae8 : SUCCESS in 2m 55s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"b06b1424d97f9247160ebad884d47c734bf5d805","revisions":{"a38d812f39c87cb319a0e8fa8634622b9fe1caa2":{"kind":"REWORK","_number":1,"created":"2026-07-21 06:29:53.000000000","uploader":{"_account_id":5733,"name":"Kieran Spear","email":"kispear@gmail.com","username":"kspear"},"ref":"refs/changes/87/998087/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-troveclient","ref":"refs/changes/87/998087/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-troveclient refs/changes/87/998087/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-troveclient refs/changes/87/998087/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-troveclient refs/changes/87/998087/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-troveclient refs/changes/87/998087/1"}}},"commit":{"parents":[{"commit":"8e27a00e588cd324e99cdca04bac156e724b4de5","subject":"Merge \"Use unversioned environment by default\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-troveclient/commit/8e27a00e588cd324e99cdca04bac156e724b4de5"}]}],"author":{"name":"Kieran Spear","email":"kieran@aptira.com","date":"2026-07-21 06:06:25.000000000","tz":600},"committer":{"name":"Kieran Spear","email":"kieran@aptira.com","date":"2026-07-21 06:28:21.000000000","tz":600},"subject":"Fix guest log retrieval when using token auth","message":"Fix guest log retrieval when using token auth\n\nThe Swift client used to fetch published guest logs was built by\nreading private attributes (_username, _password, _project_name) off\nthe keystone auth plugin. Those attributes only exist on the password\nplugin, so when authenticating with a token the plugin is a Token\nobject and the command failed with:\n\n    AttributeError: \u0027Token\u0027 object has no attribute \u0027_username\u0027\n\nReuse the already authenticated keystone session when one is available\n(as it always is under python-openstackclient) so authentication is\ndelegated to keystoneauth and every auth type is supported. The\ncredential-based path is kept as a fallback for legacy clients without\na session.\n\nWhile here, fix the log command error handlers, which referenced\nex.message. That attribute no longer exists on Python 3 exceptions, so\nthe resulting AttributeError masked the original error instead of\nreporting it.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nChange-Id: Icc65eed466398922dc1bf9e3b00fc14eb4860b38\nSigned-off-by: Kieran Spear \u003ckieran@aptira.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-troveclient/commit/a38d812f39c87cb319a0e8fa8634622b9fe1caa2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-troveclient/commit/a38d812f39c87cb319a0e8fa8634622b9fe1caa2"}]},"branch":"refs/heads/master"},"b06b1424d97f9247160ebad884d47c734bf5d805":{"kind":"REWORK","_number":2,"created":"2026-07-21 23:47:22.000000000","uploader":{"_account_id":5733,"name":"Kieran Spear","email":"kispear@gmail.com","username":"kspear"},"ref":"refs/changes/87/998087/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-troveclient","ref":"refs/changes/87/998087/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-troveclient refs/changes/87/998087/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-troveclient refs/changes/87/998087/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-troveclient refs/changes/87/998087/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-troveclient refs/changes/87/998087/2"}}},"commit":{"parents":[{"commit":"e186e4d1176d9235a0f4c6e1bcd0e603ba3474e2","subject":"Merge \"SSL management feature support\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-troveclient/commit/e186e4d1176d9235a0f4c6e1bcd0e603ba3474e2"}]}],"author":{"name":"Kieran Spear","email":"kieran@aptira.com","date":"2026-07-21 06:06:25.000000000","tz":600},"committer":{"name":"Kieran Spear","email":"kieran@aptira.com","date":"2026-07-21 23:46:42.000000000","tz":600},"subject":"Fix guest log retrieval when using token auth","message":"Fix guest log retrieval when using token auth\n\nThe Swift client used to fetch published guest logs was built by\nreading private attributes (_username, _password, _project_name) off\nthe keystone auth plugin. Those attributes only exist on the password\nplugin, so when authenticating with a token the plugin is a Token\nobject and the command failed with:\n\n    AttributeError: \u0027Token\u0027 object has no attribute \u0027_username\u0027\n\nReuse the already authenticated keystone session when one is available\n(as it always is under python-openstackclient) so authentication is\ndelegated to keystoneauth and every auth type is supported. The\ncredential-based path is kept as a fallback for legacy clients without\na session.\n\nWhile here, fix the log command error handlers, which referenced\nex.message. That attribute no longer exists on Python 3 exceptions, so\nthe resulting AttributeError masked the original error instead of\nreporting it.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nChange-Id: Icc65eed466398922dc1bf9e3b00fc14eb4860b38\nSigned-off-by: Kieran Spear \u003ckieran@aptira.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-troveclient/commit/b06b1424d97f9247160ebad884d47c734bf5d805"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-troveclient/commit/b06b1424d97f9247160ebad884d47c734bf5d805"}]},"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":"Backport-Candidate","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":"Backport-Candidate","description":"Backport candidate status","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":"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":"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":""}}}]}
