summaryrefslogtreecommitdiffstats
path: root/utils/test/reporting/functest
diff options
context:
space:
mode:
authorMorgan Richomme <morgan.richomme@orange.com>2016-11-16 18:16:43 +0100
committerMorgan Richomme <morgan.richomme@orange.com>2016-11-17 09:27:08 +0100
commitc850beb64083c730301188ade4cbba0f2a329a92 (patch)
tree19b241b8a85c463744cff8e4e40c8b4e3764475b /utils/test/reporting/functest
parent483081b7fb0cf5d7dec5ee1d6ff0bddc387a59dc (diff)
Refactor reporting dir
- dockerization - create util function for all the test projects - create a common config files - add unit tests - pep8 JIRA: RELENG-162 Change-Id: Ib209be4233084100ff238a7aeb2843ccc24a6f1e Signed-off-by: Morgan Richomme <morgan.richomme@orange.com>
Diffstat (limited to 'utils/test/reporting/functest')
-rwxr-xr-xutils/test/reporting/functest/reporting-status.py118
-rwxr-xr-xutils/test/reporting/functest/reporting-tempest.py37
-rwxr-xr-xutils/test/reporting/functest/reporting-vims.py35
-rw-r--r--utils/test/reporting/functest/reportingConf.py26
-rw-r--r--utils/test/reporting/functest/reportingUtils.py186
-rw-r--r--utils/test/reporting/functest/template/index-status-tmpl.html26
-rw-r--r--utils/test/reporting/functest/template/index-tempest-tmpl.html12
-rw-r--r--utils/test/reporting/functest/template/index-vims-tmpl.html12
-rw-r--r--utils/test/reporting/functest/testCase.py4
9 files changed, 128 insertions, 328 deletions
diff --git a/utils/test/reporting/functest/reporting-status.py b/utils/test/reporting/functest/reporting-status.py
index 653448eaf..cb13b099c 100755
--- a/utils/test/reporting/functest/reporting-status.py
+++ b/utils/test/reporting/functest/reporting-status.py
@@ -8,19 +8,20 @@
#
import datetime
import jinja2
-import pdfkit
+import os
import requests
import sys
import time
import yaml
-import reportingUtils as utils
-import reportingConf as conf
import testCase as tc
import scenarioResult as sr
+# manage conf
+import utils.reporting_utils as rp_utils
+
# Logger
-logger = utils.getLogger("Status")
+logger = rp_utils.getLogger("Functest-Status")
# Initialization
testValid = []
@@ -33,14 +34,21 @@ tempest = tc.TestCase("tempest_smoke_serial", "functest", -1)
# Retrieve the Functest configuration to detect which tests are relevant
# according to the installer, scenario
-cf = conf.TEST_CONF
+cf = rp_utils.get_config('functest.test_conf')
+period = rp_utils.get_config('general.period')
+versions = rp_utils.get_config('general.versions')
+installers = rp_utils.get_config('general.installers')
+blacklist = rp_utils.get_config('functest.blacklist')
+log_level = rp_utils.get_config('general.log.log_level')
response = requests.get(cf)
functest_yaml_config = yaml.safe_load(response.text)
logger.info("*******************************************")
+logger.info("* *")
logger.info("* Generating reporting scenario status *")
-logger.info("* Data retention = %s days *" % conf.PERIOD)
+logger.info("* Data retention: %s days *" % period)
+logger.info("* Log level: %s *" % log_level)
logger.info("* *")
logger.info("*******************************************")
@@ -55,36 +63,41 @@ config_tiers = functest_yaml_config.get("tiers")
for tier in config_tiers:
if tier['order'] > 0 and tier['order'] < 3:
for case in tier['testcases']:
- if case['name'] not in conf.blacklist:
+ if case['name'] not in blacklist:
testValid.append(tc.TestCase(case['name'],
"functest",
case['dependencies']))
elif tier['order'] == 3:
for case in tier['testcases']:
- if case['name'] not in conf.blacklist:
+ if case['name'] not in blacklist:
testValid.append(tc.TestCase(case['name'],
case['name'],
case['dependencies']))
elif tier['order'] > 3:
for case in tier['testcases']:
- if case['name'] not in conf.blacklist:
+ if case['name'] not in blacklist:
otherTestCases.append(tc.TestCase(case['name'],
"functest",
case['dependencies']))
+logger.debug("Functest reporting start")
# For all the versions
-for version in conf.versions:
+for version in versions:
# For all the installers
- for installer in conf.installers:
+ for installer in installers:
# get scenarios
- scenario_results = utils.getScenarios(tempest, installer, version)
- scenario_stats = utils.getScenarioStats(scenario_results)
+ scenario_results = rp_utils.getScenarios(tempest, installer, version)
+ scenario_stats = rp_utils.getScenarioStats(scenario_results)
items = {}
scenario_result_criteria = {}
- scenario_file_name = (conf.REPORTING_PATH +
- "/functest/release/" + version +
- "/scenario_history.txt")
+ scenario_file_name = ("./display/" + version +
+ "/functest/scenario_history.txt")
+ # initiate scenario file if it does not exist
+ if not os.path.isfile(scenario_file_name):
+ with open(scenario_file_name, "a") as my_file:
+ logger.debug("Create scenario file: %s" % scenario_file_name)
+ my_file.write("date,scenario,installer,detail,score\n")
# For all the scenarios get results
for s, s_result in scenario_results.items():
@@ -102,7 +115,7 @@ for version in conf.versions:
if len(s_result) > 0:
build_tag = s_result[len(s_result)-1]['build_tag']
logger.debug("Build tag: %s" % build_tag)
- s_url = s_url = utils.getJenkinsUrl(build_tag)
+ s_url = s_url = rp_utils.getJenkinsUrl(build_tag)
logger.info("last jenkins url: %s" % s_url)
testCases2BeDisplayed = []
# Check if test case is runnable / installer, scenario
@@ -126,7 +139,8 @@ for version in conf.versions:
nb_test_runnable_for_this_scenario += 1
logger.info(" Searching results for case %s " %
(displayName))
- result = utils.getResult(dbName, installer, s, version)
+ result = rp_utils.getResult(dbName, installer,
+ s, version)
# if no result set the value to 0
if result < 0:
result = 0
@@ -158,7 +172,8 @@ for version in conf.versions:
project = test_case.getProject()
logger.info(" Searching results for case %s " %
(displayName))
- result = utils.getResult(dbName, installer, s, version)
+ result = rp_utils.getResult(dbName, installer,
+ s, version)
# at least 1 result for the test
if result > -1:
test_case.setCriteria(result)
@@ -186,11 +201,11 @@ for version in conf.versions:
scenario_criteria = nb_test_runnable_for_this_scenario * 3
# if 0 runnable tests set criteria at a high value
if scenario_criteria < 1:
- scenario_criteria = conf.MAX_SCENARIO_CRITERIA
+ scenario_criteria = 50 # conf.MAX_SCENARIO_CRITERIA
s_score = str(scenario_score) + "/" + str(scenario_criteria)
- s_score_percent = utils.getScenarioPercent(scenario_score,
- scenario_criteria)
+ s_score_percent = rp_utils.getScenarioPercent(scenario_score,
+ scenario_criteria)
s_status = "KO"
if scenario_score < scenario_criteria:
@@ -200,9 +215,9 @@ for version in conf.versions:
else:
logger.info(">>>>> scenario OK, save the information")
s_status = "OK"
- path_validation_file = (conf.REPORTING_PATH +
- "/functest/release/" + version +
- "/validated_scenario_history.txt")
+ path_validation_file = ("./display/" + version +
+ "/functest/" +
+ "validated_scenario_history.txt")
with open(path_validation_file, "a") as f:
time_format = "%Y-%m-%d %H:%M"
info = (datetime.datetime.now().strftime(time_format) +
@@ -222,54 +237,37 @@ for version in conf.versions:
s_url)
logger.info("--------------------------")
- templateLoader = jinja2.FileSystemLoader(conf.REPORTING_PATH)
+ templateLoader = jinja2.FileSystemLoader(".")
templateEnv = jinja2.Environment(
loader=templateLoader, autoescape=True)
- TEMPLATE_FILE = "/functest/template/index-status-tmpl.html"
+ TEMPLATE_FILE = "./functest/template/index-status-tmpl.html"
template = templateEnv.get_template(TEMPLATE_FILE)
outputText = template.render(scenario_stats=scenario_stats,
scenario_results=scenario_result_criteria,
items=items,
installer=installer,
- period=conf.PERIOD,
+ period=period,
version=version,
date=reportingDate)
- # csv
- # generate sub files based on scenario_history.txt
- scenario_installer_file_name = (conf.REPORTING_PATH +
- "/functest/release/" + version +
- "/scenario_history_" + installer +
- ".txt")
- scenario_installer_file = open(scenario_installer_file_name, "a")
- logger.info("Generate CSV...")
- with open(scenario_file_name, "r") as f:
- for line in f:
- if installer in line:
- logger.debug("Add new line... %s" % line)
- scenario_installer_file.write(line)
- scenario_installer_file.close
-
- with open(conf.REPORTING_PATH + "/functest/release/" + version +
- "/index-status-" + installer + ".html", "wb") as fh:
+ with open("./display/" + version +
+ "/functest/status-" + installer + ".html", "wb") as fh:
fh.write(outputText)
- logger.info("CSV generated...")
+
+ logger.info("Manage export CSV & PDF")
+ rp_utils.export_csv(scenario_file_name, installer, version)
+ logger.error("CSV generated...")
# Generate outputs for export
# pdf
- logger.info("Generate PDF...")
- try:
- pdf_path = ("http://testresults.opnfv.org/reporting/" +
- "functest/release/" + version +
- "/index-status-" + installer + ".html")
- pdf_doc_name = (conf.REPORTING_PATH +
- "/functest/release/" + version +
- "/status-" + installer + ".pdf")
- pdfkit.from_url(pdf_path, pdf_doc_name)
- logger.info("PDF generated...")
- except IOError:
- logger.info("pdf generated anyway...")
- except:
- logger.error("impossible to generate PDF")
+ # TODO Change once web site updated...use the current one
+ # to test pdf production
+ url_pdf = rp_utils.get_config('general.url')
+ pdf_path = ("./display/" + version +
+ "/functest/status-" + installer + ".html")
+ pdf_doc_name = ("./display/" + version +
+ "/functest/status-" + installer + ".pdf")
+ rp_utils.export_pdf(pdf_path, pdf_doc_name)
+ logger.info("PDF generated...")
diff --git a/utils/test/reporting/functest/reporting-tempest.py b/utils/test/reporting/functest/reporting-tempest.py
index 363f123cf..5d6bcc062 100755
--- a/utils/test/reporting/functest/reporting-tempest.py
+++ b/utils/test/reporting/functest/reporting-tempest.py
@@ -1,18 +1,22 @@
from urllib2 import Request, urlopen, URLError
import json
import jinja2
-import reportingConf as conf
-import reportingUtils as utils
+import os
-installers = conf.installers
+# manage conf
+import utils.reporting_utils as rp_utils
+
+installers = rp_utils.get_config('general.installers')
items = ["tests", "Success rate", "duration"]
-PERIOD = conf.PERIOD
+CURRENT_DIR = os.getcwd()
+
+PERIOD = rp_utils.get_config('general.period')
criteria_nb_test = 165
criteria_duration = 1800
criteria_success_rate = 90
-logger = utils.getLogger("Tempest")
+logger = rp_utils.getLogger("Tempest")
logger.info("************************************************")
logger.info("* Generating reporting Tempest_smoke_serial *")
logger.info("* Data retention = %s days *" % PERIOD)
@@ -25,10 +29,11 @@ logger.info("test duration < %s s " % criteria_duration)
logger.info("success rate > %s " % criteria_success_rate)
# For all the versions
-for version in conf.versions:
- for installer in conf.installers:
+for version in rp_utils.get_config('general.versions'):
+ for installer in installers:
# we consider the Tempest results of the last PERIOD days
- url = 'http://' + conf.URL_BASE + "?case=tempest_smoke_serial"
+ url = ("http://" + rp_utils.get_config('testapi.url') +
+ "?case=tempest_smoke_serial")
request = Request(url + '&period=' + str(PERIOD) +
'&installer=' + installer +
'&version=' + version)
@@ -68,8 +73,9 @@ for version in conf.versions:
nb_tests_run = result['details']['tests']
nb_tests_failed = result['details']['failures']
if nb_tests_run != 0:
- success_rate = 100*(int(nb_tests_run) -
- int(nb_tests_failed)) / int(nb_tests_run)
+ success_rate = 100*((int(nb_tests_run) -
+ int(nb_tests_failed)) /
+ int(nb_tests_run))
else:
success_rate = 0
@@ -115,17 +121,18 @@ for version in conf.versions:
except:
logger.error("Error field not present (Brahamputra runs?)")
- templateLoader = jinja2.FileSystemLoader(conf.REPORTING_PATH)
- templateEnv = jinja2.Environment(loader=templateLoader, autoescape=True)
+ templateLoader = jinja2.FileSystemLoader(".")
+ templateEnv = jinja2.Environment(loader=templateLoader,
+ autoescape=True)
- TEMPLATE_FILE = "/template/index-tempest-tmpl.html"
+ TEMPLATE_FILE = "./functest/template/index-tempest-tmpl.html"
template = templateEnv.get_template(TEMPLATE_FILE)
outputText = template.render(scenario_results=scenario_results,
items=items,
installer=installer)
- with open(conf.REPORTING_PATH + "/release/" + version +
- "/index-tempest-" + installer + ".html", "wb") as fh:
+ with open("./display/" + version +
+ "/functest/tempest-" + installer + ".html", "wb") as fh:
fh.write(outputText)
logger.info("Tempest automatic reporting succesfully generated.")
diff --git a/utils/test/reporting/functest/reporting-vims.py b/utils/test/reporting/functest/reporting-vims.py
index 430a5453c..2077d2a4a 100755
--- a/utils/test/reporting/functest/reporting-vims.py
+++ b/utils/test/reporting/functest/reporting-vims.py
@@ -1,10 +1,11 @@
from urllib2 import Request, urlopen, URLError
import json
import jinja2
-import reportingConf as conf
-import reportingUtils as utils
-logger = utils.getLogger("vIMS")
+# manage conf
+import utils.reporting_utils as rp_utils
+
+logger = rp_utils.getLogger("vIMS")
def sig_test_format(sig_test):
@@ -24,22 +25,26 @@ def sig_test_format(sig_test):
total_sig_test_result['skipped'] = nbSkipped
return total_sig_test_result
+period = rp_utils.get_config('general.period')
+versions = rp_utils.get_config('general.versions')
+url_base = rp_utils.get_config('testapi.url')
+
logger.info("****************************************")
logger.info("* Generating reporting vIMS *")
-logger.info("* Data retention = %s days *" % conf.PERIOD)
+logger.info("* Data retention = %s days *" % period)
logger.info("* *")
logger.info("****************************************")
-installers = conf.installers
+installers = rp_utils.get_config('general.installers')
step_order = ["initialisation", "orchestrator", "vIMS", "sig_test"]
logger.info("Start processing....")
# For all the versions
-for version in conf.versions:
+for version in versions:
for installer in installers:
logger.info("Search vIMS results for installer: %s, version: %s"
% (installer, version))
- request = Request("http://" + conf.URL_BASE + '?case=vims&installer=' +
+ request = Request("http://" + url_base + '?case=vims&installer=' +
installer + '&version=' + version)
try:
@@ -81,7 +86,8 @@ for version in conf.versions:
if int(m) != 0:
m_display += str(int(m)) + "m "
- step_result['duration_display'] = m_display + str(int(s)) + "s"
+ step_result['duration_display'] = (m_display +
+ str(int(s)) + "s")
result['pr_step_ok'] = 0
if nb_step != 0:
@@ -89,8 +95,9 @@ for version in conf.versions:
try:
logger.debug("Scenario %s, Installer %s"
% (s_result[1]['scenario'], installer))
+ res = result['details']['orchestrator']['duration']
logger.debug("Orchestrator deployment: %s s"
- % result['details']['orchestrator']['duration'])
+ % res)
logger.debug("vIMS deployment: %s s"
% result['details']['vIMS']['duration'])
logger.debug("Signaling testing: %s s"
@@ -101,18 +108,18 @@ for version in conf.versions:
logger.error("Data badly formatted")
logger.debug("----------------------------------------")
- templateLoader = jinja2.FileSystemLoader(conf.REPORTING_PATH)
- templateEnv = jinja2.Environment(loader=templateLoader, autoescape=True)
+ templateLoader = jinja2.FileSystemLoader(".")
+ templateEnv = jinja2.Environment(loader=templateLoader,
+ autoescape=True)
- TEMPLATE_FILE = "/template/index-vims-tmpl.html"
+ TEMPLATE_FILE = "./functest/template/index-vims-tmpl.html"
template = templateEnv.get_template(TEMPLATE_FILE)
outputText = template.render(scenario_results=scenario_results,
step_order=step_order,
installer=installer)
- with open(conf.REPORTING_PATH +
- "/release/" + version + "/index-vims-" +
+ with open("./display/" + version + "/functest/vims-" +
installer + ".html", "wb") as fh:
fh.write(outputText)
diff --git a/utils/test/reporting/functest/reportingConf.py b/utils/test/reporting/functest/reportingConf.py
deleted file mode 100644
index 1c9a2ac9f..000000000
--- a/utils/test/reporting/functest/reportingConf.py
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/python
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Reporting: Declaration of the variables
-#
-# ****************************************************
-installers = ["apex", "compass", "fuel", "joid"]
-# list of test cases declared in testcases.yaml but that must not be
-# taken into account for the scoring
-blacklist = ["ovno", "security_scan"]
-versions = ["master", "colorado"]
-PERIOD = 10
-MAX_SCENARIO_CRITERIA = 50
-# get the last 5 test results to determinate the success criteria
-NB_TESTS = 5
-# REPORTING_PATH = "/usr/share/nginx/html/reporting/functest"
-REPORTING_PATH = "."
-URL_BASE = 'testresults.opnfv.org/test/api/v1/results'
-TEST_CONF = "https://git.opnfv.org/cgit/functest/plain/ci/testcases.yaml"
-LOG_LEVEL = "ERROR"
-LOG_FILE = REPORTING_PATH + "/reporting.log"
diff --git a/utils/test/reporting/functest/reportingUtils.py b/utils/test/reporting/functest/reportingUtils.py
deleted file mode 100644
index 74d6f19c9..000000000
--- a/utils/test/reporting/functest/reportingUtils.py
+++ /dev/null
@@ -1,186 +0,0 @@
-#!/usr/bin/python
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-from urllib2 import Request, urlopen, URLError
-import logging
-import json
-import reportingConf as conf
-
-
-def getLogger(module):
- logFormatter = logging.Formatter("%(asctime)s [" +
- module +
- "] [%(levelname)-5.5s] %(message)s")
- logger = logging.getLogger()
-
- fileHandler = logging.FileHandler("{0}/{1}".format('.', conf.LOG_FILE))
- fileHandler.setFormatter(logFormatter)
- logger.addHandler(fileHandler)
-
- consoleHandler = logging.StreamHandler()
- consoleHandler.setFormatter(logFormatter)
- logger.addHandler(consoleHandler)
- logger.setLevel(conf.LOG_LEVEL)
- return logger
-
-
-def getApiResults(case, installer, scenario, version):
- results = json.dumps([])
- # to remove proxy (to be removed at the end for local test only)
- # proxy_handler = urllib2.ProxyHandler({})
- # opener = urllib2.build_opener(proxy_handler)
- # urllib2.install_opener(opener)
- # url = "http://127.0.0.1:8000/results?case=" + case + \
- # "&period=30&installer=" + installer
- url = ("http://" + conf.URL_BASE + "?case=" + case +
- "&period=" + str(conf.PERIOD) + "&installer=" + installer +
- "&scenario=" + scenario + "&version=" + version +
- "&last=" + str(conf.NB_TESTS))
- request = Request(url)
-
- try:
- response = urlopen(request)
- k = response.read()
- results = json.loads(k)
- except URLError, e:
- print 'No kittez. Got an error code:', e
-
- return results
-
-
-def getScenarios(case, installer, version):
-
- case = case.getName()
- url = ("http://" + conf.URL_BASE + "?case=" + case +
- "&period=" + str(conf.PERIOD) + "&installer=" + installer +
- "&version=" + version)
- request = Request(url)
-
- try:
- response = urlopen(request)
- k = response.read()
- results = json.loads(k)
- test_results = results['results']
- except URLError, e:
- print 'Got an error code:', e
-
- if test_results is not None:
- test_results.reverse()
-
- scenario_results = {}
-
- for r in test_results:
- # Retrieve all the scenarios per installer
- if not r['scenario'] in scenario_results.keys():
- scenario_results[r['scenario']] = []
- scenario_results[r['scenario']].append(r)
-
- return scenario_results
-
-
-def getScenarioStats(scenario_results):
- scenario_stats = {}
- for k, v in scenario_results.iteritems():
- scenario_stats[k] = len(v)
-
- return scenario_stats
-
-
-def getNbtestOk(results):
- nb_test_ok = 0
- for r in results:
- for k, v in r.iteritems():
- try:
- if "PASS" in v:
- nb_test_ok += 1
- except:
- print "Cannot retrieve test status"
- return nb_test_ok
-
-
-def getResult(testCase, installer, scenario, version):
-
- # retrieve raw results
- results = getApiResults(testCase, installer, scenario, version)
- # let's concentrate on test results only
- test_results = results['results']
-
- # if results found, analyze them
- if test_results is not None:
- test_results.reverse()
-
- scenario_results = []
-
- # print " ---------------- "
- # print test_results
- # print " ---------------- "
- # print "nb of results:" + str(len(test_results))
-
- for r in test_results:
- # print r["start_date"]
- # print r["criteria"]
- scenario_results.append({r["start_date"]: r["criteria"]})
- # sort results
- scenario_results.sort()
- # 4 levels for the results
- # 3: 4+ consecutive runs passing the success criteria
- # 2: <4 successful consecutive runs but passing the criteria
- # 1: close to pass the success criteria
- # 0: 0% success, not passing
- # -1: no run available
- test_result_indicator = 0
- nbTestOk = getNbtestOk(scenario_results)
-
- # print "Nb test OK (last 10 days):"+ str(nbTestOk)
- # check that we have at least 4 runs
- if len(scenario_results) < 1:
- # No results available
- test_result_indicator = -1
- elif nbTestOk < 1:
- test_result_indicator = 0
- elif nbTestOk < 2:
- test_result_indicator = 1
- else:
- # Test the last 4 run
- if (len(scenario_results) > 3):
- last4runResults = scenario_results[-4:]
- nbTestOkLast4 = getNbtestOk(last4runResults)
- # print "Nb test OK (last 4 run):"+ str(nbTestOkLast4)
- if nbTestOkLast4 > 3:
- test_result_indicator = 3
- else:
- test_result_indicator = 2
- else:
- test_result_indicator = 2
- return test_result_indicator
-
-
-def getJenkinsUrl(build_tag):
- # e.g. jenkins-functest-apex-apex-daily-colorado-daily-colorado-246
- # id = 246
- # note it is linked to jenkins format
- # if this format changes...function to be adapted....
- url_base = "https://build.opnfv.org/ci/view/functest/job/"
- jenkins_url = ""
- try:
- build_id = [int(s) for s in build_tag.split("-") if s.isdigit()]
- jenkins_path = filter(lambda c: not c.isdigit(), build_tag)
- url_id = jenkins_path[8:-1] + "/" + str(build_id[0])
- jenkins_url = url_base + url_id + "/console"
- except:
- print 'Impossible to get jenkins url:'
-
- return jenkins_url
-
-def getScenarioPercent(scenario_score,scenario_criteria):
- score = 0.0
- try:
- score = float(scenario_score) / float(scenario_criteria) * 100
- except:
- print 'Impossible to calculate the percentage score'
- return score
diff --git a/utils/test/reporting/functest/template/index-status-tmpl.html b/utils/test/reporting/functest/template/index-status-tmpl.html
index e3c9c5fc0..094bbf8a2 100644
--- a/utils/test/reporting/functest/template/index-status-tmpl.html
+++ b/utils/test/reporting/functest/template/index-status-tmpl.html
@@ -3,12 +3,12 @@
<meta charset="utf-8">
<!-- Bootstrap core CSS -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="../../../css/default.css" rel="stylesheet">
+ <link href="../../css/default.css" rel="stylesheet">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
- <script type="text/javascript" src="../../../js/gauge.js"></script>
- <script type="text/javascript" src="../../../js/trend.js"></script>
+ <script type="text/javascript" src="../../js/gauge.js"></script>
+ <script type="text/javascript" src="../../js/trend.js"></script>
<script>
function onDocumentReady() {
// Gauge management
@@ -26,7 +26,7 @@
}
// trend line management
- d3.csv("./scenario_history.txt", function(data) {
+ d3.csv("./scenario_history.csv", function(data) {
// ***************************************
// Create the trend line
{% for scenario,iteration in scenario_stats.iteritems() -%}
@@ -69,11 +69,11 @@ $(document).ready(function (){
<h3 class="text-muted">Functest status page ({{version}}, {{date}})</h3>
<nav>
<ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="index-status-apex.html">Apex</a></li>
- <li><a href="index-status-compass.html">Compass</a></li>
- <li><a href="index-status-fuel.html">Fuel</a></li>
- <li><a href="index-status-joid.html">Joid</a></li>
+ <li class="active"><a href="../../index.html">Home</a></li>
+ <li><a href="status-apex.html">Apex</a></li>
+ <li><a href="status-compass.html">Compass</a></li>
+ <li><a href="status-fuel.html">Fuel</a></li>
+ <li><a href="status-joid.html">Joid</a></li>
</ul>
</nav>
</div>
@@ -133,13 +133,13 @@ $(document).ready(function (){
<tr class="tr-weather-weather">
{% for test in items[scenario] -%}
{% if test.getCriteria() > 2 -%}
- <td><img src="../../img/weather-clear.png"></td>
+ <td><img src="../../../img/weather-clear.png"></td>
{%- elif test.getCriteria() > 1 -%}
- <td><img src="../../img/weather-few-clouds.png"></td>
+ <td><img src="../../../img/weather-few-clouds.png"></td>
{%- elif test.getCriteria() > 0 -%}
- <td><img src="../../img/weather-overcast.png"></td>
+ <td><img src="../../../img/weather-overcast.png"></td>
{%- elif test.getCriteria() > -1 -%}
- <td><img src="../../img/weather-storm.png"></td>
+ <td><img src="../../../img/weather-storm.png"></td>
{%- endif %}
{%- endfor %}
</tr>
diff --git a/utils/test/reporting/functest/template/index-tempest-tmpl.html b/utils/test/reporting/functest/template/index-tempest-tmpl.html
index 42d7ed339..db483070f 100644
--- a/utils/test/reporting/functest/template/index-tempest-tmpl.html
+++ b/utils/test/reporting/functest/template/index-tempest-tmpl.html
@@ -3,7 +3,7 @@
<meta charset="utf-8">
<!-- Bootstrap core CSS -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="default.css" rel="stylesheet">
+ <link href="../../css/default.css" rel="stylesheet">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script type="text/javascript">
@@ -21,11 +21,11 @@
<h3 class="text-muted">Tempest status page</h3>
<nav>
<ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="index-tempest-apex.html">Apex</a></li>
- <li><a href="index-tempest-compass.html">Compass</a></li>
- <li><a href="index-tempest-fuel.html">Fuel</a></li>
- <li><a href="index-tempest-joid.html">Joid</a></li>
+ <li class="active"><a href="../../index.html">Home</a></li>
+ <li><a href="tempest-apex.html">Apex</a></li>
+ <li><a href="tempest-compass.html">Compass</a></li>
+ <li><a href="tempest-fuel.html">Fuel</a></li>
+ <li><a href="tempest-joid.html">Joid</a></li>
</ul>
</nav>
</div>
diff --git a/utils/test/reporting/functest/template/index-vims-tmpl.html b/utils/test/reporting/functest/template/index-vims-tmpl.html
index 3836be91f..033c8ab33 100644
--- a/utils/test/reporting/functest/template/index-vims-tmpl.html
+++ b/utils/test/reporting/functest/template/index-vims-tmpl.html
@@ -3,7 +3,7 @@
<meta charset="utf-8">
<!-- Bootstrap core CSS -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
- <link href="default.css" rel="stylesheet">
+ <link href="../../css/default.css" rel="stylesheet">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script type="text/javascript">
@@ -21,11 +21,11 @@
<h3 class="text-muted">vIMS status page</h3>
<nav>
<ul class="nav nav-justified">
- <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
- <li><a href="index-vims-fuel.html">Fuel</a></li>
- <li><a href="index-vims-compass.html">Compass</a></li>
- <li><a href="index-vims-joid.html">JOID</a></li>
- <li><a href="index-vims-apex.html">APEX</a></li>
+ <li class="active"><a href="../../index.html">Home</a></li>
+ <li><a href="vims-fuel.html">Fuel</a></li>
+ <li><a href="vims-compass.html">Compass</a></li>
+ <li><a href="vims-joid.html">JOID</a></li>
+ <li><a href="vims-apex.html">APEX</a></li>
</ul>
</nav>
</div>
diff --git a/utils/test/reporting/functest/testCase.py b/utils/test/reporting/functest/testCase.py
index a906f0da8..64c7b9a7c 100644
--- a/utils/test/reporting/functest/testCase.py
+++ b/utils/test/reporting/functest/testCase.py
@@ -40,7 +40,7 @@ class TestCase(object):
'domino': 'domino',
'odl-sfc': 'SFC',
'onos_sfc': 'SFC',
- 'parser':'parser'
+ 'parser': 'parser'
}
try:
self.displayName = display_name_matrix[self.name]
@@ -133,7 +133,7 @@ class TestCase(object):
'domino': 'domino-multinode',
'odl-sfc': 'odl-sfc',
'onos_sfc': 'onos_sfc',
- 'parser':'parser-basics'
+ 'parser': 'parser-basics'
}
try:
return test_match_matrix[self.name]