diff options
author | Morgan Richomme <morgan.richomme@orange.com> | 2016-11-16 18:16:43 +0100 |
---|---|---|
committer | Morgan Richomme <morgan.richomme@orange.com> | 2016-11-17 09:27:08 +0100 |
commit | c850beb64083c730301188ade4cbba0f2a329a92 (patch) | |
tree | 19b241b8a85c463744cff8e4e40c8b4e3764475b /utils/test/reporting/functest | |
parent | 483081b7fb0cf5d7dec5ee1d6ff0bddc387a59dc (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-x | utils/test/reporting/functest/reporting-status.py | 118 | ||||
-rwxr-xr-x | utils/test/reporting/functest/reporting-tempest.py | 37 | ||||
-rwxr-xr-x | utils/test/reporting/functest/reporting-vims.py | 35 | ||||
-rw-r--r-- | utils/test/reporting/functest/reportingConf.py | 26 | ||||
-rw-r--r-- | utils/test/reporting/functest/reportingUtils.py | 186 | ||||
-rw-r--r-- | utils/test/reporting/functest/template/index-status-tmpl.html | 26 | ||||
-rw-r--r-- | utils/test/reporting/functest/template/index-tempest-tmpl.html | 12 | ||||
-rw-r--r-- | utils/test/reporting/functest/template/index-vims-tmpl.html | 12 | ||||
-rw-r--r-- | utils/test/reporting/functest/testCase.py | 4 |
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] |