)]}'
{"id":"openstack%2Fkeystone~980577","triplet_id":"openstack%2Fkeystone~master~I74a09cc298bdc38e7361412f89b98a0de9200b95","project":"openstack/keystone","branch":"master","attention_set":{},"removed_from_attention_set":{"13478":{"account":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"last_update":"2026-04-03 17:21:34.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I74a09cc298bdc38e7361412f89b98a0de9200b95","subject":"Remove legacy remove_role_from_user_and_project","status":"MERGED","created":"2026-03-14 23:42:40.000000000","updated":"2026-04-03 17:21:34.000000000","submitted":"2026-04-03 17:21:34.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"980577","meta_rev_id":"6fd15a01a1b9d2c8b5a4a33884d6c9d22bf2805d","_number":980577,"virtual_id_number":980577,"owner":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},{"value":0,"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-04-03 17:21:34.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":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"all":[{"value":2,"date":"2026-04-03 15:32:21.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},{"value":2,"date":"2026-04-03 15:39:19.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},{"value":0,"_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":{"approved":{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},"all":[{"value":0,"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},{"value":1,"date":"2026-04-03 15:39:19.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},{"value":0,"_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}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-03-15 00:17:55.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":"CC"},{"updated":"2026-03-15 00:45:26.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-04-03 15:32:21.000000000","updated_by":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"reviewer":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"state":"REVIEWER"},{"updated":"2026-04-03 15:39:19.000000000","updated_by":{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},"reviewer":{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},"state":"REVIEWER"}],"messages":[{"id":"d74bc72ee4d9e9de57e621db6e033bc166032a11","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"date":"2026-03-14 23:42:40.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"94b45d10465c4c4b5950f1498565447076251024","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-15 00:17:55.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/05f6cc0725a64428b6fcd3efa74238f0\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/34be1ee151584cd1bf4f779f66ebd128 : SUCCESS in 18m 45s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/792d7a14a4c54f65a4c179bd39e7b2a9 : SUCCESS in 15m 17s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/3fff0cde91874467bb34c7b7a80a1315 : SUCCESS in 32m 29s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"db1dab1e3eac49bbfd41d81d52cf997473c23fa8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-15 00:45:26.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8d9828bb00ce4e79b1d6fbec767e81ee\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/db956e2dcc094eadb59d08d6f93d52a9 : SUCCESS in 19m 19s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/20cc8c7697a84f1c8b2f595456c3537b : SUCCESS in 5m 22s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/8aa5d5274bd349099e476c774fcc31a4 : SUCCESS in 9m 26s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e85af551bfab41a790de1c344800614f : SUCCESS in 10m 14s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/47c3c11491b24cd08a69b109e93e2e58 : SUCCESS in 10m 55s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c649544fbc904ec1bd626ed091698edb : SUCCESS in 11m 28s\n- grenade https://zuul.opendev.org/t/openstack/build/ef3f82dee44f45cbab11fed01ac1185e : SUCCESS in 33m 44s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/7e73d777ff7a4945b1d1dbff0e2ae353 : SUCCESS in 53m 19s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/63d2e88493c8403485628f9f0c8d7505 : SUCCESS in 9m 35s (non-voting)\n- keystone-tempest https://zuul.opendev.org/t/openstack/build/554120210b184416a3fa190e06f29834 : SUCCESS in 13m 13s\n- keystone-tempest-fips https://zuul.opendev.org/t/openstack/build/fe8d5abf4f2c483db4c1b78a3c39caad : FAILURE in 8m 52s (non-voting)\n- keystone-tempest-federation https://zuul.opendev.org/t/openstack/build/ebf512ae6ec54165b24ba7f082ea7249 : FAILURE in 12m 55s (non-voting)\n- keystone-tempest-federation-k2k https://zuul.opendev.org/t/openstack/build/f5d5a6abf67e4136a33c81204dc1c266 : SUCCESS in 15m 31s\n- keystone-tempest-oidc-federation https://zuul.opendev.org/t/openstack/build/be1fed9bb5dd47f299e6841b5c3e1f36 : SUCCESS in 13m 40s\n- keystone-tempest-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/35ac3d8056e643709fbc01d0f483d634 : SUCCESS in 19m 11s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/f7c25734e0f84f5a960a48f689251041 : SUCCESS in 57m 56s\n- keystone-protection-functional https://zuul.opendev.org/t/openstack/build/0ccf2b28b31546c59471c5db40d18b11 : FAILURE in 27m 18s (non-voting)\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/cbfd94a1a5434e438c090a431772c51c : RETRY_LIMIT in 5m 08s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"ae6043374da752931d34fe0211cb5b3ce8c3dae5","author":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"date":"2026-04-03 15:32:21.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"c7edba8cd716536b59d3288a234bfd96c01e3000","author":{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"},"date":"2026-04-03 15:39:19.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"778f450c927394b8a2f1138fe0130b23e080ae55","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-03 15:39:48.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"29d6ce25c619c870de00781457c97312ffd016b6","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-03 17:21:34.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b8c1ae59838b4d58a84f9192c5c910df\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/433347f959ba43c797db5ee8830bcb50 : SUCCESS in 5m 05s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/786b31be54f64f9faab16411c38ad287 : SUCCESS in 8m 16s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/ab8b2816026e408cb937213335be671a : SUCCESS in 10m 59s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2c9c02d3cd7a4c76a4cba72cfb903339 : SUCCESS in 13m 52s\n- grenade https://zuul.opendev.org/t/openstack/build/4ed5e83bd69d44d4b47d6346367aaa0d : SUCCESS in 31m 18s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/7146c78aec2c4998b8135a87219c20c1 : SUCCESS in 1h 28m 12s\n- keystone-tempest https://zuul.opendev.org/t/openstack/build/210d5d6859004844bc7ea12218387795 : SUCCESS in 21m 24s\n- keystone-tempest-federation-k2k https://zuul.opendev.org/t/openstack/build/cc8454d3523645e7b4cde29ccf593ee1 : SUCCESS in 32m 14s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/93d8a064978a4c60aee6639041d22225 : SUCCESS in 44m 46s\n- keystone-protection-functional https://zuul.opendev.org/t/openstack/build/a0660183bc4643bf82452fac9e95b70b : FAILURE in 41m 25s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"6fd15a01a1b9d2c8b5a4a33884d6c9d22bf2805d","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-03 17:21:34.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"f56ae26d5d27dc1b76109ab319a79c30840ec0f5","revisions":{"f56ae26d5d27dc1b76109ab319a79c30840ec0f5":{"kind":"REWORK","_number":1,"created":"2026-03-14 23:42:40.000000000","uploader":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"ref":"refs/changes/77/980577/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/77/980577/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/77/980577/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/77/980577/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/77/980577/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/77/980577/1"}}},"commit":{"parents":[{"commit":"2f5085676a305773ad6012e1819fa21931634988","subject":"Merge \"api-ref: add missing enabled field on endpoint\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/2f5085676a305773ad6012e1819fa21931634988"}]}],"author":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-03-14 23:21:52.000000000","tz":60},"committer":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-03-14 23:21:52.000000000","tz":60},"subject":"Remove legacy remove_role_from_user_and_project","message":"Remove legacy remove_role_from_user_and_project\n\nThe remove_role_from_user_and_project method is a legacy V2 API\nremnant with no production callers. All API-driven role\nunassignment goes through delete_grant. Keeping both methods\ncreates a confusing parallel code path with subtly different\nbehavior (different exceptions, different side effects around\napplication credential cleanup).\n\nRemove the method from the assignment manager, SQL backend, and\nabstract driver interface. Update all tests to use delete_grant\ninstead.\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nSigned-off-by: Boris Bobrov \u003cb.bobrov@sap.com\u003e\nChange-Id: I74a09cc298bdc38e7361412f89b98a0de9200b95\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/f56ae26d5d27dc1b76109ab319a79c30840ec0f5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/f56ae26d5d27dc1b76109ab319a79c30840ec0f5"}]},"branch":"refs/heads/master"}},"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":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":7414,"name":"David Wilde","email":"dwilde@redhat.com","username":"d34dh0r53"}}]}],"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":{}}}]}
