You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2014/05/21 15:14:40 UTC

[1/3] git commit: Allow user to force auth version by passing "ex_force_auth_version" kwarg to OpenStack based driver constructor even if "_auth_version" class attribute is set.

Repository: libcloud
Updated Branches:
  refs/heads/trunk 819f1671f -> 0a08bc6e1


Allow user to force auth version by passing "ex_force_auth_version" kwarg to
OpenStack based driver constructor even if "_auth_version" class attribute is
set.


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

Branch: refs/heads/trunk
Commit: 7c9674863a0aaf3a52895505b4b38c892042d9de
Parents: 819f167
Author: Tomaz Muraus <to...@apache.org>
Authored: Wed May 21 14:00:38 2014 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed May 21 14:00:38 2014 +0200

----------------------------------------------------------------------
 libcloud/common/openstack.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/7c967486/libcloud/common/openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/common/openstack.py b/libcloud/common/openstack.py
index 158a9f5..26bf692 100644
--- a/libcloud/common/openstack.py
+++ b/libcloud/common/openstack.py
@@ -487,9 +487,11 @@ class OpenStackBaseConnection(ConnectionUserAndKey):
         super(OpenStackBaseConnection, self).__init__(
             user_id, key, secure=secure, timeout=timeout)
 
+        if ex_force_auth_version:
+            self._auth_version = ex_force_auth_version
+
         self._ex_force_base_url = ex_force_base_url
         self._ex_force_auth_url = ex_force_auth_url
-        self._auth_version = self._auth_version or ex_force_auth_version
         self._ex_force_auth_token = ex_force_auth_token
         self._ex_tenant_name = ex_tenant_name
         self._ex_force_service_type = ex_force_service_type


[3/3] git commit: Reverse the relationship between CloudFiles and OpenStackSwift connection class.

Posted by to...@apache.org.
Reverse the relationship between CloudFiles and OpenStackSwift connection class.


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

Branch: refs/heads/trunk
Commit: 0a08bc6e1eea68407cc6abaee25bce87351c4050
Parents: be258dc
Author: Tomaz Muraus <to...@apache.org>
Authored: Wed May 21 15:03:39 2014 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed May 21 15:08:48 2014 +0200

----------------------------------------------------------------------
 libcloud/storage/drivers/cloudfiles.py | 112 +++++++++++++++++++---------
 1 file changed, 76 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/0a08bc6e/libcloud/storage/drivers/cloudfiles.py
----------------------------------------------------------------------
diff --git a/libcloud/storage/drivers/cloudfiles.py b/libcloud/storage/drivers/cloudfiles.py
index 6591c7d..212d46c 100644
--- a/libcloud/storage/drivers/cloudfiles.py
+++ b/libcloud/storage/drivers/cloudfiles.py
@@ -99,7 +99,71 @@ class CloudFilesRawResponse(CloudFilesResponse, RawResponse):
     pass
 
 
-class CloudFilesConnection(OpenStackBaseConnection):
+class OpenStackSwiftConnection(OpenStackBaseConnection):
+    """
+    Connection class for the OpenStack Swift endpoint.
+    """
+
+    responseCls = CloudFilesResponse
+    rawResponseCls = CloudFilesRawResponse
+
+    auth_url = AUTH_URL
+    _auth_version = '1.0'
+
+    # TODO: Reverse the relationship - Swift -> CloudFiles
+    def __init__(self, user_id, key, secure=True, **kwargs):
+        # Ignore this for now
+        kwargs.pop('use_internal_url', None)
+        super(OpenStackSwiftConnection, self).__init__(user_id, key,
+                                                       secure=secure,
+                                                       **kwargs)
+        self.api_version = API_VERSION
+        self.accept_format = 'application/json'
+
+        self._service_type = self._ex_force_service_type or 'object-store'
+        self._service_name = self._ex_force_service_name or 'swift'
+
+        if self._ex_force_service_region:
+            self._service_region = self._ex_force_service_region.upper()
+        else:
+            self._service_region = None
+
+    def get_endpoint(self, *args, **kwargs):
+        if '2.0' in self._auth_version:
+            endpoint = self.service_catalog.get_endpoint(
+                service_type=self._service_type,
+                name=self._service_name,
+                region=self._service_region)
+        elif ('1.1' in self._auth_version) or ('1.0' in self._auth_version):
+            endpoint = self.service_catalog.get_endpoint(
+                name=self._service_name, region=self._service_region)
+
+        if PUBLIC_ENDPOINT_KEY in endpoint:
+            return endpoint[PUBLIC_ENDPOINT_KEY]
+        else:
+            raise LibcloudError('Could not find specified endpoint')
+
+    def request(self, action, params=None, data='', headers=None, method='GET',
+                raw=False, cdn_request=False):
+        if not headers:
+            headers = {}
+        if not params:
+            params = {}
+
+        self.cdn_request = cdn_request
+        params['format'] = 'json'
+
+        if method in ['POST', 'PUT'] and 'Content-Type' not in headers:
+            headers.update({'Content-Type': 'application/json; charset=UTF-8'})
+
+        return super(OpenStackSwiftConnection, self).request(
+            action=action,
+            params=params, data=data,
+            method=method, headers=headers,
+            raw=raw)
+
+
+class CloudFilesConnection(OpenStackSwiftConnection):
     """
     Base connection class for the Cloudfiles driver.
     """
@@ -181,39 +245,6 @@ class CloudFilesConnection(OpenStackBaseConnection):
             raw=raw)
 
 
-class OpenStackSwiftConnection(CloudFilesConnection):
-    """
-    Connection class for the OpenStack Swift endpoint.
-    """
-
-    # TODO: Reverse the relationship - Swift -> CloudFiles
-
-    def __init__(self, *args, **kwargs):
-        super(OpenStackSwiftConnection, self).__init__(*args, **kwargs)
-        self._service_type = self._ex_force_service_type or 'object-store'
-        self._service_name = self._ex_force_service_name or 'swift'
-
-        if self._ex_force_service_region:
-            self._service_region = self._ex_force_service_region.upper()
-        else:
-            self._service_region = None
-
-    def get_endpoint(self, *args, **kwargs):
-        if '2.0' in self._auth_version:
-            endpoint = self.service_catalog.get_endpoint(
-                service_type=self._service_type,
-                name=self._service_name,
-                region=self._service_region)
-        elif ('1.1' in self._auth_version) or ('1.0' in self._auth_version):
-            endpoint = self.service_catalog.get_endpoint(
-                name=self._service_name, region=self._service_region)
-
-        if PUBLIC_ENDPOINT_KEY in endpoint:
-            return endpoint[PUBLIC_ENDPOINT_KEY]
-        else:
-            raise LibcloudError('Could not find specified endpoint')
-
-
 class CloudFilesStorageDriver(StorageDriver, OpenStackDriverMixin):
     """
     CloudFiles driver.
@@ -875,8 +906,17 @@ class OpenStackSwiftStorageDriver(CloudFilesStorageDriver):
     name = 'OpenStack Swift'
     connectionCls = OpenStackSwiftConnection
 
-    def __init__(self, *args, **kwargs):
-        super(OpenStackSwiftStorageDriver, self).__init__(*args, **kwargs)
+    # TODO: Reverse the relationship - Swift -> CloudFiles
+
+    def __init__(self, key, secret=None, secure=True, host=None, port=None,
+                 region=None, **kwargs):
+        super(OpenStackSwiftStorageDriver, self).__init__(key=key,
+                                                          secret=secret,
+                                                          secure=secure,
+                                                          host=host,
+                                                          port=port,
+                                                          region=region,
+                                                          **kwargs)
 
 
 class CloudFilesUKStorageDriver(CloudFilesStorageDriver):


[2/3] git commit: Fix OpenStack Swift driver so it works correctly.

Posted by to...@apache.org.
Fix OpenStack Swift driver so it works correctly.


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

Branch: refs/heads/trunk
Commit: be258dc9d8100697f27078639dc24b4f256d436d
Parents: 7c96748
Author: Tomaz Muraus <to...@apache.org>
Authored: Wed May 21 14:07:41 2014 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed May 21 14:07:41 2014 +0200

----------------------------------------------------------------------
 libcloud/storage/drivers/cloudfiles.py | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/be258dc9/libcloud/storage/drivers/cloudfiles.py
----------------------------------------------------------------------
diff --git a/libcloud/storage/drivers/cloudfiles.py b/libcloud/storage/drivers/cloudfiles.py
index 52b999f..6591c7d 100644
--- a/libcloud/storage/drivers/cloudfiles.py
+++ b/libcloud/storage/drivers/cloudfiles.py
@@ -186,11 +186,17 @@ class OpenStackSwiftConnection(CloudFilesConnection):
     Connection class for the OpenStack Swift endpoint.
     """
 
+    # TODO: Reverse the relationship - Swift -> CloudFiles
+
     def __init__(self, *args, **kwargs):
         super(OpenStackSwiftConnection, self).__init__(*args, **kwargs)
         self._service_type = self._ex_force_service_type or 'object-store'
         self._service_name = self._ex_force_service_name or 'swift'
-        self._service_region = self._ex_force_service_region.upper()
+
+        if self._ex_force_service_region:
+            self._service_region = self._ex_force_service_region.upper()
+        else:
+            self._service_region = None
 
     def get_endpoint(self, *args, **kwargs):
         if '2.0' in self._auth_version:
@@ -200,10 +206,10 @@ class OpenStackSwiftConnection(CloudFilesConnection):
                 region=self._service_region)
         elif ('1.1' in self._auth_version) or ('1.0' in self._auth_version):
             endpoint = self.service_catalog.get_endpoint(
-                name=self._service_name, region=self._region_name)
+                name=self._service_name, region=self._service_region)
 
-        if self.endpoint_url in endpoint:
-            return endpoint[self.endpoint_url]
+        if PUBLIC_ENDPOINT_KEY in endpoint:
+            return endpoint[PUBLIC_ENDPOINT_KEY]
         else:
             raise LibcloudError('Could not find specified endpoint')