Updated Branches:
  refs/heads/trunk d11a513b6 -> 0530b792d

Update network related extension methods so they work correctly with
both, OpenStack and Rackspace driver.

Part of LIBCLOUD-368.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/d2a71cb8
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/d2a71cb8
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/d2a71cb8

Branch: refs/heads/trunk
Commit: d2a71cb878d9b3fb89195e946c3ea6698a8d6d10
Parents: d11a513
Author: Tomaz Muraus <[email protected]>
Authored: Wed Oct 9 23:15:48 2013 +0200
Committer: Tomaz Muraus <[email protected]>
Committed: Wed Oct 9 23:15:48 2013 +0200

----------------------------------------------------------------------
 CHANGES                               |  4 ++++
 libcloud/compute/drivers/openstack.py | 16 +++++++++-------
 libcloud/compute/drivers/rackspace.py |  2 ++
 3 files changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/d2a71cb8/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index e08dad1..40f18b0 100644
--- a/CHANGES
+++ b/CHANGES
@@ -89,6 +89,10 @@ Changes with Apache Libcloud in development
       (LIBCLOUD-404)
       [Markos Gogoulos]
 
+    - Update network related extension methods so they work correctly with
+      both, OpenStack and Rackspace driver. (LIBCLOUD-368)
+      [Tomaz Muraus]
+
   *) Storage
 
     - Allow users to filter objects starting with a prefix by passing ex_prefix

http://git-wip-us.apache.org/repos/asf/libcloud/blob/d2a71cb8/libcloud/compute/drivers/openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/openstack.py 
b/libcloud/compute/drivers/openstack.py
index 866adb7..f2a6b4f 100644
--- a/libcloud/compute/drivers/openstack.py
+++ b/libcloud/compute/drivers/openstack.py
@@ -1179,6 +1179,7 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver):
     type = Provider.OPENSTACK
 
     features = {"create_node": ["generates_password"]}
+    _networks_url_prefix = '/os-networks'
 
     def __init__(self, *args, **kwargs):
         self._ex_force_api_version = str(kwargs.pop('ex_force_api_version',
@@ -1509,8 +1510,8 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver):
 
         :rtype: ``list`` of :class:`OpenStackNetwork`
         """
-        return self._to_networks(
-            self.connection.request('/os-networksv2').object)
+        response = self.connection.request(self._networks_url_prefix).object
+        return self._to_networks(response)
 
     def ex_create_network(self, name, cidr):
         """
@@ -1524,10 +1525,10 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver):
 
         :rtype: :class:`OpenStackNetwork`
         """
-        return self._to_network(self.connection.request(
-            '/os-networksv2', method='POST',
-            data={'network': {'cidr': cidr, 'label': name}}
-        ).object['network'])
+        data = {'network': {'cidr': cidr, 'label': name}}
+        response = self.connection.request(self._networks_url_prefix,
+                                           method='POST', data=data).object
+        return self._to_network(response['network'])
 
     def ex_delete_network(self, network):
         """
@@ -1538,7 +1539,8 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver):
 
         :rtype: ``bool``
         """
-        resp = self.connection.request('/os-networksv2/%s' % (network.id),
+        resp = self.connection.request('%s/%s' % (self._networks_url_prefix,
+                                                  network.id),
                                        method='DELETE')
         return resp.status == httplib.ACCEPTED
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/d2a71cb8/libcloud/compute/drivers/rackspace.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/rackspace.py 
b/libcloud/compute/drivers/rackspace.py
index 49642ad..2a93cbf 100644
--- a/libcloud/compute/drivers/rackspace.py
+++ b/libcloud/compute/drivers/rackspace.py
@@ -147,6 +147,8 @@ class RackspaceNodeDriver(OpenStack_1_1_NodeDriver):
     type = Provider.RACKSPACE
     api_name = None
 
+    _networks_url_prefix = '/os-networksv2'
+
     def __init__(self, key, secret=None, secure=True, host=None, port=None,
                  region='dfw', **kwargs):
         """

Reply via email to