Bug 783878 - nova update has incompatibility with deltacloud
Summary: nova update has incompatibility with deltacloud
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: openstack-nova
Version: 16
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Pádraig Brady
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-01-23 04:21 UTC by Steven Dake
Modified: 2016-01-04 14:44 UTC (History)
13 users (show)

Fixed In Version: openstack-nova-2011.3.1-2.el6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-01-31 21:59:35 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

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.


Note You need to log in before you can comment on or make changes to this bug.