Bug 1028724

Summary: keypair-show command returns "ERROR: can't set attribute"
Product: [Community] RDO Reporter: Lars Kellogg-Stedman <lars>
Component: openstack-novaAssignee: RHOS Maint <rhos-maint>
Status: CLOSED CURRENTRELEASE QA Contact: Ami Jeain <ajeain>
Severity: low Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: kchamart, ndipanov, rbryant, yeylon
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-02-10 17:33:07 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Lars Kellogg-Stedman 2013-11-10 02:34:42 UTC
Description of problem:

After creating a keypair in nova:

  $ nova keypair-add --pub-key id_rsa.pub test
  $ nova keypair-list
  +------+-------------------------------------------------+
  | Name | Fingerprint                                     |
  +------+-------------------------------------------------+
  | test | 8b:56:b0:3f:c8:ad:38:a6:94:f4:a7:26:83:75:cc:85 |
  +------+-------------------------------------------------+

The keypair-show command returns an error, rather than details about
the keypair:

  $ nova keypair-show test
  ERROR: can't set attribute

In /var/log/nova/api.log:

2013-11-09 21:27:35.546 8282 DEBUG nova.api.openstack.wsgi [req-23090154-b07d-4709-8b7b-07b6e7bdd59d a48c777a53ed4051adad64e158d3fc63 3db60755d5b442e1bdea14d69483ae68] Calling method <bound method KeypairController.show of <nova.api.openstack.compute.contrib.keypairs.KeypairController object at 0x3812b90>> _process_stack /usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py:941
2013-11-09 21:27:35.550 8282 INFO nova.api.openstack.wsgi [req-23090154-b07d-4709-8b7b-07b6e7bdd59d a48c777a53ed4051adad64e158d3fc63 3db60755d5b442e1bdea14d69483ae68] HTTP exception thrown: The resource could not be found.
2013-11-09 21:27:35.551 8282 DEBUG nova.api.openstack.wsgi [req-23090154-b07d-4709-8b7b-07b6e7bdd59d a48c777a53ed4051adad64e158d3fc63 3db60755d5b442e1bdea14d69483ae68] Returning 404 to user: The resource could not be found. __call__ /usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py:1203
2013-11-09 21:27:35.557 8282 INFO nova.osapi_compute.wsgi.server [req-23090154-b07d-4709-8b7b-07b6e7bdd59d a48c777a53ed4051adad64e158d3fc63 3db60755d5b442e1bdea14d69483ae68] 192.168.122.4 "GET /v2/3db60755d5b442e1bdea14d69483ae68/os-keypairs/list HTTP/1.1" status: 404 len: 272 time: 0.0672722

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

  openstack-nova-api-2013.2-1.fc20.noarch

Comment 1 Kashyap Chamarthy 2013-12-24 10:43:55 UTC
Version: 

  $ rpm -q openstack-nova-api
  openstack-nova-api-2013.2-4.fc20.noarch


Confirmed:

  $ nova keypair-list
  +--------+-------------------------------------------------+
  | Name   | Fingerprint                                     |
  +--------+-------------------------------------------------+
  | oskey1 | c1:69:bd:43:07:bc:d4:47:06:21:28:a0:ef:e6:d1:0f |
  +--------+-------------------------------------------------+

  $ nova keypair-show oskey1
  ERROR: can't set attribute

  $ echo $?
  1
 

However - the HTTP status throws 200 in the log messages (for Lars, above it threw 404): 
-----------
$ tail -f /var/log/nova/api.log
[. . .]
/site-packages/routes/middleware.py:100
2012-11-26 21:15:04.107 16094 DEBUG routes.middleware [-] Route path: '/{project_id}/os-keypairs/:(id)', defaults: {'action': u'show', 'controller': <nova.api.openstack.wsgi.Resource object at 0x44cd310>} __call__ /usr/lib/python2.7/site-packages/routes/middleware.py:102
2012-11-26 21:15:04.108 16094 DEBUG routes.middleware [-] Match dict: {'action': u'show', 'controller': <nova.api.openstack.wsgi.Resource object at 0x44cd310>, 'project_id': u'e52dac6864f24d9a855996767e6205f2', 'id': u'oskey1'} __call__ /usr/lib/python2.7/site-packages/routes/middleware.py:103
2012-11-26 21:15:04.110 16094 DEBUG nova.api.openstack.wsgi [req-245c50cc-b6f2-4b00-a469-ff6f428039db c6df56cf827b4a69affa086272f0d46a e52dac6864f24d9a855996767e6205f2] No Content-Type provided in request get_body /usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py:814
2012-11-26 21:15:04.112 16094 DEBUG nova.api.openstack.wsgi [req-245c50cc-b6f2-4b00-a469-ff6f428039db c6df56cf827b4a69affa086272f0d46a e52dac6864f24d9a855996767e6205f2] Calling method <bound method KeypairController.show of <nova.api.openstack.compute.contrib.keypairs.KeypairController object at 0x422bf90>> _process_stack /usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py:941
2012-11-26 21:15:04.113 16094 DEBUG nova.openstack.common.lockutils [req-245c50cc-b6f2-4b00-a469-ff6f428039db c6df56cf827b4a69affa086272f0d46a e52dac6864f24d9a855996767e6205f2] Got semaphore "dbapi_backend" lock /usr/lib/python2.7/site-packages/nova/openstack/common/lockutils.py:166
2012-11-26 21:15:04.114 16094 DEBUG nova.openstack.common.lockutils [req-245c50cc-b6f2-4b00-a469-ff6f428039db c6df56cf827b4a69affa086272f0d46a e52dac6864f24d9a855996767e6205f2] Got semaphore / lock "__get_backend" inner /usr/lib/python2.7/site-packages/nova/openstack/common/lockutils.py:245
2012-11-26 21:15:04.776 16094 INFO nova.osapi_compute.wsgi.server [req-245c50cc-b6f2-4b00-a469-ff6f428039db c6df56cf827b4a69affa086272f0d46a e52dac6864f24d9a855996767e6205f2] 192.169.142.49 "GET /v1.1/e52dac6864f24d9a855996767e6205f2/os-keypairs/oskey1 HTTP/1.1" status: 200 len: 846 time: 2.0926270
-----------

Comment 2 Lars Kellogg-Stedman 2014-02-10 17:33:07 UTC
This appears to be fixed in recent versions of nova (openstack-nova-compute-2013.2.1-4.fc20.noarch).

$ rpm -qa 'openstack-nova-*'
openstack-nova-scheduler-2013.2.1-4.fc20.noarch
openstack-nova-common-2013.2.1-4.fc20.noarch
openstack-nova-console-2013.2.1-4.fc20.noarch
openstack-nova-cert-2013.2.1-4.fc20.noarch
openstack-nova-api-2013.2.1-4.fc20.noarch
openstack-nova-conductor-2013.2.1-4.fc20.noarch
openstack-nova-novncproxy-2013.2.1-4.fc20.noarch
openstack-nova-compute-2013.2.1-4.fc20.noarch

$ nova keypair-show lars
+-------------+-------------------------------------------------+
| Property    | Value                                           |
+-------------+-------------------------------------------------+
| created_at  | 2013-12-11T21:40:27.000000                      |
| deleted     | False                                           |
| deleted_at  | None                                            |
| fingerprint | 8b:56:b0:3f:c8:ad:38:a6:94:f4:a7:26:83:75:cc:85 |
| id          | 1                                               |
| name        | lars                                            |
| updated_at  | None                                            |
| user_id     | 436d522125584cf3a21ddcf628d59e2e                |
+-------------+-------------------------------------------------+
Public key: ssh-rsa ...