Author: pquerna
Date: Tue Sep 20 22:23:02 2011
New Revision: 1173409

URL: http://svn.apache.org/viewvc?rev=1173409&view=rev
Log:
Deal with the XML namespace varrying between Rackspace and OpenStack endpoints

Modified:
    libcloud/trunk/libcloud/compute/drivers/openstack.py
    libcloud/trunk/libcloud/compute/drivers/rackspace.py

Modified: libcloud/trunk/libcloud/compute/drivers/openstack.py
URL: 
http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/openstack.py?rev=1173409&r1=1173408&r2=1173409&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/openstack.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/openstack.py Tue Sep 20 22:23:02 
2011
@@ -39,9 +39,6 @@ __all__ = [
     'OpenStackNodeIpAddresses',
     ]
 
-NAMESPACE = 'http://docs.rackspacecloud.com/servers/api/v1.0'
-
-
 class OpenStackResponse(Response):
 
     def success(self):
@@ -189,7 +186,7 @@ class OpenStackNodeDriver(NodeDriver):
         if not name:
             name = node.name
 
-        body = {'xmlns': NAMESPACE,
+        body = {'xmlns': self.XML_NAMESPACE,
                  'name': name}
 
         if password != None:
@@ -239,7 +236,7 @@ class OpenStackNodeDriver(NodeDriver):
         image = kwargs['image']
         size = kwargs['size']
 
-        attributes = {'xmlns': NAMESPACE,
+        attributes = {'xmlns': self.XML_NAMESPACE,
              'name': name,
              'imageId': str(image.id),
              'flavorId': str(size.id)
@@ -282,7 +279,7 @@ class OpenStackNodeDriver(NodeDriver):
         """
         elm = ET.Element(
             'resize',
-            {'xmlns': NAMESPACE,
+            {'xmlns': self.XML_NAMESPACE,
              'flavorId': str(size.id),
             }
         )
@@ -305,7 +302,7 @@ class OpenStackNodeDriver(NodeDriver):
         """
         elm = ET.Element(
             'confirmResize',
-            {'xmlns': NAMESPACE}
+            {'xmlns': self.XML_NAMESPACE}
         )
 
         resp = self.connection.request("/servers/%s/action" % (node.id),
@@ -326,7 +323,7 @@ class OpenStackNodeDriver(NodeDriver):
         """
         elm = ET.Element(
             'revertResize',
-            {'xmlns': NAMESPACE}
+            {'xmlns': self.XML_NAMESPACE}
         )
 
         resp = self.connection.request("/servers/%s/action" % (node.id),
@@ -344,7 +341,7 @@ class OpenStackNodeDriver(NodeDriver):
 
         elm = ET.Element(
             'rebuild',
-            {'xmlns': NAMESPACE,
+            {'xmlns': self.XML_NAMESPACE,
              'imageId': image_id,
             }
         )
@@ -360,7 +357,7 @@ class OpenStackNodeDriver(NodeDriver):
 
         group_elm = ET.Element(
             'sharedIpGroup',
-            {'xmlns': NAMESPACE,
+            {'xmlns': self.XML_NAMESPACE,
              'name': group_name,
             }
         )
@@ -400,7 +397,7 @@ class OpenStackNodeDriver(NodeDriver):
 
         elm = ET.Element(
             'shareIp',
-            {'xmlns': NAMESPACE,
+            {'xmlns': self.XML_NAMESPACE,
              'sharedIpGroupId': group_id,
              'configureServer': str_configure}
         )
@@ -490,7 +487,7 @@ class OpenStackNodeDriver(NodeDriver):
         if isinstance(body, list):
             attr = ' '.join(['%s="%s"' % (item[0], item[1])
                              for item in body[1:]])
-            body = '<%s xmlns="%s" %s/>' % (body[0], NAMESPACE, attr)
+            body = '<%s xmlns="%s" %s/>' % (body[0], self.XML_NAMESPACE, attr)
         uri = '/servers/%s/action' % (node.id)
         resp = self.connection.request(uri, method='POST', data=body)
         return resp
@@ -501,7 +498,7 @@ class OpenStackNodeDriver(NodeDriver):
 
     def _fixxpath(self, xpath):
         # ElementTree wants namespaces in its xpaths, so here we add them.
-        return "/".join(["{%s}%s" % (NAMESPACE, e) for e in xpath.split("/")])
+        return "/".join(["{%s}%s" % (self.XML_NAMESPACE, e) for e in 
xpath.split("/")])
 
     def _findall(self, element, xpath):
         return element.findall(self._fixxpath(xpath))
@@ -611,7 +608,7 @@ class OpenStackNodeDriver(NodeDriver):
 
         image_elm = ET.Element(
                 'image',
-                {'xmlns': NAMESPACE,
+                {'xmlns': self.XML_NAMESPACE,
                     'name': name,
                     'serverId': node.id}
         )

Modified: libcloud/trunk/libcloud/compute/drivers/rackspace.py
URL: 
http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/rackspace.py?rev=1173409&r1=1173408&r2=1173409&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/rackspace.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/rackspace.py Tue Sep 20 22:23:02 
2011
@@ -30,6 +30,7 @@ class RackspaceConnection(OpenStackConne
 
     responseCls = OpenStackResponse
     auth_url = AUTH_URL_US
+    XML_NAMESPACE = 'http://docs.rackspacecloud.com/servers/api/v1.0'
 
 
 class RackspaceNodeDriver(OpenStackNodeDriver):


Reply via email to