Rackspace not OpenStack_1_0_NodeDriver compliant
------------------------------------------------

                 Key: LIBCLOUD-137
                 URL: https://issues.apache.org/jira/browse/LIBCLOUD-137
             Project: Libcloud
          Issue Type: Improvement
          Components: Compute
    Affects Versions: 0.7.1
            Reporter: Gary Wilson


libcloud.compute.drivers.rackspace.RackspaceUKNodeDriver inherits 
OpenStack_1_0_NodeDriver and this does not return the required data with 
regards to node details that are required to manage rackspace nodes, not with 
the OpenStack driver in any case.  Specifically driver.list.nodes() returns 
uuid stings for nodes e.g.:

<Node: uuid=a05c637f548f64d1c847d85abe50bfda46789bec, 
name=zpf-controller-dev-2-10g-ruk, state=0, public_ips=[xxx.xxx.xxx.xxx'], 
provider=Rackspace (UK) ...>

The uuid is not usable in the Rackspace Server or Server Action operations (as 
defined in their API) as they all require the id parameter.

The inherited OpenStack ex_rebuild errors with:

<snip>
/usr/bin/python /opt/zpf/scripts/libcloud.rebuild.ruk.node $NODE_UUID 
$NODEIMAGE_UUID
/opt/zpf/scripts/libcloud.rebuild.ruk.node
a05c637f548f64d1c847d85abe50bfda46789bec
10458692
Traceback (most recent call last):
  File "/opt/zpf/scripts/libcloud.rebuild.ruk.node", line 33, in <module>
    driver.ex_rebuild(sys.argv[1], sys.argv[2])
  File 
"/usr/lib/python2.6/site-packages/libcloud/compute/drivers/openstack.py", line 
467, in ex_rebuild
    data=ET.tostring(elm))
  File 
"/usr/lib/python2.6/site-packages/libcloud/compute/drivers/openstack.py", line 
139, in request
    method=method, headers=headers)
  File "/usr/lib/python2.6/site-packages/libcloud/common/openstack.py", line 
267, in request
    return super(OpenStackBaseConnection, self).request(**kwargs)
  File "/usr/lib/python2.6/site-packages/libcloud/common/base.py", line 509, in 
request
    connection=self)
  File 
"/usr/lib/python2.6/site-packages/libcloud/compute/drivers/openstack.py", line 
242, in __init__
    super(OpenStack_1_0_Response, self).__init__(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/libcloud/common/base.py", line 74, in 
__init__
    raise Exception(self.parse_error())
Exception: 404 Not Found The requested path could not be found.; 
javax.ws.rs.WebApplicationException: java.lang.NumberFormatException: For input 
string: "a05c637f548f64d1c847d85abe50bfda46789bec"
</snip>

The Rackspace API returns id on all "server" requests e.g.

wget --no-check-certificate --server-response -O ruk.servers.no.detail --header 
"X-Auth-Token: xxxxxxxxxxx" 
https://lon.servers.api.rackspacecloud.com/v1.0/xxxxx/servers

{"servers":[{"id":10085881,"name":"base-centos-6-ruk"},{"id":10087553,"name":"zpf-controller-dev-1-10g-ruk"},{"id":10087643,"name":"zpf-controller-dev-2-10g-ruk"}]}

Am I doing something incorrect or is the OpenStack driver not compatible with 
Rackspace?  If not then surely libcloud should remove Rackspace from this list 
of Providers.  It would at least save people the time and effort of figuring 
that out themselves.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to