)]}'
{"id":"openstack%2Ftrove~976648","triplet_id":"openstack%2Ftrove~stable%2F2025.2~Iec12b7f6c51fa8812d61787547803c4ed01dec66","project":"openstack/trove","branch":"stable/2025.2","topic":"bug/postgresql-fix-user-password-change-and-access-stable/2025.2","attention_set":{},"removed_from_attention_set":{"26285":{"account":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"last_update":"2026-02-26 01:20:49.000000000","reason":"\u003cGERRIT_ACCOUNT_26285\u003e replied on the change","reason_account":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}},"37598":{"account":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"last_update":"2026-02-26 02:07:18.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Iec12b7f6c51fa8812d61787547803c4ed01dec66","subject":"Postgres: Fix user password change and access","status":"MERGED","created":"2026-02-12 15:47:37.000000000","updated":"2026-02-26 02:16:52.000000000","submitted":"2026-02-26 02:07:18.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"976648-bug/postgresql-fix-user-password-change-and-access-stable/2025.2","cherry_pick_of_change":970825,"cherry_pick_of_patch_set":4,"meta_rev_id":"42534daf331f8bd816263e81300bc59ba8d81b1f","_number":976648,"virtual_id_number":976648,"owner":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-02-26 02:07:18.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-02-26 01:20:49.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"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":{"approved":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-02-26 01:20:49.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"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"]},{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"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-02-12 15:47:37.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"state":"CC"},{"updated":"2026-02-12 15:48:00.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"state":"REVIEWER"},{"updated":"2026-02-12 17:36:47.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":"a3a5882c99cb09b85c362f160e3b34af7c5a9a5f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-02-12 15:47:37.000000000","message":"Patch Set 1: Cherry Picked from branch master.","accounts_in_message":[],"_revision_number":1},{"id":"d072e36b0b5d3ab2d9942bf27d862f020950e5b8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-12 17:36:47.000000000","message":"Patch Set 1: 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/ef7e1908149d40aba67951d8b51c4065\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/000298fc02a1453cb1b1922934f9d92d : SUCCESS in 6m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a542b20451524587a64c187483747ae5 : SUCCESS in 5m 24s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/fbc305242e524273a5882a09bbfed97e : SUCCESS in 5m 50s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/0439b133d0a644fa8dba9198744f7d56 : SUCCESS in 4m 14s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/87988d3266e64213a4f67d7bd8e890d1 : SUCCESS in 9m 08s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a2fe88982b4c407ca95aa04636b74999 : SUCCESS in 4m 06s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/adfb40b2917e4c57b8beddc22a9b3a84 : SUCCESS in 7m 27s\n- trove-tempest-ubuntu-backup-mysql8.4 https://zuul.opendev.org/t/openstack/build/1591694480694b188074fc302b2f19b3 : SUCCESS in 1h 47m 48s (non-voting)\n- trove-tempest-ubuntu-backup-mariadb11.4 https://zuul.opendev.org/t/openstack/build/f013967fafce4ca196636e5c3e6b21e0 : SUCCESS in 1h 38m 14s (non-voting)\n- trove-tempest-ubuntu-base-postgresql17 https://zuul.opendev.org/t/openstack/build/e21e19aa1413493fa1a885911cc9595a : SUCCESS in 46m 04s\n- trove-tempest-ubuntu-backup-postgresql17 https://zuul.opendev.org/t/openstack/build/b0d0ec8c3e2243309ebfd8d73686852c : SUCCESS in 1h 33m 21s (non-voting)\n- trove-tempest-ubuntu-replication-postgresql17 https://zuul.opendev.org/t/openstack/build/29359fc4c14f40b28c8bd0279d9ea2ed : SUCCESS in 1h 20m 45s (non-voting)\n- trove-tempest-cinder-storage-driver-postgresql17 https://zuul.opendev.org/t/openstack/build/7190af46e24f49c9ba39e290ffa5a8fd : SUCCESS in 1h 24m 58s (non-voting)\n- trove-tox-bandit-baseline https://zuul.opendev.org/t/openstack/build/fd71ad84ac4d414d8cc0205dd723aeba : POST_FAILURE in 4m 00s","accounts_in_message":[],"_revision_number":1},{"id":"8e37191ec59c2cec11b0f832c2a951b6da77c936","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-02-13 09:25:44.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"03b3e6f439b163acec7bfd45e93685ad19097435","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-13 10:49:25.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bb398ef638384c8bb51afbb0dac7c371\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d9f101b04e544de7a2668fca37249a64 : SUCCESS in 8m 20s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/16415eaf2ab54c29af74892edd83e549 : SUCCESS in 5m 46s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/d1814ebd455a4eda9c1fc657d1a05ea1 : SUCCESS in 6m 11s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/23a06926dd62454f984880e2c4b1d192 : SUCCESS in 3m 43s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/9e4eeca00039446e9c63dfa4f86ff1a6 : SUCCESS in 10m 51s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8a95b604b38042198a5d66e305df15c1 : SUCCESS in 3m 50s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/10d3f2c2cdde428388c1daae44b9f0bc : SUCCESS in 6m 01s\n- trove-tempest-ubuntu-backup-mysql8.4 https://zuul.opendev.org/t/openstack/build/02c9914ba09147aca64f5c2b8bb1bac2 : FAILURE in 30m 35s (non-voting)\n- trove-tempest-ubuntu-backup-mariadb11.4 https://zuul.opendev.org/t/openstack/build/a5eb99f462664f3a82f70f62b11fb80d : FAILURE in 33m 10s (non-voting)\n- trove-tempest-ubuntu-base-postgresql17 https://zuul.opendev.org/t/openstack/build/317720da895b41ccadf412de6f0f10b9 : SUCCESS in 45m 11s\n- trove-tempest-ubuntu-backup-postgresql17 https://zuul.opendev.org/t/openstack/build/4123def7c2e048e59a3bc318e011d0f5 : FAILURE in 51m 35s (non-voting)\n- trove-tempest-ubuntu-replication-postgresql17 https://zuul.opendev.org/t/openstack/build/5a0ae4f6cc2b4611b551380ae9be5076 : FAILURE in 35m 03s (non-voting)\n- trove-tempest-cinder-storage-driver-postgresql17 https://zuul.opendev.org/t/openstack/build/1da7f30af385427da850fead026da9e9 : SUCCESS in 1h 20m 04s (non-voting)\n- trove-tox-bandit-baseline https://zuul.opendev.org/t/openstack/build/f8ca467af80d438ba19c53e2c26714f3 : SUCCESS in 6m 01s","accounts_in_message":[],"_revision_number":1},{"id":"0927d6b42becabdfafbe4936f27c6cf183c1e8db","author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"date":"2026-02-26 01:20:49.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"58e1776f69602ba53498c9785bcc0b43dd5dd377","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-26 01:21:08.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"b4ffafc74c60abc3d1410b38d93ba415dd309485","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-26 02:07:18.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/43541940bd6e4962890f2c6444db56e9\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/581064a9b9c54045b72ad27496bcc873 : SUCCESS in 3m 46s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/3c954984ec8543fe9474b8714a575f09 : SUCCESS in 3m 10s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/06a52cb42ac3450bac5196ce000afc5f : SUCCESS in 6m 00s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e6f0abc81d6143e9adac5d57a0947521 : SUCCESS in 2m 47s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/288016fb5baa444c95feb165cc79e8c7 : SUCCESS in 9m 11s\n- trove-tempest-ubuntu-base-postgresql17 https://zuul.opendev.org/t/openstack/build/8f0f49e365fc4252931c99f4cb76e30b : SUCCESS in 45m 40s","accounts_in_message":[],"_revision_number":1},{"id":"da0e61f5c2d00325ffcf4e615631a60eacd89c6c","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-26 02:07:18.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"42534daf331f8bd816263e81300bc59ba8d81b1f","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-26 02:16:52.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/09a21e7c82cd4782981c03a6758ece1f\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/389d3588b38c42fbaae2d45cb2e4587e : SUCCESS in 54s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/26029d717e5646abb7974750cb302d5f : SUCCESS in 1m 00s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"e1f43bdfff8dc9de1bdc510ade7602dd8ebcc8c9","revisions":{"e1f43bdfff8dc9de1bdc510ade7602dd8ebcc8c9":{"kind":"REWORK","_number":1,"created":"2026-02-12 15:47:37.000000000","uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/48/976648/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/trove","ref":"refs/changes/48/976648/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/trove refs/changes/48/976648/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/trove refs/changes/48/976648/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/trove refs/changes/48/976648/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/trove refs/changes/48/976648/1"}}},"commit":{"parents":[{"commit":"e0c3080405f4b5a28ec0e43988ff21414a8819cb","subject":"Fix PostgreSQL cinder backup failure due to lost backend connection","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/e0c3080405f4b5a28ec0e43988ff21414a8819cb"}]}],"author":{"name":"Erkin Mussurmankulov","email":"mangust404@gmail.com","date":"2025-12-12 11:43:55.000000000","tz":300},"committer":{"name":"Ivan Anfimov","email":"lazekteam@gmail.com","date":"2026-02-12 15:47:37.000000000","tz":0},"subject":"Postgres: Fix user password change and access","message":"Postgres: Fix user password change and access\n\nAddress multiple issues in PostgreSQL guest agent.\n1. Fixes an \u0027AttributeError: \u0027PostgreSQLUser\u0027 object has no\n   attribute \u0027_name\u0027\u0027 when changing a user\u0027s password due to\n   improper deserialization in `PgSqlAdmin.change_passwords`.\n\n2. Updates the `grant_access` and `revoke_access` methods to\n   handle PostgreSQL changes in versions 14+ and 16+:\n   - Explicitly grants/revokes schema (public) access (PostgreSQL 14+).\n   - Revokes CONNECT privilege from PUBLIC to ensure proper\n     revocation in `revoke_access`.\n   - Ensures connection is made to the specific database for\n     grant/revoke operations (PostgreSQL 16+).\n\nCode in the patchset passes functional test scenario:\n- create user\n- check user can connect to his own db\n- change user password\n- check user can connect to his own db with new password\n- create database2\n- grant access to the database2 for user\n- check that user can connect to the database2\n- revoke access to the database2 from user\n- check that user cannot connect to the database2\n- grant access to the database2 for user\n- check that user can connect to the database2\n- remove database2\n- check that database2 was removed\nagainst postgresql of versions: 12.22, 14.19, 16.10, 17.7 and 18.1\n\nChange-Id: Iec12b7f6c51fa8812d61787547803c4ed01dec66\nSigned-off-by: Erkin Mussurmankulov \u003cmangust404@gmail.com\u003e\n(cherry picked from commit 665b55309a6dad392283e8f83d9389ae8fadc3ba)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/e1f43bdfff8dc9de1bdc510ade7602dd8ebcc8c9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/e1f43bdfff8dc9de1bdc510ade7602dd8ebcc8c9"}]},"branch":"refs/heads/stable/2025.2"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","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":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"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":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
