Bug 783878

Summary: nova update has incompatibility with deltacloud
Product: [Fedora] Fedora Reporter: Steven Dake <sdake>
Component: openstack-novaAssignee: Pádraig Brady <pbrady>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 16CC: akscram, alexander.sakhnov, asalkeld, bfilippov, jonathansteffan, lutter, markmc, matt_domsch, mfojtik, mlvov, p, rbryant, rkukura
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-nova-2011.3.1-2.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-01-31 21:59:35 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Steven Dake 2012-01-23 04:21:10 UTC
Description of problem:
I had openstack-nova-2011.3-14.fc16.noarch and did a yum update.

This installed:
Jan 20 16:47:13 Updated: openstack-nova-2011.3.1-0.4.10818.fc16.noarch

This new version causes deltacloud to print parse errors.  The old version (2011.3-14) works properly.

to reproduce, run deltacloudd as follows:
[sdake@beast ~]$ deltacloudd -i openstack -P http://localhost:8774

open a web browser to http://127.0.0.1:/3001

click instances

Type your username in the user field and project name in the password field.


Version-Release number of selected component (if applicable):
openstack-nova-2011.3.1-0.4.10818.fc16.noarch

How reproducible:
100%

Steps to Reproduce:
1. see above
2.
3.
  
Actual results:
deltacloud fails with nova update

Expected results:
deltacloud doesn't fail with nova update


Additional info:

Comment 1 Mark McLoughlin 2012-01-23 06:21:15 UTC
Thanks for the report

(In reply to comment #0)
 
> This new version causes deltacloud to print parse errors.

Could you include the error messages here?

Comment 2 Steven Dake 2012-01-23 06:31:13 UTC
Too disruptive to change versions back and forth.  It will be obvious from running the reproducer.

Comment 3 Pádraig Brady 2012-01-23 12:01:07 UTC
$ curl -ik -H 'X-Auth-User: admin' -H 'X-Auth-Key: admin' http://127.0.0.1:8774/v1.0/
HTTP/1.1 204 No Content
Content-Length: 0
X-Auth-Token: admin:admin
X-Server-Management-Url: http://127.0.0.1:8774/v1.0/admin
X-Storage-Url: 
X-Cdn-Management-Url: 
Content-Type: text/plain; charset=UTF-8
Date: Mon, 23 Jan 2012 11:18:46 GMT

$ curl -ik -H 'Accept: application/json' -H 'X-Auth-Token: admin:admin' http://localhost:8774/v1.0/admin/servers/detail
HTTP/1.1 404 Not Found
Content-Length: 52
Content-Type: text/plain; charset=UTF-8
Date: Mon, 23 Jan 2012 11:20:24 GMT

404 Not Found

The resource could not be found.

So let's try python-novaclient to see what it does...

>>> import novaclient
>>> from novaclient.v1_1 import  client
>>> import logging
>>> ch = logging.StreamHandler()
>>> novaclient.client._logger.setLevel(logging.DEBUG)
>>> novaclient.client._logger.addHandler(ch)
>>> nt = client.Client("admin", "admin", "admin", "http://127.0.0.1:8774/v1.0/")
>>> nt.servers.list()
REQ: curl -i http://127.0.0.1:8774/v1.0/ -X GET -H "X-Auth-Project-Id: admin" -H "X-Auth-Key: admin" -H "X-Auth-User: admin" -H "User-Agent: python-novaclient"

RESP:{'status': '204', 'content-length': '0', 'x-auth-token': 'admin:admin', 'x-cdn-management-url': '', 'x-server-management-url': 'http://127.0.0.1:8774/v1.0/admin', 'date': 'Mon, 23 Jan 2012 11:36:13 GMT', 'x-storage-url': '', 'content-type': 'text/plain; charset=UTF-8'} 

REQ: curl -i http://127.0.0.1:8774/v1.0/admin/servers/detail?fresh=1327318573.81 -X GET -H "X-Auth-Project-Id: admin" -H "User-Agent: python-novaclient" -H "X-Auth-Token: admin:admin"

RESP:{'date': 'Mon, 23 Jan 2012 11:36:13 GMT', 'status': '404', 'content-length': '52', 'content-type': 'text/plain; charset=UTF-8'}


Drats, same thing.
So let's try v1.1 instead of 1.0


>>> nt = client.Client("admin", "admin", "admin", "http://127.0.0.1:8774/v1.1/")
>>> nt.servers.list()
REQ: curl -i http://127.0.0.1:8774/v1.1/ -X GET -H "X-Auth-Project-Id: admin" -H "X-Auth-Key: admin" -H "X-Auth-User: admin" -H "User-Agent: python-novaclient"

RESP:{'status': '204', 'content-length': '0', 'x-auth-token': 'admin:admin', 'x-cdn-management-url': '', 'x-server-management-url': 'http://127.0.0.1:8774/v1.1/admin', 'date': 'Mon, 23 Jan 2012 11:43:58 GMT', 'x-storage-url': '', 'content-type': 'text/plain; charset=UTF-8'} 

REQ: curl -i http://127.0.0.1:8774/v1.1/admin/servers/detail?fresh=1327319038.61 -X GET -H "X-Auth-Project-Id: admin" -H "User-Agent: python-novaclient" -H "X-Auth-Token: admin:admin"

RESP:{'date': 'Mon, 23 Jan 2012 11:43:58 GMT', 'status': '200', 'content-length': '3291', 'content-type': 'application/json', 'content-location': 'http://127.0.0.1:8774/v1.1/admin/servers/detail?fresh=1327319038.61'}


So that's it. V1.0 is not working, while V1.1 is OK...

$ curl -ik -H 'Accept: application/json' -H 'X-Auth-Token: admin:admin' http://localhost:8774/v1.1/admin/servers/detail

Comment 4 Mark McLoughlin 2012-01-23 14:14:06 UTC
Thanks Pádraig

It looks like the v1.0 API isn't intended to be scoped under a project?

Compare:

class APIRouterV10(APIRouter):
    ...

to:

class APIRouterV11(APIRouter):

    def _mapper(self):
        return ProjectMapper()

Comment 5 Steven Dake 2012-01-23 14:48:22 UTC
One thing that may or may not be helpful:

Deltacloud uses "v1.0" of the rackspace servers ruby bindings (https://github.com/rackspace/ruby-cloudservers).  I would expect it should use the v1.1 bindings (see https://github.com/rackspace/ruby-openstack-compute) but deltacloud doesn't do this today.  Is that mandatory with 3.1 of nova?

Regards
-steve

Comment 6 Pádraig Brady 2012-01-23 15:34:24 UTC
Yep the bug is V1.0 specific and introduced upstream last october.
https://bugs.launchpad.net/nova/+bug/920497

I'm sending a patch upstream now.

Comment 7 Pádraig Brady 2012-01-23 21:42:59 UTC
The openstack Essex release (to be part of Fedora 17),
will no longer support v1.0 API. I've added a deltacloud upgrade task:
https://issues.apache.org/jira/browse/DTACLOUD-130

Comment 8 Fedora Update System 2012-01-23 22:43:28 UTC
openstack-nova-2011.3.1-2.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/openstack-nova-2011.3.1-2.fc16

Comment 9 Fedora Update System 2012-01-23 22:43:37 UTC
openstack-nova-2011.3.1-2.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/openstack-nova-2011.3.1-2.el6

Comment 10 Fedora Update System 2012-01-24 01:43:52 UTC
Package openstack-nova-2011.3.1-2.fc16:
* should fix your issue,
* was pushed to the Fedora 16 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing openstack-nova-2011.3.1-2.fc16'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-0870/openstack-nova-2011.3.1-2.fc16
then log in and leave karma (feedback).

Comment 11 Fedora Update System 2012-01-31 21:59:35 UTC
openstack-nova-2011.3.1-2.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 12 Steven Dake 2012-01-31 22:06:30 UTC
verified fixed.

Comment 13 Fedora Update System 2012-02-16 20:07:34 UTC
openstack-nova-2011.3.1-2.el6 has been pushed to the Fedora EPEL 6 stable repository.  If problems still persist, please make note of it in this bug report.