)]}'
{"id":"openstack%2Fopenstacksdk~797647","triplet_id":"openstack%2Fopenstacksdk~master~Ibf65573a022862873c69fb1bc115d873e913b625","project":"openstack/openstacksdk","branch":"master","topic":"story/2009000","hashtags":[],"change_id":"Ibf65573a022862873c69fb1bc115d873e913b625","subject":"compute: Allow deleting of other users\u0027 keypairs","status":"ABANDONED","created":"2021-06-23 13:35:05.000000000","updated":"2021-12-01 10:00:16.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"dbeee43e7fdb1fa0b90380471912b8a989962322","_number":797647,"virtual_id_number":797647,"owner":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2021-06-23 15:59:20.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},"Allow-Post-Review":{"all":[{"_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":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},{"_account_id":33835,"name":"JIHOJU","email":"jihoju96@gmail.com","username":"JIHOJU"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-06-23 15:59:20.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":"2021-09-18 08:47:02.000000000","updated_by":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"reviewer":{"_account_id":33835,"name":"JIHOJU","email":"jihoju96@gmail.com","username":"JIHOJU"},"state":"CC"},{"updated":"2021-09-18 08:47:02.000000000","updated_by":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"reviewer":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"state":"CC"}],"messages":[{"id":"5c8ab9b32d71b73d033636c137912221ea301011","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2021-06-23 13:35:05.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"e6fdfe068832ea038e48e0c99a3510db4006a318","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2021-06-23 13:44:10.000000000","message":"Uploaded patch set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"e221ce8d57f88a70a884073e3568310d0b2343ad","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-06-23 15:59:20.000000000","message":"Patch Set 2: 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\n\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d386275f3936441389ac695358155338 : SUCCESS in 4m 41s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/4577b8af0d46448eb05f0bd6d294faf4 : SUCCESS in 5m 24s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/54dca1f013fc4fd78d6a60201093261c : SUCCESS in 6m 04s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/31d3bf6c68e747f7a0192b686789c79f : SUCCESS in 6m 21s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/18038bdb82ac4751a88241a4e3d6af12 : FAILURE in 46m 08s\n- openstacksdk-tox-py38-tips https://zuul.opendev.org/t/openstack/build/f4ecf36f59784ff19638430013f375be : SUCCESS in 6m 03s\n- os-client-config-tox-py37-tips https://zuul.opendev.org/t/openstack/build/27d7e68b41af4175bec9b8a778d44d65 : SUCCESS in 6m 17s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/ffbe92ab54374aa280641c42e27bb343 : SUCCESS in 7m 16s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/847d201eeb2e434db7bdc96da4c7f723 : SUCCESS in 8m 40s\n- opendev-buildset-registry https://zuul.opendev.org/t/openstack/build/a8b5d55d18044851893ba1d06d9390ed : SUCCESS in 2h 06m 30s\n- nodepool-build-image-siblings https://zuul.opendev.org/t/openstack/build/283d17474aeb41fd9ce945a717db797a : SUCCESS in 18m 22s\n- dib-nodepool-functional-openstack-centos-8-stream-src https://zuul.opendev.org/t/openstack/build/ce03bccc5d6b44c68afbffd3ef35bea7 : TIMED_OUT in 1h 31m 55s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/a670654b254c47a6975207e023c30d3c : FAILURE in 51m 01s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/7c340c8aa01c4f2fb9af011932d237bd : FAILURE in 1h 15m 12s\n- openstacksdk-functional-devstack-senlin https://zuul.opendev.org/t/openstack/build/3b8da63f6bec4a2ba33af6a8a98c7894 : FAILURE in 51m 31s\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/bf346fb960d444a68cec0d7462646d17 : FAILURE in 49m 20s (non-voting)\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/3e50dc4ff6394c50af97639d83515f9d : SUCCESS in 36m 35s (non-voting)\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/6a9fc7811373497e877e4cbc81d9bd4e : SUCCESS in 36m 57s (non-voting)\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/633592c5bc5e4fe8bc7d23d9c066c827 : SUCCESS in 45m 43s (non-voting)\n- ironic-inspector-tempest-openstacksdk-src https://zuul.opendev.org/t/openstack/build/383db919489e49729160397a063f8205 : SUCCESS in 1h 02m 45s (non-voting)\n- bifrost-integration-tinyipa-ubuntu-focal https://zuul.opendev.org/t/openstack/build/23d14251c3194f8489f8e3bd25349226 : SUCCESS in 28m 02s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/8c36094d4ebb4021815c26a9dafcbb61 : SUCCESS in 42m 57s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"243b9a76da89d2e578b844343a2fbf07a82b1e32","author":{"_account_id":33835,"name":"JIHOJU","email":"jihoju96@gmail.com","username":"JIHOJU"},"date":"2021-09-18 08:51:28.000000000","message":"Patch Set 2:\n\nRECHECK","accounts_in_message":[],"_revision_number":2},{"id":"e0d43e2fb7f1199bec1506a1884abc2571ec937b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-09-18 10:01:31.000000000","message":"Patch Set 2:\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8dbf6077605c4fd7b20963da3455b374 : SUCCESS in 4m 57s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/23276da05f004316a3a45b4262fc4d1a : SUCCESS in 5m 12s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/601c59e9f4f140da83bf86ba2d2568ba : SUCCESS in 4m 58s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/7b8f668295fb4095ab367715886ef2a8 : SUCCESS in 5m 15s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/7e386de258bf4cf293ca6b5bf20cbd1d : FAILURE in 54m 35s\n- openstacksdk-tox-py38-tips https://zuul.opendev.org/t/openstack/build/12c38a555bcb44c9a7f7fc95ef77f274 : SUCCESS in 4m 37s\n- os-client-config-tox-py37-tips https://zuul.opendev.org/t/openstack/build/d50e2e3ff86f4dfaa270a409d7d3a572 : SUCCESS in 5m 11s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/ff4bb5d4b0244980a906326ae60278f2 : SUCCESS in 5m 20s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a4b32abf9efb4a80b36eaa9d4faee7e3 : SUCCESS in 7m 39s\n- opendev-buildset-registry https://zuul.opendev.org/t/openstack/build/cdded60c245e40b98aac8ff79a44c547 : SUCCESS in 20m 17s\n- nodepool-build-image-siblings https://zuul.opendev.org/t/openstack/build/d3fd5e4c4e844a85b55244e6040f1532 : SUCCESS in 15m 58s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/98e6e2d74ceb4e968ea7f14a0db96bff : FAILURE in 45m 50s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/bf0228f082534ab5aea598b227df56fd : FAILURE in 1h 07m 08s\n- openstacksdk-functional-devstack-senlin https://zuul.opendev.org/t/openstack/build/7fd168cfce5c4e919a27472b2841cd27 : FAILURE in 53m 13s\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/537d7db2d6ea4913a703f93362dff3f4 : SUCCESS in 39m 25s (non-voting)\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/f336910e25ca4285b941a1d7293186a9 : SUCCESS in 36m 35s (non-voting)\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/945711e26eec4050a5555a6b9d913375 : SUCCESS in 35m 56s (non-voting)\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/bd8b4727c2c042d982dfc72cdc2157db : SUCCESS in 59m 04s (non-voting)\n- ironic-inspector-tempest-openstacksdk-src https://zuul.opendev.org/t/openstack/build/f7a280f9e5254e99a90ffa84529ceed2 : FAILURE in 39m 15s (non-voting)\n- bifrost-integration-tinyipa-ubuntu-focal https://zuul.opendev.org/t/openstack/build/3f22df6c67334e0fb7bc3df1fafa0630 : SUCCESS in 27m 27s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/ea23849db1ab4d37a1570ae2145ec98e : SUCCESS in 37m 40s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"945b59de349148e758123cee7a6a678b4aa0310e","author":{"_account_id":33835,"name":"JIHOJU","email":"jihoju96@gmail.com","username":"JIHOJU"},"date":"2021-09-25 09:14:59.000000000","message":"Patch Set 2:\n\nRECHECK","accounts_in_message":[],"_revision_number":2},{"id":"46283d4a3ade8e2082c3f2772d716ad416e1da2d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-09-25 10:25:44.000000000","message":"Patch Set 2:\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d51bb6ef497f48df9e921ef8f7017259 : SUCCESS in 4m 04s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/fce5576736d8403ebbba97b80eb77163 : SUCCESS in 5m 02s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/2950ceeec8cd4ddbaee450fa0c9537cf : SUCCESS in 4m 53s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/579af4a806a144a78e008fd707d2b088 : SUCCESS in 5m 03s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/83d7ee76fe2f485796e88f9eaa9dcab1 : FAILURE in 45m 43s\n- openstacksdk-tox-py38-tips https://zuul.opendev.org/t/openstack/build/9bb3be24b5fb4a628b9885304a4e4171 : SUCCESS in 5m 37s\n- os-client-config-tox-py37-tips https://zuul.opendev.org/t/openstack/build/44c2e47bd40b46ef8a167dc01fd00099 : SUCCESS in 4m 35s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/c8842eca2c4343c693b97725997cc608 : SUCCESS in 5m 33s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3dda71c1933e49a6b80c37d1c66e66be : SUCCESS in 7m 51s\n- opendev-buildset-registry https://zuul.opendev.org/t/openstack/build/fa8bc2417dfd48e0b3765bf2adb4d785 : SUCCESS in 21m 05s\n- nodepool-build-image-siblings https://zuul.opendev.org/t/openstack/build/c3c0749c24e84d87a925a56bf8dd088b : SUCCESS in 16m 05s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d466e6400612424686bcd3017d41b011 : FAILURE in 42m 55s\n- openstacksdk-functional-devstack-networking https://zuul.opendev.org/t/openstack/build/d9ebedf4fddb459583dd24dfe82e72cc : FAILURE in 1h 08m 42s\n- openstacksdk-functional-devstack-senlin https://zuul.opendev.org/t/openstack/build/da3e51d84f194e0190511bbde635a320 : FAILURE in 42m 17s\n- openstacksdk-functional-devstack-magnum https://zuul.opendev.org/t/openstack/build/eb9fb63bb612419fb02d8654ca69a938 : SUCCESS in 40m 23s (non-voting)\n- openstacksdk-functional-devstack-masakari https://zuul.opendev.org/t/openstack/build/072072788e8e405d94e4750695c271f5 : SUCCESS in 28m 18s (non-voting)\n- openstacksdk-functional-devstack-ironic https://zuul.opendev.org/t/openstack/build/eac2dc8b5dfb417e8ad4eaf626c73558 : SUCCESS in 32m 26s (non-voting)\n- osc-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/952d6d3de7ba4dbdafe010a618e64986 : SUCCESS in 47m 15s (non-voting)\n- ironic-inspector-tempest-openstacksdk-src https://zuul.opendev.org/t/openstack/build/6ce395f5ced9433888fbf1d6a04a719f : SUCCESS in 47m 29s (non-voting)\n- bifrost-integration-tinyipa-ubuntu-focal https://zuul.opendev.org/t/openstack/build/bb958bbcd00e486a8d147567083bceab : SUCCESS in 21m 24s (non-voting)\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/98f5ac524eae4b5f83a14446b6a25eb3 : SUCCESS in 44m 43s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"dbeee43e7fdb1fa0b90380471912b8a989962322","tag":"autogenerated:gerrit:abandon","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2021-12-01 10:00:16.000000000","message":"Abandoned\n\nProposed against feature/r1","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"b7e2b9e8f9185ac9ed0cb863f19c31e5d46086d3","revisions":{"ace7254c3aeb8f659a1a769cf57e3d5cd1b89a5f":{"kind":"REWORK","_number":1,"created":"2021-06-23 13:35:05.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/47/797647/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/47/797647/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/47/797647/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/47/797647/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/47/797647/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/47/797647/1"}}},"commit":{"parents":[{"commit":"9dc4a841145200583ac3f8c56df775a165e5f2f4","subject":"Merge \"Fix import order in accelerator and config unit tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/9dc4a841145200583ac3f8c56df775a165e5f2f4"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2021-06-22 17:47:43.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2021-06-23 13:34:22.000000000","tz":60},"subject":"compute: Allow deleting of other users\u0027 keypairs","message":"compute: Allow deleting of other users\u0027 keypairs\n\nAdmins are allowed to delete keypairs belonging to another user by\npassing the \u0027user_id\u0027 query string parameter, for example:\n\n  DELETE /keypairs/{keypair}?user_id\u003dfoo\n\nUnfortunately while we were passing through a \u0027user_id\u0027 argument to the\nunderlying \u0027openstack.proxy.Proxy._delete\u0027 call, this was being used to\npopulate the \u0027user_id\u0027 body parameter of the \u0027Keypair\u0027 resource as\nopposed to the query string parameter. We can\u0027t easily change this\nbecause a number of calls to this function involve nested resources, for\nexample \u0027openstack.image.v2._proxy.Proxy.remove_member\u0027, which must\nactually pass the arguments through to the \u0027Resource\u0027.\n\nResolve this by adding a \u0027param\u0027 argument to the underlying\n\u0027openstack.proxy.Proxy._delete\u0027 API, which can be used to pass through\nthe additional query string parameters to the delete call.\n\nChange-Id: Ibf65573a022862873c69fb1bc115d873e913b625\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/ace7254c3aeb8f659a1a769cf57e3d5cd1b89a5f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/ace7254c3aeb8f659a1a769cf57e3d5cd1b89a5f"}]},"branch":"refs/heads/master"},"b7e2b9e8f9185ac9ed0cb863f19c31e5d46086d3":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2021-06-23 13:44:10.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/47/797647/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstacksdk","ref":"refs/changes/47/797647/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/47/797647/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/47/797647/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstacksdk refs/changes/47/797647/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstacksdk refs/changes/47/797647/2"}}},"commit":{"parents":[{"commit":"9dc4a841145200583ac3f8c56df775a165e5f2f4","subject":"Merge \"Fix import order in accelerator and config unit tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/9dc4a841145200583ac3f8c56df775a165e5f2f4"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2021-06-22 17:47:43.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2021-06-23 13:36:08.000000000","tz":60},"subject":"compute: Allow deleting of other users\u0027 keypairs","message":"compute: Allow deleting of other users\u0027 keypairs\n\nAdmins are allowed to delete keypairs belonging to another user by\npassing the \u0027user_id\u0027 query string parameter, for example:\n\n  DELETE /keypairs/{keypair}?user_id\u003dfoo\n\nUnfortunately while we were passing through a \u0027user_id\u0027 argument to the\nunderlying \u0027openstack.proxy.Proxy._delete\u0027 call, this was being used to\npopulate the \u0027user_id\u0027 body parameter of the \u0027Keypair\u0027 resource as\nopposed to the query string parameter. We can\u0027t easily change this\nbecause a number of calls to this function involve nested resources, for\nexample \u0027openstack.image.v2._proxy.Proxy.remove_member\u0027, which must\nactually pass the arguments through to the \u0027Resource\u0027.\n\nResolve this by adding a \u0027param\u0027 argument to the underlying\n\u0027openstack.proxy.Proxy._delete\u0027 API, which can be used to pass through\nthe additional query string parameters to the delete call.\n\nChange-Id: Ibf65573a022862873c69fb1bc115d873e913b625\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\nStory: 2009000\nTask: 42670\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/b7e2b9e8f9185ac9ed0cb863f19c31e5d46086d3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstacksdk/commit/b7e2b9e8f9185ac9ed0cb863f19c31e5d46086d3"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
