incubator-libcloud mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rudiger Wolf <Rudiger.W...@ThroughputFocus.com>
Subject [libcloud] Problem with Rackspace and libcloud 0.4.0?
Date Fri, 08 Oct 2010 13:27:34 GMT
Hi


I though I'd give 0.4.0 a try.

$ svn co https://svn.apache.org/repos/asf/incubator/libcloud/tags/0.4.0
$ sudo python setup.py install

then the following script

#!/usr/bin/python

from libcloud.types import Provider
from libcloud.providers import get_driver
from libcloud.deployment import MultiStepDeployment, ScriptDeployment, 
SSHKeyDeployment
import os

from pprint import pprint

RACKSPACE_USER = 'xxxxxx'
RACKSPACE_KEY = 'xxxxxxxxxxxxxxxxxxxxxxx'

Driver = get_driver(Provider.RACKSPACE)
conn = Driver(RACKSPACE_USER, RACKSPACE_KEY)

# retrieve available images and sizes
images = conn.list_images()
# [<NodeImage: id=3, name=Gentoo 2008.0, driver=Rackspace  ...>, ...]
sizes = conn.list_sizes()
# [<NodeSize: id=1, name=256 server, ram=256 ... driver=Rackspace ...>, 
...]


match = None
for item in images:
     if item.name.find('Ubuntu 10.04 LTS') != -1:
         match = True
     if match:


         # read your public rackspace key in
         sd = 
SSHKeyDeployment(open(os.path.expanduser("/home/rnwolf/.ssh/id_rsa_xxxxxx.pub")).read())
         # a simple script to install puppet post boot, can be much more 
complicated.
         script = ScriptDeployment("apt-get install hello")
         # a task that first installs the ssh key, and then runs the script
         msd = MultiStepDeployment([sd, script])

         images = conn.list_images()
         sizes = conn.list_sizes()

         pprint(images)
         pprint(sizes)
         # deploy_node takes the same base keyword arguments as 
create_node.
         node = conn.deploy_node(name='tttt-xxxxx', image=item, 
size=sizes[0], deploy=msd)
         # <Node: uuid=..., name=test, state=3, public_ip=['1.1.1.1'], 
provider=Rackspace ...>
         # the node is now booted, with your ssh key and package installed.
         print node



Gives me an error:

Traceback (most recent call last):
   File "create-rackspace-node.py", line 43, in <module>
     node = conn.deploy_node(name='tttt-matt', image=item, 
size=sizes[0], deploy=msd)
   File "/usr/local/lib/python2.6/dist-packages/libcloud/base.py", line 
656, in deploy_node
     node = self.create_node(**kwargs)
   File 
"/usr/local/lib/python2.6/dist-packages/libcloud/drivers/rackspace.py", 
line 236, in create_node
     data=ET.tostring(server_elm))
   File 
"/usr/local/lib/python2.6/dist-packages/libcloud/drivers/rackspace.py", 
line 154, in request
     method=method, headers=headers
   File "/usr/local/lib/python2.6/dist-packages/libcloud/base.py", line 
444, in request
     response = self.responseCls(self.connection.getresponse())
   File "/usr/local/lib/python2.6/dist-packages/libcloud/base.py", line 
165, in __init__
     raise Exception(self.parse_error())
Exception: 400 Bad Request 422 Unprocessable Entity: Server name already 
in use; com.rackspace.cloud.service.servers.CloudServersFault: Fault occured



The virtual server is actually created if I check via the 
manage.rackspacecloud.com control panel.

I don't know enough about the plumbing of the software but maybe I am 
doing something wrong... maybe the new libcloud library is a bug. The 
same script above worked for me previously.

I am using Python 2.6.6 on Ubuntu 10.10 RC.


Thanks
Rudiger



Mime
View raw message