)]}'
{"id":"openstack%2Fopenstacksdk~1004588","triplet_id":"openstack%2Fopenstacksdk~master~I96d1049d2ca693f9bdd60618ffd067044e308f74","project":"openstack/openstacksdk","branch":"master","attention_set":{},"removed_from_attention_set":{"5890":{"account":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"last_update":"2026-09-14 22:49:58.000000000","reason":"Change was submitted"},"9914":{"account":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"last_update":"2026-09-14 22:49:58.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I96d1049d2ca693f9bdd60618ffd067044e308f74","subject":"key-manager: Fix SecretACL proxy and broken functional tests","status":"MERGED","created":"2026-09-08 12:24:05.000000000","updated":"2026-09-14 22:51:26.000000000","submitted":"2026-09-14 22:49:58.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":"1004588","meta_rev_id":"cd3aa069ea2bab03fdc07d28b2f3375601837aeb","_number":1004588,"virtual_id_number":1004588,"owner":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-09-14 22:49:58.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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":2,"date":"2026-09-14 21:09:58.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":1,"date":"2026-09-14 21:09:58.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"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},"Allow-Post-Review":{"all":[{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Abstain","+1":"Approved for Zuul Post Review Pipeline"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"}],"reviewers":{"REVIEWER":[{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-09-08 13:58:56.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-09-10 10:01:43.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":9914,"name":"Ade Lee","email":"alee@redhat.com","username":"alee"},"state":"REVIEWER"},{"updated":"2026-09-10 10:01:43.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"state":"REVIEWER"}],"messages":[{"id":"4542d1be16244406e960f56eed2bffb713cbe290","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-09-08 12:24:05.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"4932b52fe8fe368768aa87bdc9b4f65f74c98beb","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-08 13:58:56.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/51022117d1f84c2893a6a1fb5cb8566c\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/30328875a91943668a9443c26b9bce9b : SUCCESS in 3m 35s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/c5484f7b7e1e441f80dddabcc260dc5c : SUCCESS in 3m 16s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/03b23d7a5b5c490d9e7df994ae45b3cd : SUCCESS in 5m 01s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a56c69b7ca504186a0d8ce44b3bc855d : SUCCESS in 6m 01s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/3e3f42233cec40b5aad6916eaaf9aca0 : SUCCESS in 8m 56s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/ca4a9830a7aa43139a23a60a37754dc0 : SUCCESS in 7m 55s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/48e35a7ef1684e0bb85daba584836a00 : SUCCESS in 32m 48s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/10e18fc888f540b9b5b9c96ec9928858 : SUCCESS in 3m 52s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/b121b81740c8462ea69759bef5cdfbaa : SUCCESS in 4m 54s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/4f8406ed45ee4b81abbcc601f08c5043 : SUCCESS in 5m 19s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2f706c8b753f4b7faa7effa902586e3e : SUCCESS in 12m 09s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/41bfcc1aac5d41aa87f46e808301563a : SUCCESS in 4m 52s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/fe75969963914b218c8096d2b30c18b9 : SUCCESS in 57m 31s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/7533efb502aa421d9c20f9c16a27b27c : SUCCESS in 1h 20m 16s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/ee98af2186f9448fad1f547d252824a5 : FAILURE in 1h 27m 27s (non-voting)\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/64d9a31879b5432f99e5c1c9ae2f900f : FAILURE in 53m 39s (non-voting)\n- openstacksdk-functional-devstack-manila https://zuul.opendev.org/t/openstack/build/a959528a8e1b4c979f4b804eb9cb57f7 : SUCCESS in 34m 22s\n- openstacksdk-functional-devstack-compute-manila https://zuul.opendev.org/t/openstack/build/6b28cb0d1a0d48af8a2c2d54d0ac7854 : SUCCESS in 28m 25s\n- openstacksdk-functional-devstack-cyborg https://zuul.opendev.org/t/openstack/build/29dc1ec758964de4b117e9caead533db : SUCCESS in 49m 39s\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/c72d0f3a94a641daba15b355ba09a4fe : SUCCESS in 29m 42s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/282f36a937fa4117abeb16ea78f660f9 : SUCCESS in 51m 14s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/d477324323db41b68bd5ff08e0227e4f : POST_FAILURE in 38m 56s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/906f43526b38427290fc5fdd15066379 : SUCCESS in 1h 13m 31s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"4ae5983ba4d61be4f8910e663f7aa061d378fb10","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-09-12 12:02:25.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"0713d99ba3af7b65383466277a4bc4b531338825","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-12 13:29:27.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5463776de06545bf8fe78af724d9f122\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0dbb151432ee483c9abfb451927a57c7 : SUCCESS in 4m 46s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e6ec4ceb301b464794839aebb69853f3 : SUCCESS in 3m 40s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/5d5335946a2948a996c0be844231bcea : SUCCESS in 4m 19s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a183270511d641ca988ca71cb0c8c68a : SUCCESS in 5m 25s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/85162781743e4fa3bfbedeeb4ab1aba9 : SUCCESS in 3m 44s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/71dee2d7640b4d66b011bc1ca56be667 : SUCCESS in 4m 19s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/e79fd8a61d5d45de99ced18bfde16962 : SUCCESS in 39m 49s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/a103e2e8a0e84595a0427640a98b2f7b : SUCCESS in 3m 13s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/a941e9492e1d48f9bc67e91ffa5768b0 : SUCCESS in 5m 28s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/df50ee050fd54ab19c903f5c5d267bb0 : SUCCESS in 7m 52s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e1a30895d14349efa744e55e16b2c68e : SUCCESS in 10m 30s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/b3541d216f0b45fa89881d25cba740c0 : SUCCESS in 4m 24s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/c0eba788c7da4b1fb749a2e9ff19a947 : SUCCESS in 28m 20s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/0eb19be41fe04d5e898f95583552120b : SUCCESS in 1h 20m 31s\n- openstacksdk-functional-devstack-networking-ext https://zuul.opendev.org/t/openstack/build/10158409569847c99b64aec99260dfb6 : FAILURE in 56m 32s (non-voting)\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/09b905c13aea4aeab4b78402d2b90751 : FAILURE in 47m 30s (non-voting)\n- openstacksdk-functional-devstack-manila https://zuul.opendev.org/t/openstack/build/9a72d204aea54ed986fb01764a412316 : SUCCESS in 32m 47s\n- openstacksdk-functional-devstack-compute-manila https://zuul.opendev.org/t/openstack/build/60d2745f93d3494aab933447aeebc69d : SUCCESS in 29m 40s\n- openstacksdk-functional-devstack-cyborg https://zuul.opendev.org/t/openstack/build/6e765cf2487e42358a377c224943daf6 : SUCCESS in 17m 03s\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/b4e93426e4834db895255c48a2a26d47 : SUCCESS in 22m 54s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/43b0f6239b4646cc81d6ea8c8477a01d : SUCCESS in 28m 01s\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/44dd76b1620d491ba8685871f97a610e : SUCCESS in 1h 02m 48s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/a092c66b8d534bf7a9959ff778ee5c08 : SUCCESS in 34m 46s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"d9404f0d3c3900ae7c1c3b5f53e4ca07923f0f85","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-09-14 21:09:58.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"0ce8ca0fa70567bf48bc87c9a9c73e3672a809d7","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-14 21:11:09.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"0d08cbc5b6c34febd7e1651204d4ab680d0ab911","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-14 22:49:58.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7a775b156d974e09b02e26336d79eaf1\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cc9a5305a11044a8b0b71748563ab59c : SUCCESS in 5m 46s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/9fb10dc686dc4063886bbd11ab97742f : SUCCESS in 4m 07s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/d2fa5efb7bda4b07980004617dd5c909 : SUCCESS in 5m 38s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/43b1306965204556bff40223e86ed90b : SUCCESS in 7m 04s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/8cd8421b8ca34bd78c4d63dd2b2278b6 : SUCCESS in 57m 29s\n- os-client-config-tox-py311-tips https://zuul.opendev.org/t/openstack/build/b85299f66f5f44e88a3f060b99d8825e : SUCCESS in 3m 50s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/2b95d55e00644cd5ba6bc2b99452fab1 : SUCCESS in 4m 54s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/062829f81802445db8c2f70ba9ef3f7c : SUCCESS in 7m 41s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/71201c98e7d14bd48619a03e5d9a5562 : SUCCESS in 12m 14s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/2a4eb48b14584cb3b7608a414457139c : SUCCESS in 5m 25s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/abb3368d76804380aff13551b3b9049e : SUCCESS in 1h 03m 45s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/3d42fe957f6844559bb941c6897eed25 : SUCCESS in 1h 25m 11s\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/07a704edc61b44dbac938ce96bedd29a : SUCCESS in 47m 15s","accounts_in_message":[],"_revision_number":2},{"id":"9a2ddb5ab1a3339327e55163841fd08ad5b3e895","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-14 22:49:58.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"cd3aa069ea2bab03fdc07d28b2f3375601837aeb","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-14 22:51:26.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5375a4661aff48f08f4ff0fd39300645\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/114e6001d58447f58d760761642b7731 : SUCCESS in 51s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"45e4c43181c4778a60ebba88043c67ef9c71945f","revisions":{"45f58c9b4954a2061cfe27f4fc1428ae5212e452":{"kind":"REWORK","_number":1,"created":"2026-09-08 12:24:05.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/88/1004588/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/88/1004588/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/88/1004588/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/88/1004588/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/88/1004588/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/88/1004588/1"}}},"commit":{"parents":[{"commit":"31d4f7e80475ead98d7ca1e947e2b9ca675cb998","subject":"Merge \"config: Separate parsing of .metrics section\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/31d4f7e80475ead98d7ca1e947e2b9ca675cb998"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-09-08 12:08:01.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-09-08 12:13:25.000000000","tz":60},"subject":"key-manager: Fix SecretACL proxy and broken functional tests","message":"key-manager: Fix SecretACL proxy and broken functional tests\n\nThe SecretACL proxy methods were passing path_args\u003d{\"secret_id\": sid}\nwhich is silently ignored by the resource framework, leaving\n_uri.attributes empty and causing KeyError when formatting the\nbase_path template. Fix by passing secret_id\u003dsid directly (the URI\nfield name), matching the pattern used by SecretConsumer. Also add\nrequires_id \u003d False to SecretACL so commit()/delete() do not try to\nappend a resource ID.\n\npath_args was a real parameter in the old proxy2/resource2 framework\n(introduced 2015) but was never implemented in the current proxy.py\nand resource.py (introduced January 2018) - it silently falls into\n**attrs and is ignored. Even the docstring reference to it was removed\nin August 2024 (commit 6822ab9d1). SecretACL was introduced in October\n2025, well after path_args stopped being documented or functional, so\nthe proxy was broken from day one.\n\nFix test_cleanup_key_manager which passed s.id to get_secret(); s.id\non a Secret returns the full secret_ref URL via the alternate_id\nfallback in Resource.__getattribute__, producing a malformed request\nURL. Use s.secret_id instead, which applies the HREFToUUID converter\nto yield only the UUID.\n\nFix test_project_quotas which created a key-manager:service-admin role\nto satisfy an old Barbican policy. With enforce_new_defaults\u003dTrue\n(the current devstack default) the project_quotas:put rule requires\nrole:admin in project scope; assign the pre-existing admin role to the\noperator user in the test project instead.\n\nChange-Id: I96d1049d2ca693f9bdd60618ffd067044e308f74\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\nAssisted-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/45f58c9b4954a2061cfe27f4fc1428ae5212e452"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/45f58c9b4954a2061cfe27f4fc1428ae5212e452"}]},"branch":"refs/heads/master"},"45e4c43181c4778a60ebba88043c67ef9c71945f":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-09-12 12:02:25.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/88/1004588/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/88/1004588/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/88/1004588/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/88/1004588/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/88/1004588/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/88/1004588/2"}}},"commit":{"parents":[{"commit":"5b3e84fa6763f6d4b981a6cf45d8fbc84ceab46f","subject":"docs: Remove transition_from_profile doc","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/5b3e84fa6763f6d4b981a6cf45d8fbc84ceab46f"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-09-08 12:08:01.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-09-12 11:49:15.000000000","tz":60},"subject":"key-manager: Fix SecretACL proxy and broken functional tests","message":"key-manager: Fix SecretACL proxy and broken functional tests\n\nThe SecretACL proxy methods were passing path_args\u003d{\"secret_id\": sid}\nwhich is silently ignored by the resource framework, leaving\n_uri.attributes empty and causing KeyError when formatting the\nbase_path template. Fix by passing secret_id\u003dsid directly (the URI\nfield name), matching the pattern used by SecretConsumer. Also add\nrequires_id \u003d False to SecretACL so commit()/delete() do not try to\nappend a resource ID.\n\npath_args was a real parameter in the old proxy2/resource2 framework\n(introduced 2015) but was never implemented in the current proxy.py\nand resource.py (introduced January 2018) - it silently falls into\n**attrs and is ignored. Even the docstring reference to it was removed\nin August 2024 (commit 6822ab9d1). SecretACL was introduced in October\n2025, well after path_args stopped being documented or functional, so\nthe proxy was broken from day one.\n\nFix test_cleanup_key_manager which passed s.id to get_secret(); s.id\non a Secret returns the full secret_ref URL via the alternate_id\nfallback in Resource.__getattribute__, producing a malformed request\nURL. Use s.secret_id instead, which applies the HREFToUUID converter\nto yield only the UUID.\n\nFix test_project_quotas which created a key-manager:service-admin role\nto satisfy an old Barbican policy. With enforce_new_defaults\u003dTrue\n(the current devstack default) the project_quotas:put rule requires\nrole:admin in project scope; assign the pre-existing admin role to the\noperator user in the test project instead.\n\nChange-Id: I96d1049d2ca693f9bdd60618ffd067044e308f74\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\nAssisted-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/45e4c43181c4778a60ebba88043c67ef9c71945f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/45e4c43181c4778a60ebba88043c67ef9c71945f"}]},"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Allow-Post-Review","status":"MAY"}]}],"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":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Allow-Post-Review","description":"Allow Post Review","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":"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":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"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":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
