From d4547b3a7beedfa69b845e525e6fbcfde8882ecc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Vonheiden?= <bjoern.vonheiden@hotmail.de>
Date: Fri, 18 Sep 2020 09:11:51 +0200
Subject: [PATCH] Add logging to run uc py

---
 execution/run_uc.py | 42 ++++++++++++++++++++++++++++--------------
 1 file changed, 28 insertions(+), 14 deletions(-)

diff --git a/execution/run_uc.py b/execution/run_uc.py
index 173b8820c..0bbae72e9 100644
--- a/execution/run_uc.py
+++ b/execution/run_uc.py
@@ -77,8 +77,11 @@ def initialize_kubernetes_api():
     print('Connect to kubernetes api')
     try:
         config.load_kube_config()  # try using local config
-    except config.config_exception.ConfigException:
+    except config.config_exception.ConfigException as e:
         # load config from pod, if local config is not available
+        logging.debug('Failed loading local Kubernetes configuration,'
+                      + ' try from cluster')
+        logging.debug(e)
         config.load_incluster_config()
 
     coreApi = client.CoreV1Api()
@@ -120,8 +123,9 @@ def load_yaml(file_path):
         f = open(path.join(path.dirname(__file__), file_path))
         with f:
             return yaml.safe_load(f)
-    except:
-        print('Error opening file %s' % file_path)
+    except Exception as e:
+        logging.error('Error opening file %s' % file_path)
+        logging.error(e)
 
 
 def load_yaml_files():
@@ -198,7 +202,7 @@ def start_application(svc_yaml, svc_monitor_yaml, jmx_yaml, deploy_yaml):
         print("Service '%s' created." % svc.metadata.name)
     except client.rest.ApiException as e:
         svc = svc_yaml
-        print("Service creation error: %s" % e.reason)
+        logging.error("Service creation error: %s" % e.reason)
 
     # Create custom object service monitor
     try:
@@ -212,7 +216,7 @@ def start_application(svc_yaml, svc_monitor_yaml, jmx_yaml, deploy_yaml):
         print("ServiceMonitor '%s' created." % svc_monitor['metadata']['name'])
     except client.rest.ApiException as e:
         svc_monitor = svc_monitor_yaml
-        print("ServiceMonitor creation error: %s" % e.reason)
+        logging.error("ServiceMonitor creation error: %s" % e.reason)
 
     # Apply jmx config map for aggregation service
     try:
@@ -221,7 +225,7 @@ def start_application(svc_yaml, svc_monitor_yaml, jmx_yaml, deploy_yaml):
         print("ConfigMap '%s' created." % jmx_cm.metadata.name)
     except client.rest.ApiException as e:
         jmx_cm = jmx_yaml
-        print("ConfigMap creation error: %s" % e.reason)
+        logging.error("ConfigMap creation error: %s" % e.reason)
 
     # Create deployment
     deploy_yaml['spec']['replicas'] = args.instances
@@ -241,7 +245,7 @@ def start_application(svc_yaml, svc_monitor_yaml, jmx_yaml, deploy_yaml):
         print("Deployment '%s' created." % app_deploy.metadata.name)
     except client.rest.ApiException as e:
         app_deploy = deploy_yaml
-        print("Deployment creation error: %s" % e.reason)
+        logging.error("Deployment creation error: %s" % e.reason)
 
     return svc, svc_monitor, jmx_cm, app_deploy
 
@@ -277,7 +281,7 @@ def delete_resource(obj, del_func):
         try:
             del_func(obj['metadata']['name'], 'default')
         except Exception as e:
-            print("Error deleting resource")
+            logging.error("Error deleting resource")
             logging.error(e)
             return
     print('Resource deleted')
@@ -366,6 +370,7 @@ def delete_topics(topics):
             break
     return
 
+
 def reset_zookeeper():
     """Delete ZooKeeper configurations used for workload generation.
     """
@@ -378,7 +383,8 @@ def reset_zookeeper():
         '--',
         'bash',
         '-c',
-        'zookeeper-shell my-confluent-cp-zookeeper:2181 deleteall /workload-generation'
+        'zookeeper-shell my-confluent-cp-zookeeper:2181 deleteall'
+        + ' /workload-generation'
     ]
 
     check_zoo_data_command = [
@@ -392,22 +398,29 @@ def reset_zookeeper():
         # "| awk -F[\]\[] '{print $2}'"
     ]
 
-    output = subprocess.run(delete_zoo_data_command, capture_output=True, text=True)
-    logging.info(output.stdout)
-
     # Wait for configuration deletion
     while True:
-        output = subprocess.run(check_zoo_data_command, capture_output=True, text=True)
+        # Delete Zookeeper configuration data
+        output = subprocess.run(delete_zoo_data_command,
+                                capture_output=True,
+                                text=True)
+        logging.debug(output.stdout)
+
+        # Check data is deleted
+        output = subprocess.run(check_zoo_data_command,
+                                capture_output=True,
+                                text=True)
         logging.debug(output)
 
         if 'workload-generation' in output.stdout:
             print('ZooKeeper reset was not successful. Retrying in 5s.')
             time.sleep(5)
         else:
-            logging.info('ZooKeeper reset was successful.')
+            print('ZooKeeper reset was successful.')
             break
     return
 
+
 def stop_lag_exporter():
     """
     Stop the lag exporter in order to reset it and allow smooth execution for
@@ -442,6 +455,7 @@ def stop_lag_exporter():
 # def stop():
 #
 
+
 def main():
     load_variables()
     print('---------------------')
-- 
GitLab