Create ovs log artifact on odl-sfc fail
[functest.git] / testcases / features / domino.py
index e4229b4..75351a5 100755 (executable)
 # Later, the VM2 boots then execute cloud-init to ping VM1.
 # After successful ping, both the VMs are deleted.
 # 0.2: measure test duration and publish results under json format
-#
+# 0.3: add report flag to push results when needed
 #
 
-import os
+import argparse
 import time
-import yaml
 
 import functest.utils.functest_logger as ft_logger
-import functest.utils.functest_utils as functest_utils
+import functest.utils.functest_utils as ft_utils
+
+parser = argparse.ArgumentParser()
 
-with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
-    functest_yaml = yaml.safe_load(f)
+parser.add_argument("-r", "--report",
+                    help="Create json result file",
+                    action="store_true")
+args = parser.parse_args()
 
-dirs = functest_yaml.get('general').get('directories')
-FUNCTEST_REPO = dirs.get('dir_repo_functest')
-DOMINO_REPO = dirs.get('dir_repo_domino')
-TEST_DB_URL = functest_yaml.get('results').get('test_db_url')
+
+DOMINO_REPO = \
+    ft_utils.get_functest_config('general.directories.dir_repo_domino')
+RESULTS_DIR = \
+    ft_utils.get_functest_config('general.directories.dir_results')
 
 logger = ft_logger.Logger("domino").getLogger()
 
 
 def main():
     cmd = 'cd %s && ./tests/run_multinode.sh' % DOMINO_REPO
+    log_file = RESULTS_DIR + "/domino.log"
     start_time = time.time()
 
-    ret = functest_utils.execute_command(cmd, logger, exit_on_error=False)
+    ret = ft_utils.execute_command(cmd,
+                                   exit_on_error=False,
+                                   output_file=log_file)
 
     stop_time = time.time()
     duration = round(stop_time - start_time, 1)
@@ -55,10 +62,6 @@ def main():
         'duration': duration,
         'status': test_status,
     }
-    pod_name = functest_utils.get_pod_name(logger)
-    scenario = functest_utils.get_scenario(logger)
-    version = functest_utils.get_version(logger)
-    build_tag = functest_utils.get_build_tag(logger)
 
     status = "FAIL"
     if details['status'] == "OK":
@@ -66,25 +69,20 @@ def main():
     elif details['status'] == "SKIPPED":
         status = "SKIP"
 
-    logger.info("Pushing Domino results: TEST_DB_URL=%(db)s pod_name=%(pod)s "
-                "version=%(v)s scenario=%(s)s criteria=%(c)s details=%(d)s" % {
-                    'db': TEST_DB_URL,
-                    'pod': pod_name,
-                    'v': version,
-                    's': scenario,
-                    'c': status,
-                    'b': build_tag,
-                    'd': details,
-                })
-
-    if status is not "SKIP":
-        functest_utils.push_results_to_db("domino",
-                                          "domino-multinode",
-                                          logger,
-                                          start_time,
-                                          stop_time,
-                                          status,
-                                          details)
+    ft_utils.logger_test_results("Domino",
+                                 "domino-multinode",
+                                 status,
+                                 details)
+    if args.report:
+        if status is not "SKIP":
+            ft_utils.push_results_to_db("domino",
+                                        "domino-multinode",
+                                        start_time,
+                                        stop_time,
+                                        status,
+                                        details)
+            logger.info("Domino results pushed to DB")
+
 
 if __name__ == '__main__':
     main()