From 9f8b4b42858ae6cd66c0f1e64cc8e30475b66258 Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Tue, 15 May 2012 22:01:18 +0100 Subject: [PATCH] heat client : reduce duplication between functions Move common code into utility function to reduce duplication Signed-off-by: Steven Hardy --- heat/client.py | 61 +++++++++++--------------------------------------- 1 file changed, 13 insertions(+), 48 deletions(-) diff --git a/heat/client.py b/heat/client.py index 45be541572..9d6847e4aa 100644 --- a/heat/client.py +++ b/heat/client.py @@ -38,69 +38,34 @@ class V1Client(base_client.BaseClient): params['SignatureMethod'] = 'HmacSHA256' params['KeyStoneCreds'] = self.creds - def list_stacks(self, **kwargs): + def stack_request(self, action, method, **kwargs): params = self._extract_params(kwargs, SUPPORTED_PARAMS) self._insert_common_parameters(params) - params['Action'] = "ListStacks" + params['Action'] = action - res = self.do_request("GET", "/", params=params) - data = json.loads(res.read()) - return data + res = self.do_request(method, "/", params=params) + return json.loads(res.read()) + + def list_stacks(self, **kwargs): + return self.stack_request("ListStacks", "GET", **kwargs) def describe_stacks(self, **kwargs): - params = self._extract_params(kwargs, SUPPORTED_PARAMS) - self._insert_common_parameters(params) - params['Action'] = "DescribeStacks" - - res = self.do_request("GET", "/", params=params) - data = json.loads(res.read()) - return data + return self.stack_request("DescribeStacks", "GET", **kwargs) def create_stack(self, **kwargs): - - params = self._extract_params(kwargs, SUPPORTED_PARAMS) - self._insert_common_parameters(params) - params['Action'] = "CreateStack" - - res = self.do_request("POST", "/", params=params) - data = json.loads(res.read()) - return data + return self.stack_request("CreateStack", "POST", **kwargs) def update_stack(self, **kwargs): - params = self._extract_params(kwargs, SUPPORTED_PARAMS) - self._insert_common_parameters(params) - params['Action'] = "UpdateStack" - - res = self.do_request("POST", "/", params=params) - data = json.loads(res.read()) - return data + return self.stack_request("UpdateStack", "POST", **kwargs) def delete_stack(self, **kwargs): - params = self._extract_params(kwargs, SUPPORTED_PARAMS) - self._insert_common_parameters(params) - params['Action'] = "DeleteStack" - - res = self.do_request("GET", "/", params=params) - data = json.loads(res.read()) - return data + return self.stack_request("DeleteStack", "GET", **kwargs) def list_stack_events(self, **kwargs): - params = self._extract_params(kwargs, SUPPORTED_PARAMS) - self._insert_common_parameters(params) - params['Action'] = "DescribeStackEvents" - - res = self.do_request("GET", "/", params=params) - data = json.loads(res.read()) - return data + return self.stack_request("DescribeStackEvents", "GET", **kwargs) def validate_template(self, **kwargs): - params = self._extract_params(kwargs, SUPPORTED_PARAMS) - self._insert_common_parameters(params) - params['Action'] = "ValidateTemplate" - - res = self.do_request("GET", "/", params=params) - data = json.loads(res.read()) - return data + return self.stack_request("ValidateTemplate", "GET", **kwargs) HeatClient = V1Client