Repository: libcloud Updated Branches: refs/heads/trunk 76cc0bb3b -> 0d9b28161
Fix aliyun ecs driver: version mismatch error fix#800 E302 expected 2 blank lines support ECSConnection and SLBConnection expected 1 blank lines fix no member named api_version lint: commands failed expected 2 blank lines Aliyun ecs: Add support for creating/deleting security group fix E501 line too long (83 > 79 characters) fix E203 whitespace before ':' Closes #800 Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/2583d625 Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/2583d625 Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/2583d625 Branch: refs/heads/trunk Commit: 2583d625a953b81ae02b6bc34ab8d06d413794bc Parents: 76cc0bb Author: net613 <[email protected]> Authored: Mon Jun 6 12:11:31 2016 +0800 Committer: Tomaz Muraus <[email protected]> Committed: Fri Jun 10 12:47:59 2016 +0200 ---------------------------------------------------------------------- libcloud/__init__.pyc | Bin 0 -> 1935 bytes libcloud/common/aliyun.py | 19 +++++++++++--- libcloud/compute/drivers/ecs.py | 41 +++++++++++++++++++++++++++++- libcloud/loadbalancer/drivers/slb.py | 2 +- libcloud/utils/__init__.pyc | Bin 0 -> 1121 bytes libcloud/utils/dist.pyc | Bin 0 -> 4025 bytes 6 files changed, 56 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/2583d625/libcloud/__init__.pyc ---------------------------------------------------------------------- diff --git a/libcloud/__init__.pyc b/libcloud/__init__.pyc new file mode 100644 index 0000000..62724b4 Binary files /dev/null and b/libcloud/__init__.pyc differ http://git-wip-us.apache.org/repos/asf/libcloud/blob/2583d625/libcloud/common/aliyun.py ---------------------------------------------------------------------- diff --git a/libcloud/common/aliyun.py b/libcloud/common/aliyun.py index 062f389..4e4b5a4 100644 --- a/libcloud/common/aliyun.py +++ b/libcloud/common/aliyun.py @@ -180,9 +180,13 @@ class AliyunConnection(ConnectionUserAndKey): class SignedAliyunConnection(AliyunConnection): - def __init__(self, user_id, key, secure=True, host=None, port=None, - url=None, timeout=None, proxy_url=None, retry_delay=None, - backoff=None, signature_version=DEFAULT_SIGNATURE_VERSION): + + api_version = None + + def __init__(self, user_id, key, secure=True, host=None, + port=None, url=None, timeout=None, proxy_url=None, + retry_delay=None, backoff=None, api_version=None, + signature_version=DEFAULT_SIGNATURE_VERSION): super(SignedAliyunConnection, self).__init__(user_id=user_id, key=key, secure=secure, host=host, port=port, @@ -190,6 +194,7 @@ class SignedAliyunConnection(AliyunConnection): proxy_url=proxy_url, retry_delay=retry_delay, backoff=backoff) + self.signature_version = str(signature_version) if self.signature_version == '1.0': @@ -198,9 +203,15 @@ class SignedAliyunConnection(AliyunConnection): raise ValueError('Unsupported signature_version: %s' % signature_version) + if api_version is not None: + self.api_version = str(api_version) + else: + if self.api_version is None: + raise ValueError('Unsupported null api_version') + self.signer = signer_cls(access_key=self.user_id, access_secret=self.key, - version=signature_version) + version=self.api_version) def add_default_params(self, params): params = self.signer.get_request_params(params=params, http://git-wip-us.apache.org/repos/asf/libcloud/blob/2583d625/libcloud/compute/drivers/ecs.py ---------------------------------------------------------------------- diff --git a/libcloud/compute/drivers/ecs.py b/libcloud/compute/drivers/ecs.py index c9d53f8..63d54d5 100644 --- a/libcloud/compute/drivers/ecs.py +++ b/libcloud/compute/drivers/ecs.py @@ -354,7 +354,7 @@ class ECSConnection(SignedAliyunConnection): Represents a single connection to the Aliyun ECS Endpoint. """ - version = ECS_API_VERSION + api_version = ECS_API_VERSION host = ECS_API_ENDPOINT responseCls = AliyunXmlResponse service_name = 'ecs' @@ -768,6 +768,45 @@ class ECSDriver(NodeDriver): return resp.success() and \ self._wait_until_state([node], NodeState.STOPPED) + def ex_create_security_groups(self, ex_description=None, + ex_client_token=None): + """ + Create a new security groups. + + :keyword ex_description: volume description + :type ex_description: ``unicode`` + + :keyword ex_client_token: a token generated by client to identify + each request. + :type ex_client_token: ``str`` + """ + params = {'Action': 'CreateSecurityGroup', + 'RegionId': self.region} + + if ex_description: + params['Description'] = ex_description + if ex_client_token: + params['ClientToken'] = ex_client_token + resp = self.connection.request(self.path, params).object + return findtext(resp, 'SecurityGroupId', namespace=self.namespace) + + def ex_delete_security_groups(self, ex_security_group_id=None): + """ + Create a new security groups. + + :keyword ex_description: volume description + :type ex_description: ``unicode`` + + :keyword ex_client_token: a token generated by client to identify + each request. + :type ex_client_token: ``str`` + """ + params = {'Action': 'DeleteSecurityGroup', + 'RegionId': self.region, + 'SecurityGroupId': ex_security_group_id} + resp = self.connection.request(self.path, params) + return resp.success() + def ex_list_security_groups(self, ex_filters=None): """ List security groups in the current region. http://git-wip-us.apache.org/repos/asf/libcloud/blob/2583d625/libcloud/loadbalancer/drivers/slb.py ---------------------------------------------------------------------- diff --git a/libcloud/loadbalancer/drivers/slb.py b/libcloud/loadbalancer/drivers/slb.py index 03ca6be..492391d 100644 --- a/libcloud/loadbalancer/drivers/slb.py +++ b/libcloud/loadbalancer/drivers/slb.py @@ -97,7 +97,7 @@ ALGORITHM_TO_SLB_SCHEDULER = { class SLBConnection(SignedAliyunConnection): - version = SLB_API_VERSION + api_version = SLB_API_VERSION host = SLB_API_HOST responseCls = AliyunXmlResponse service_name = 'slb' http://git-wip-us.apache.org/repos/asf/libcloud/blob/2583d625/libcloud/utils/__init__.pyc ---------------------------------------------------------------------- diff --git a/libcloud/utils/__init__.pyc b/libcloud/utils/__init__.pyc new file mode 100644 index 0000000..9aec925 Binary files /dev/null and b/libcloud/utils/__init__.pyc differ http://git-wip-us.apache.org/repos/asf/libcloud/blob/2583d625/libcloud/utils/dist.pyc ---------------------------------------------------------------------- diff --git a/libcloud/utils/dist.pyc b/libcloud/utils/dist.pyc new file mode 100644 index 0000000..99c4a0e Binary files /dev/null and b/libcloud/utils/dist.pyc differ
