Don't exit on error when destroying rally deployment
authorjose.lausuch <jose.lausuch@ericsson.com>
Thu, 5 May 2016 12:36:03 +0000 (14:36 +0200)
committerjose.lausuch <jose.lausuch@ericsson.com>
Thu, 5 May 2016 12:36:03 +0000 (14:36 +0200)
Also, some improvements in execute_command function

Change-Id: I8271d55202b8859701275d5f7322a7bd4894e475
Signed-off-by: jose.lausuch <jose.lausuch@ericsson.com>
ci/prepare_env.py
utils/functest_utils.py

index bd6c986..a861fed 100644 (file)
@@ -203,7 +203,7 @@ def verify_deployment():
         if "ERROR" in line:
             logger.error(line)
             sys.exit("Problem while running 'check_os.sh'.")
-        logger.debug(line)
+        logger.info(line)
 
 
 def install_rally():
@@ -211,34 +211,34 @@ def install_rally():
     logger.info("Creating Rally environment...")
 
     cmd = "rally deployment destroy opnfv-rally"
-    ft_utils.execute_command(cmd, logger=None, exit_on_error=False)
+    ft_utils.execute_command(cmd, logger=logger, exit_on_error=False,
+                             error_msg=("Deployment %s does not exist."
+                                        % DEPLOYMENT_MAME), verbose=False)
 
     cmd = "rally deployment create --fromenv --name=" + DEPLOYMENT_MAME
-    if not ft_utils.execute_command(cmd, logger):
-        logger.error("Problem while creating Rally deployment.")
-        sys.exit(cmd)
+    ft_utils.execute_command(cmd, logger,
+                             error_msg="Problem creating Rally deployment")
 
     logger.info("Installing tempest from existing repo...")
     cmd = ("rally verify install --source " + TEMPEST_REPO_DIR +
            " --system-wide")
-    if not ft_utils.execute_command(cmd, logger):
-        logger.error("Problem while installing Tempest.")
-        sys.exit(cmd)
+    ft_utils.execute_command(cmd, logger,
+                             error_msg="Problem installing Tempest.")
 
     cmd = "rally deployment check"
-    if not ft_utils.execute_command(cmd, logger):
-        logger.error("OpenStack not responding or faulty Rally deployment.")
-        sys.exit(cmd)
+    ft_utils.execute_command(cmd, logger,
+                             error_msg=("OpenStack not responding or "
+                                        "faulty Rally deployment."))
 
     cmd = "rally show images"
-    if not ft_utils.execute_command(cmd, logger):
-        logger.error("Problem while listing OpenStack images.")
-        sys.exit(cmd)
+    ft_utils.execute_command(cmd, logger,
+                             error_msg=("Problem while listing "
+                                        "OpenStack images."))
 
     cmd = "rally show flavors"
-    if not ft_utils.execute_command(cmd, logger):
-        logger.error("Problem while showing OpenStack flavors.")
-        sys.exit(cmd)
+    ft_utils.execute_command(cmd, logger,
+                             error_msg=("Problem while showing "
+                                        "OpenStack flavors."))
 
 
 def generate_os_defaults():
index a69174b..41925fc 100644 (file)
@@ -196,24 +196,39 @@ def get_ci_envvars():
     return ci_env_var
 
 
-def execute_command(cmd, logger=None, exit_on_error=True, info=False):
-    if logger:
-        logger.debug('Executing command : {}'.format(cmd))
-    p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
-    while p.poll() is None:
-        line = p.stdout.readline().rstrip()
+def execute_command(cmd, logger=None,
+                    exit_on_error=True,
+                    info=False,
+                    error_msg="",
+                    verbose=True):
+    if not error_msg:
+        error_msg = ("The command '%s' failed." % cmd)
+    msg_exec = ("Executing command: '%s'" % cmd)
+    if verbose:
         if logger:
             if info:
-                logger.info(line)
+                logger.info(msg_exec)
             else:
-                logger.debug(line)
+                logger.debug(msg_exec)
         else:
-            print line
+            print(msg_exec)
+    p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
+    while p.poll() is None:
+        line = p.stdout.readline().rstrip()
+        if verbose:
+            if logger:
+                if info:
+                    logger.info(line)
+                else:
+                    logger.debug(line)
+            else:
+                print line
     if p.returncode != 0:
-        if logger:
-            logger.error("Error when executing command %s" % cmd)
-        else:
-            print("Error when executing command %s" % cmd)
+        if verbose:
+            if logger:
+                logger.error(error_msg)
+            else:
+                print(error_msg)
         if exit_on_error:
             sys.exit(1)