You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by rb...@apache.org on 2011/02/05 15:52:19 UTC
svn commit: r1067451 - in /incubator/libcloud/trunk: CHANGES
libcloud/drivers/rackspace.py
Author: rbogorodskiy
Date: Sat Feb 5 14:52:18 2011
New Revision: 1067451
URL: http://svn.apache.org/viewvc?rev=1067451&view=rev
Log:
Implement ex_rebuild() and ex_get_node_details()
routines for Rackspace driver.
Submitted by: Andrew Klochkov
Modified:
incubator/libcloud/trunk/CHANGES
incubator/libcloud/trunk/libcloud/drivers/rackspace.py
Modified: incubator/libcloud/trunk/CHANGES
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/CHANGES?rev=1067451&r1=1067450&r2=1067451&view=diff
==============================================================================
--- incubator/libcloud/trunk/CHANGES (original)
+++ incubator/libcloud/trunk/CHANGES Sat Feb 5 14:52:18 2011
@@ -2,6 +2,10 @@
Changes with Apache Libcloud 0.4.3
+ *) Implement ex_rebuild() and ex_get_node_details()
+ routines for Rackspace driver.
+ [Andrew Klochkov]
+
*) Implement ex_list_ips() for GoGrid driver to list
IP addresses assigned to the account. Make use of
it in _get_first_ip().
Modified: incubator/libcloud/trunk/libcloud/drivers/rackspace.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/drivers/rackspace.py?rev=1067451&r1=1067450&r2=1067451&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/drivers/rackspace.py (original)
+++ incubator/libcloud/trunk/libcloud/drivers/rackspace.py Sat Feb 5 14:52:18 2011
@@ -309,6 +309,18 @@ class RackspaceNodeDriver(NodeDriver):
data=ET.tostring(server_elm))
return self._to_node(resp.object)
+ def ex_rebuild(self, node_id, image_id):
+ elm = ET.Element(
+ 'rebuild',
+ {'xmlns': NAMESPACE,
+ 'imageId': image_id,
+ }
+ )
+ resp = self.connection.request("/servers/%s/action" % node_id,
+ method='POST',
+ data=ET.tostring(elm))
+ return resp.status == 202
+
def ex_create_ip_group(self, group_name, node_id=None):
group_elm = ET.Element(
'sharedIpGroup',
@@ -414,6 +426,13 @@ class RackspaceNodeDriver(NodeDriver):
resp = self.connection.request(uri, method='DELETE')
return resp.status == 202
+ def ex_get_node_details(self, node_id):
+ uri = '/servers/%s' % (node_id)
+ resp = self.connection.request(uri, method='GET')
+ if resp.status == 404:
+ return None
+ return self._to_node(resp.object)
+
def _node_action(self, node, body):
if isinstance(body, list):
attr = ' '.join(['%s="%s"' % (item[0], item[1])