Fix generic OpenStack Swift driver and don't ignore ex_force_service_type
and ex_force_service_name argument provided by the user.


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

Branch: refs/heads/trunk
Commit: 3b99d4ae861223b1491b60cbf1bdd0e1d42f519e
Parents: 509040a
Author: Tomaz Muraus <[email protected]>
Authored: Mon Jan 6 18:20:19 2014 +0100
Committer: Tomaz Muraus <[email protected]>
Committed: Mon Jan 6 18:20:19 2014 +0100

----------------------------------------------------------------------
 libcloud/storage/drivers/cloudfiles.py | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/3b99d4ae/libcloud/storage/drivers/cloudfiles.py
----------------------------------------------------------------------
diff --git a/libcloud/storage/drivers/cloudfiles.py 
b/libcloud/storage/drivers/cloudfiles.py
index 08e12d2..df1c434 100644
--- a/libcloud/storage/drivers/cloudfiles.py
+++ b/libcloud/storage/drivers/cloudfiles.py
@@ -167,18 +167,20 @@ class CloudFilesSwiftConnection(CloudFilesConnection):
     """
 
     def __init__(self, *args, **kwargs):
-        self.region_name = kwargs.pop('ex_region_name', None)
         super(CloudFilesSwiftConnection, 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()
 
     def get_endpoint(self, *args, **kwargs):
         if '2.0' in self._auth_version:
             endpoint = self.service_catalog.get_endpoint(
-                service_type='object-store',
-                name='swift',
-                region=self.region_name)
+                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='swift', region=self.region_name)
+                name=self._service_name, region=self._region_name)
 
         if 'publicURL' in endpoint:
             return endpoint['publicURL']
@@ -843,15 +845,8 @@ class 
CloudFilesSwiftStorageDriver(CloudFilesStorageDriver):
     connectionCls = CloudFilesSwiftConnection
 
     def __init__(self, *args, **kwargs):
-        self._ex_region_name = kwargs.get('ex_region_name', 'RegionOne')
         super(CloudFilesSwiftStorageDriver, self).__init__(*args, **kwargs)
 
-    def openstack_connection_kwargs(self):
-        rv = super(CloudFilesSwiftStorageDriver,
-                   self).openstack_connection_kwargs()
-        rv['ex_region_name'] = self._ex_region_name
-        return rv
-
 
 class CloudFilesUKStorageDriver(CloudFilesStorageDriver):
     """

Reply via email to