← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1454369] [NEW] nova needs to move to using the 'volume' service type

 

Public bug reported:

It appears that there are still places in Nova that are being hardcoded
to use the Cinder V1 api.  Evidence of this can be seen by setting
enable_v1_api to false in Cinder and then trying to use any of the 'nova
volume' commands.  Errors like the following are produced:

[root@controller-x86-KVM-SCE-Refstack-SCERest-430gm-abd12ca7 ˜]# nova --debug volume-create 1
DEBUG (session:195) REQ: curl -g -i -X GET http://169.55.21.52:5000/v2.0 -H "Accept: application/json" -H "User-Agent: python-keystoneclient"
INFO (connectionpool:194) Starting new HTTP connection (1): 169.55.21.52
DEBUG (connectionpool:360) "GET /v2.0 HTTP/1.1" 200 338
DEBUG (session:224) RESP: [200] date: Sun, 10 May 2015 19:02:38 GMT vary: X-Auth-Token content-length: 338 content-type: application/json
RESP BODY: {"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v2.0+json"}], "id": "v2.0", "links": [{"href": "http://169.55.21.52:5000/v2.0/";, "rel": "self"}, {"href": "http://docs.openstack.org/";, "type": "text/html", "rel": "describedby"}]}}

DEBUG (v2:76) Making authentication request to http://169.55.21.52:5000/v2.0/tokens
DEBUG (connectionpool:360) "POST /v2.0/tokens HTTP/1.1" 200 4531
DEBUG (iso8601:171) Parsed 2015-05-10T20:02:38Z into {'tz_sign': None, 'second_fraction': None, 'hour': u'20', 'daydash': u'10', 'tz_hour': None, 'month': None, 'timezone': u'Z', 'second': u'38', 'tz_minute': None, 'year': u'2015', 'separator': u'T', 'monthdash': u'05', 'day': None, 'minute': u'02'} with default timezone <iso8601.iso8601.Utc object at 0x1a26bd0>
DEBUG (iso8601:127) Got u'2015' for 'year' with default None
DEBUG (iso8601:127) Got u'05' for 'monthdash' with default None
DEBUG (iso8601:127) Got 5 for 'month' with default 5
DEBUG (iso8601:127) Got u'10' for 'daydash' with default None
DEBUG (iso8601:127) Got 10 for 'day' with default 10
DEBUG (iso8601:127) Got u'20' for 'hour' with default None
DEBUG (iso8601:127) Got u'02' for 'minute' with default None
DEBUG (iso8601:127) Got u'38' for 'second' with default None
DEBUG (session:195) REQ: curl -g -i -X POST http://169.55.21.52:8776/v1/a7d1b663366740859037201fa8a48b03/volumes -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}3724d0d949251ec67dd2d3b67201b7e196f36c47" -d '{"volume": {"display_name": null, "imageRef": null, "availability_zone": null, "volume_type": null, "display_description": null, "snapshot_id": null, "size": 1}}'
INFO (connectionpool:194) Starting new HTTP connection (1): 169.55.21.52
DEBUG (connectionpool:360) "POST /v1/a7d1b663366740859037201fa8a48b03/volumes HTTP/1.1" 400 141
DEBUG (session:224) RESP:
DEBUG (shell:914) The server could not comply with the request since it is either malformed or otherwise incorrect. (HTTP 400)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/novaclient/shell.py", line 911, in main
    OpenStackComputeShell().main(argv)
  File "/usr/lib/python2.7/site-packages/novaclient/shell.py", line 838, in main
    args.func(self.cs, args)
  File "/usr/lib/python2.7/site-packages/novaclient/v2/shell.py", line 2053, in do_volume_create
    imageRef=args.image_id)
  File "/usr/lib/python2.7/site-packages/novaclient/v2/volumes.py", line 72, in create
    return self._create('/volumes', body, 'volume')
  File "/usr/lib/python2.7/site-packages/novaclient/base.py", line 161, in _create
    _resp, body = self.api.client.post(url, body=body)
  File "/usr/lib/python2.7/site-packages/keystoneclient/adapter.py", line 176, in post
    return self.request(url, 'POST', **kwargs)
  File "/usr/lib/python2.7/site-packages/novaclient/client.py", line 96, in request
    raise exceptions.from_response(resp, body, url, method)
BadRequest: The server could not comply with the request since it is either malformed or otherwise incorrect. (HTTP 400)
ERROR (BadRequest): The server could not comply with the request since it is either malformed or otherwise incorrect. (HTTP 400)

Attempts to run tempest also fail.

Cinder has  added version discovery in Liberty so Nova should go back to
using the 'volume' service type as the volumev2 service type will go
away and version discovery should take care of making sure the right API
version is used.

** Affects: nova
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1454369

Title:
  nova needs to move to using the 'volume' service type

Status in OpenStack Compute (Nova):
  New

Bug description:
  It appears that there are still places in Nova that are being
  hardcoded to use the Cinder V1 api.  Evidence of this can be seen by
  setting enable_v1_api to false in Cinder and then trying to use any of
  the 'nova volume' commands.  Errors like the following are produced:

  [root@controller-x86-KVM-SCE-Refstack-SCERest-430gm-abd12ca7 ˜]# nova --debug volume-create 1
  DEBUG (session:195) REQ: curl -g -i -X GET http://169.55.21.52:5000/v2.0 -H "Accept: application/json" -H "User-Agent: python-keystoneclient"
  INFO (connectionpool:194) Starting new HTTP connection (1): 169.55.21.52
  DEBUG (connectionpool:360) "GET /v2.0 HTTP/1.1" 200 338
  DEBUG (session:224) RESP: [200] date: Sun, 10 May 2015 19:02:38 GMT vary: X-Auth-Token content-length: 338 content-type: application/json
  RESP BODY: {"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v2.0+json"}], "id": "v2.0", "links": [{"href": "http://169.55.21.52:5000/v2.0/";, "rel": "self"}, {"href": "http://docs.openstack.org/";, "type": "text/html", "rel": "describedby"}]}}

  DEBUG (v2:76) Making authentication request to http://169.55.21.52:5000/v2.0/tokens
  DEBUG (connectionpool:360) "POST /v2.0/tokens HTTP/1.1" 200 4531
  DEBUG (iso8601:171) Parsed 2015-05-10T20:02:38Z into {'tz_sign': None, 'second_fraction': None, 'hour': u'20', 'daydash': u'10', 'tz_hour': None, 'month': None, 'timezone': u'Z', 'second': u'38', 'tz_minute': None, 'year': u'2015', 'separator': u'T', 'monthdash': u'05', 'day': None, 'minute': u'02'} with default timezone <iso8601.iso8601.Utc object at 0x1a26bd0>
  DEBUG (iso8601:127) Got u'2015' for 'year' with default None
  DEBUG (iso8601:127) Got u'05' for 'monthdash' with default None
  DEBUG (iso8601:127) Got 5 for 'month' with default 5
  DEBUG (iso8601:127) Got u'10' for 'daydash' with default None
  DEBUG (iso8601:127) Got 10 for 'day' with default 10
  DEBUG (iso8601:127) Got u'20' for 'hour' with default None
  DEBUG (iso8601:127) Got u'02' for 'minute' with default None
  DEBUG (iso8601:127) Got u'38' for 'second' with default None
  DEBUG (session:195) REQ: curl -g -i -X POST http://169.55.21.52:8776/v1/a7d1b663366740859037201fa8a48b03/volumes -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}3724d0d949251ec67dd2d3b67201b7e196f36c47" -d '{"volume": {"display_name": null, "imageRef": null, "availability_zone": null, "volume_type": null, "display_description": null, "snapshot_id": null, "size": 1}}'
  INFO (connectionpool:194) Starting new HTTP connection (1): 169.55.21.52
  DEBUG (connectionpool:360) "POST /v1/a7d1b663366740859037201fa8a48b03/volumes HTTP/1.1" 400 141
  DEBUG (session:224) RESP:
  DEBUG (shell:914) The server could not comply with the request since it is either malformed or otherwise incorrect. (HTTP 400)
  Traceback (most recent call last):
    File "/usr/lib/python2.7/site-packages/novaclient/shell.py", line 911, in main
      OpenStackComputeShell().main(argv)
    File "/usr/lib/python2.7/site-packages/novaclient/shell.py", line 838, in main
      args.func(self.cs, args)
    File "/usr/lib/python2.7/site-packages/novaclient/v2/shell.py", line 2053, in do_volume_create
      imageRef=args.image_id)
    File "/usr/lib/python2.7/site-packages/novaclient/v2/volumes.py", line 72, in create
      return self._create('/volumes', body, 'volume')
    File "/usr/lib/python2.7/site-packages/novaclient/base.py", line 161, in _create
      _resp, body = self.api.client.post(url, body=body)
    File "/usr/lib/python2.7/site-packages/keystoneclient/adapter.py", line 176, in post
      return self.request(url, 'POST', **kwargs)
    File "/usr/lib/python2.7/site-packages/novaclient/client.py", line 96, in request
      raise exceptions.from_response(resp, body, url, method)
  BadRequest: The server could not comply with the request since it is either malformed or otherwise incorrect. (HTTP 400)
  ERROR (BadRequest): The server could not comply with the request since it is either malformed or otherwise incorrect. (HTTP 400)

  Attempts to run tempest also fail.

  Cinder has  added version discovery in Liberty so Nova should go back
  to using the 'volume' service type as the volumev2 service type will
  go away and version discovery should take care of making sure the
  right API version is used.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1454369/+subscriptions


Follow ups

References