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): """
