Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-13146

openstack keypair list command can take --project <project> option but this option does not make sense

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Normal Normal
    • None
    • None
    • python-openstackclient
    • Moderate

      Description of problem:

      Currently `openstack keypair list` command can take `--project <project>` option.

      However, keypair is associated with user but not with project. So this option does not make sense.

      According to -help, `-project <project>` shows keypairs for all users associated with project.

      User and project do not have direct link (except for role assignment).

      So `--project <project>` option is confusing and should not be used with `openstack keypair list` command.

      Version-Release number of selected component (if applicable):

      python3-openstackclient.noarch 5.5.2-17.1.20230829210830.el9ost @openstack-17.1-for-rhel-9-x86_64-rpms

      Moreover, behavior of `openstack keypair list --project <project>` command seems strange.

      openstackclient passes parameter `tenant_id` to keystoneclient[1] but such parameter does not exist in keystone api[2].

      [2] https://docs.openstack.org/api-ref/identity/v3/#users

      keystoneclient does not recognise such parameter and returns all the users.

      As a result, keypairs associated with all the users are shown regardless of project as shown in the example below.

      ~~~
      [stack@undercloud ~]$ openstack keypair list --project admin --os-compute-api-version 2.10 --debug 2>&1 | grep curl
      REQ: curl -g -i -X GET http://10.0.0.147:5000 -H "Accept: application/json" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16"
      REQ: curl -g -i -X GET http://10.0.0.147:8774/v2.1 -H "Accept: application/json" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16"
      REQ: curl -g -i -X GET http://10.0.0.147:5000/v3/projects/admin -H "Accept: application/json" -H "User-Agent: python-keystoneclient" -H "X-Auth-Token:

      {SHA256}354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0"
      REQ: curl -g -i -X GET http://10.0.0.147:5000/v3/projects?name=admin -H "Accept: application/json" -H "User-Agent: python-keystoneclient" -H "X-Auth-Token: {SHA256}

      354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0"
      REQ: curl -g -i -X GET http://10.0.0.147:5000/v3/users?tenant_id=3c8cb2ac8bba4cc8a472560c806e8b09 -H "Accept: application/json" -H "User-Agent: python-keystoneclient" -H "X-Auth-Token:

      {SHA256}354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" < ==== [1]
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=8cd74347fdef4f718e586f221e9fbf80" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token: {SHA256}

      354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=59f1b355eb1d4a529fcf6b42bb10c32d" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token:

      {SHA256}354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=17dbdaa883a645189c13b0f9abccb09c" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token: {SHA256}

      354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=ddefd1bc54734492b260ed7c4003cff1" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token:

      {SHA256}354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=8a1ad8ba8c4347f5bc10fc1b9ce88af2" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token: {SHA256}

      354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=a8bd19ed33af4f7885b6a465af22592c" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token:

      {SHA256}354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=467f891df384448fb197105d2128d646" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token: {SHA256}

      354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=392681f83bf94cde9b058845597ada7d" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token:

      {SHA256}354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=dcfe054e05674900a86cbe9f51943de3" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token: {SHA256}

      354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=87536acd2645408bae05175b1739af90" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token:

      {SHA256}354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=29b5eeaa491344ae8fa03e1cd3564b5b" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token: {SHA256}

      354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=58c3e30a97d34ef38e320735cc0bbc20" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token:

      {SHA256}354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=8ae77973c93e49919824daf2ba1306f1" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token: {SHA256}

      354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
      REQ: curl -g -i -X GET "http://10.0.0.147:8774/v2.1/os-keypairs?user_id=764eda96e164458788f456bdbe48f7e0" -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.10" -H "User-Agent: openstacksdk/0.55.1 keystoneauth1/4.4.0 python-requests/2.25.1 CPython/3.9.16" -H "X-Auth-Token:

      {SHA256}

      354e724e7e04e6698839394b074db9f07bec8236cc1ce6936cb6c954c1eb8ec0" -H "X-OpenStack-Nova-API-Version: 2.10"
           :
           :
      -------------------------------------------------------------

      Name Fingerprint Type

      -------------------------------------------------------------

      test_key f3:5d:dd:08:a0:07:ef:ee:aa:1b:26:fb:1f:9f:66:2a ssh < == created by admin user assigned to admin project
      key_A a8:45:05:6e:72:61:ae:4f:e1:f7:00:2e:a5:cd:b9:1f ssh < == created by user_A user assigned to pj_A project
      key_B 6c:d1:31:47:79:27:13:cd:0a:4d:d8:ac:ae:08:76:f8 ssh < == created by user_B user assigned to pj_B project
      key_C 1f:65:04:64:f6:d1:45:6c:56:b4:b7:5f:ce:b0:cf:af ssh < == created by user_C user assigned to pj_A project
      -------------------------------------------------------------
      ~~~

              mwitt@redhat.com melanie witt
              jira-bugzilla-migration RH Bugzilla Integration
              RH Bugzilla Integration RH Bugzilla Integration
              rhos-workloads-compute
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated: