diff options
author | Tommy Carpenter <tommy@research.att.com> | 2017-09-14 21:54:32 -0400 |
---|---|---|
committer | Tommy Carpenter <tommy@research.att.com> | 2017-09-14 21:57:03 -0400 |
commit | 770b47da0f4a33b22d757510c9108f30d6cbbd51 (patch) | |
tree | 5b0100b12902fefe23dc4ad4940fc08396b39deb /cdap/cdapplugin/cdapcloudify/discovery.py | |
parent | 289fbe75c0a172bf69adabc2ffd48c3b5958d363 (diff) |
DRY up code with decorators
Issue-ID: DCAEGEN2-74
Change-Id: Iefdfe3fa60879161ebc6ba3224f342a9af575d94
Signed-off-by: Tommy Carpenter <tommy@research.att.com>
Diffstat (limited to 'cdap/cdapplugin/cdapcloudify/discovery.py')
-rw-r--r-- | cdap/cdapplugin/cdapcloudify/discovery.py | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/cdap/cdapplugin/cdapcloudify/discovery.py b/cdap/cdapplugin/cdapcloudify/discovery.py index 12daebc..e20258f 100644 --- a/cdap/cdapplugin/cdapcloudify/discovery.py +++ b/cdap/cdapplugin/cdapcloudify/discovery.py @@ -44,8 +44,25 @@ def _get_broker_url(cdap_broker_name, service_component_name, logger): return broker_url """ +decorators +""" +def run_response(func): + """ + decorator for generic http call, log the response, and return the flask response + + make sure you call the functons below using logger as a kwarg! + """ + def inner(*args, **kwargs): + logger = kwargs["logger"] + response = func(*args, **kwargs) + logger.info((response, response.status_code, response.text)) + return response #let the caller deal with the response + return inner + +""" public """ +@run_response def put_broker(cdap_broker_name, service_component_name, namespace, @@ -77,13 +94,11 @@ def put_broker(cdap_broker_name, data["program_preferences"] = program_preferences #register with the broker - response = requests.put(_get_broker_url(cdap_broker_name, service_component_name, logger), + return requests.put(_get_broker_url(cdap_broker_name, service_component_name, logger), json = data, headers = {'content-type':'application/json'}) - logger.info((response, response.status_code, response.text)) - - return response #let the caller deal with the response +@run_response def reconfigure_in_broker(cdap_broker_name, service_component_name, config, @@ -91,20 +106,17 @@ def reconfigure_in_broker(cdap_broker_name, logger): #trigger a reconfiguration with the broker #man am I glad I broke the broker API from 3 to 4 to standardize this interface because now I only need one function here - response = requests.put("{u}/reconfigure".format(u = _get_broker_url(cdap_broker_name, service_component_name, logger)), + return requests.put("{u}/reconfigure".format(u = _get_broker_url(cdap_broker_name, service_component_name, logger)), headers = {'content-type':'application/json'}, json = {"reconfiguration_type" : reconfiguration_type, "config" : config}) - logger.info((response, response.status_code, response.text)) - - return response #let the caller deal with the response +@run_response def delete_on_broker(cdap_broker_name, service_component_name, logger): #deregister with the broker - response = requests.delete(_get_broker_url(cdap_broker_name, service_component_name, logger)) - logger.info((response, response.status_code, response.text)) - return response + return requests.delete(_get_broker_url(cdap_broker_name, service_component_name, logger)) +@run_response def delete_all_registered_apps(cdap_broker_name, logger): #get the broker connection broker_ip, broker_port = _get_connection_info_from_consul(cdap_broker_name, logger) @@ -114,9 +126,7 @@ def delete_all_registered_apps(cdap_broker_name, logger): logger.info("Trying to connect to broker called {0} at {1}".format(cdap_broker_name, broker_url)) registered_apps = json.loads(requests.get("{0}/application".format(broker_url)).text) #should be proper list of strings (appnames) logger.info("Trying to delete: {0}".format(registered_apps)) - response = requests.post("{0}/application/delete".format(broker_url), + return requests.post("{0}/application/delete".format(broker_url), headers = {'content-type':'application/json'}, json = {"appnames" : registered_apps}) - logger.info("Response: {0}, Response Status: {1}".format(response.text, response.status_code)) - return response |