You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by an...@apache.org on 2016/12/02 04:33:07 UTC
[05/40] libcloud git commit: update variable names
update variable names
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/75111a44
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/75111a44
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/75111a44
Branch: refs/heads/trunk
Commit: 75111a446e8323df607c17703bfb4303eb966dde
Parents: 45fea8d
Author: Samuel Chong <sa...@gmail.com>
Authored: Tue Nov 8 15:16:38 2016 +1100
Committer: Samuel Chong <sa...@gmail.com>
Committed: Tue Nov 8 15:16:38 2016 +1100
----------------------------------------------------------------------
libcloud/common/dimensiondata.py | 39 +++++++++++++++++++++++++++++------
1 file changed, 33 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/75111a44/libcloud/common/dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/common/dimensiondata.py b/libcloud/common/dimensiondata.py
index 0a868b8..c58d5dd 100644
--- a/libcloud/common/dimensiondata.py
+++ b/libcloud/common/dimensiondata.py
@@ -372,8 +372,16 @@ class DimensionDataConnection(ConnectionUserAndKey):
api_path_version_1 = '/oec'
api_path_version_2 = '/caas'
- api_version_1 = '0.9'
- api_version_2 = '2.3'
+ api_version_1 = 0.9
+
+ # Earliest version supported
+ oldest_api_version = 2.2
+
+ # Latest version supported
+ latest_api_version = 2.3
+
+ # Default api version
+ active_api_version = 2.3
_orgId = None
responseCls = DimensionDataResponse
@@ -396,8 +404,27 @@ class DimensionDataConnection(ConnectionUserAndKey):
self.host = conn_kwargs['region']['host']
if api_version:
- if api_version.startswith('2'):
- self.api_version_2 = api_version
+ if float(api_version) < self.oldest_api_version:
+ msg = 'API Version specified is too old. No longer ' \
+ 'supported. Please upgrade to the latest version {}' \
+ .format(self.active_api_version)
+
+ raise DimensionDataAPIException(code=None,
+ msg=msg,
+ driver=self.driver)
+ elif float(api_version) > self.latest_api_version:
+ msg = 'Unsupported API Version. The version specified is ' \
+ 'not release yet. Please use the latest supported ' \
+ 'version {}' \
+ .format(self.active_api_version)
+
+ raise DimensionDataAPIException(code=None,
+ msg=msg,
+ driver=self.driver)
+
+ else:
+ # Overwrite default version using the version user specified
+ self.active_api_version = api_version
def add_default_headers(self, headers):
headers['Authorization'] = \
@@ -419,7 +446,7 @@ class DimensionDataConnection(ConnectionUserAndKey):
def request_api_2(self, path, action, params=None, data='',
headers=None, method='GET'):
action = "%s/%s/%s/%s" % (self.api_path_version_2,
- self.api_version_2, path, action)
+ self.active_api_version, path, action)
return super(DimensionDataConnection, self).request(
action=action,
@@ -520,7 +547,7 @@ class DimensionDataConnection(ConnectionUserAndKey):
resources that require a full path instead of just an ID, such as
networks, and customer snapshots.
"""
- return ("%s/%s/%s" % (self.api_path_version_2, self.api_version_2,
+ return ("%s/%s/%s" % (self.api_path_version_2, self.active_api_version,
self._get_orgId()))
def wait_for_state(self, state, func, poll_interval=2, timeout=60, *args,