Change permissions of python files
[functest.git] / functest / utils / functest_utils.py
index b1e4d3c..2bf87a0 100644 (file)
@@ -7,12 +7,14 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 #
+import functools
 import json
 import os
 import re
 import shutil
 import subprocess
 import sys
+import time
 import urllib2
 from datetime import datetime as dt
 
@@ -21,11 +23,10 @@ import requests
 import yaml
 from git import Repo
 
-import time
-import functools
-
+from functest.utils.constants import CONST
 import functest.utils.functest_logger as ft_logger
 
+
 logger = ft_logger.Logger("functest_utils").getLogger()
 
 
@@ -182,13 +183,43 @@ def logger_test_results(project, case_name, status, details):
             'd': details})
 
 
+def write_results_to_file(project, case_name, start_date,
+                          stop_date, criteria, details):
+    file_path = re.split(r'://', CONST.results_test_db_url)[1]
+
+    try:
+        installer = os.environ['INSTALLER_TYPE']
+        scenario = os.environ['DEPLOY_SCENARIO']
+        pod_name = os.environ['NODE_NAME']
+    except KeyError as e:
+        logger.error("Please set env var: " + str(e))
+        return False
+
+    test_start = dt.fromtimestamp(start_date).strftime('%Y-%m-%d %H:%M:%S')
+    test_stop = dt.fromtimestamp(stop_date).strftime('%Y-%m-%d %H:%M:%S')
+
+    params = {"project_name": project, "case_name": case_name,
+              "pod_name": pod_name, "installer": installer,
+              "scenario": scenario, "criteria": criteria,
+              "start_date": test_start, "stop_date": test_stop,
+              "details": details}
+    try:
+        with open(file_path, "a+w") as outfile:
+            json.dump(params, outfile)
+            outfile.write("\n")
+        return True
+    except Exception as e:
+        logger.error("write result data into a file failed: %s" % e)
+        return False
+
+
 def push_results_to_db(project, case_name,
                        start_date, stop_date, criteria, details):
     """
     POST results to the Result target DB
     """
     # Retrieve params from CI and conf
-    url = get_db_url() + "/results"
+    url = CONST.results_test_db_url + "/results"
 
     try:
         installer = os.environ['INSTALLER_TYPE']
@@ -321,26 +352,6 @@ def execute_command(cmd, info=False, error_msg="",
     return returncode
 
 
-def get_deployment_dir():
-    """
-    Returns current Rally deployment directory
-    """
-    deployment_name = get_functest_config('rally.deployment_name')
-    rally_dir = get_functest_config('general.directories.dir_rally_inst')
-    cmd = ("rally deployment list | awk '/" + deployment_name +
-           "/ {print $2}'")
-    p = subprocess.Popen(cmd, shell=True,
-                         stdout=subprocess.PIPE,
-                         stderr=subprocess.STDOUT)
-    deployment_uuid = p.stdout.readline().rstrip()
-    if deployment_uuid == "":
-        logger.error("Rally deployment not found.")
-        exit(-1)
-    deployment_dir = (rally_dir + "/tempest/for-deployment-" +
-                      deployment_uuid)
-    return deployment_dir
-
-
 def get_dict_by_test(testname):
     with open(get_testcases_file_dir()) as f:
         testcases_yaml = yaml.safe_load(f)