Merge "Added support for custom images and flavors in tempest"
[functest.git] / testcases / features / doctor.py
index 7139313..6c26875 100755 (executable)
 import argparse
 import os
 import time
-import yaml
 
 import functest.utils.functest_logger as ft_logger
 import functest.utils.functest_utils as functest_utils
 
+
 parser = argparse.ArgumentParser()
 parser.add_argument("-r", "--report",
                     help="Create json result file",
                     action="store_true")
 args = parser.parse_args()
 
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
-    functest_yaml = yaml.safe_load(f)
+functest_yaml = functest_utils.get_functest_yaml()
 
-dirs = functest_yaml.get('general').get('directories')
-DOCTOR_REPO = dirs.get('dir_repo_doctor')
+DOCTOR_REPO = \
+    functest_utils.get_functest_config('general.directories.dir_repo_doctor')
+RESULTS_DIR = \
+    functest_utils.get_functest_config('general.directories.dir_results')
 
 logger = ft_logger.Logger("doctor").getLogger()
 
 
 def main():
     exit_code = -1
+
+    # if the image name is explicitly set for the doctor suite, set it as
+    # enviroment variable
+    if 'doctor' in functest_yaml and 'image_name' in functest_yaml['doctor']:
+        os.environ["IMAGE_NAME"] = functest_yaml['doctor']['image_name']
+
     cmd = 'cd %s/tests && ./run.sh' % DOCTOR_REPO
+    log_file = RESULTS_DIR + "/doctor.log"
+
     start_time = time.time()
 
-    ret = functest_utils.execute_command(cmd, info=True,
-                                         exit_on_error=False)
+    ret = functest_utils.execute_command(cmd,
+                                         info=True,
+                                         exit_on_error=False,
+                                         output_file=log_file)
 
     stop_time = time.time()
     duration = round(stop_time - start_time, 1)
     if ret == 0:
-        logger.info("doctor OK")
+        logger.info("Doctor test case OK")
         test_status = 'OK'
         exit_code = 0
     else:
-        logger.info("doctor FAILED")
+        logger.info("Doctor test case FAILED")
         test_status = 'NOK'
 
     details = {