aboutsummaryrefslogtreecommitdiffstats
path: root/functest/utils/functest_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'functest/utils/functest_utils.py')
-rw-r--r--functest/utils/functest_utils.py59
1 files changed, 35 insertions, 24 deletions
diff --git a/functest/utils/functest_utils.py b/functest/utils/functest_utils.py
index b1e4d3cd..2bf87a05 100644
--- a/functest/utils/functest_utils.py
+++ b/functest/utils/functest_utils.py
@@ -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)