From a98dc96977e97b3a0a2ac85ec808559849391672 Mon Sep 17 00:00:00 2001 From: chenjiankun Date: Mon, 19 Sep 2016 00:33:27 +0000 Subject: Change display way of reporting status, add last ten days score JIRA: YARDSTICK-350 Change-Id: Iea1d8a30cf3464c8b9a0b8b6ac2e0ce41adea00d Signed-off-by: chenjiankun --- reporting/yardstick/img/gauge_0.png | Bin 0 -> 3644 bytes reporting/yardstick/img/gauge_100.png | Bin 0 -> 3191 bytes reporting/yardstick/img/gauge_16.7.png | Bin 0 -> 3170 bytes reporting/yardstick/img/gauge_25.png | Bin 0 -> 3108 bytes reporting/yardstick/img/gauge_33.3.png | Bin 0 -> 3081 bytes reporting/yardstick/img/gauge_41.7.png | Bin 0 -> 3169 bytes reporting/yardstick/img/gauge_50.png | Bin 0 -> 3123 bytes reporting/yardstick/img/gauge_58.3.png | Bin 0 -> 3161 bytes reporting/yardstick/img/gauge_66.7.png | Bin 0 -> 3069 bytes reporting/yardstick/img/gauge_75.png | Bin 0 -> 3030 bytes reporting/yardstick/img/gauge_8.3.png | Bin 0 -> 2993 bytes reporting/yardstick/img/gauge_83.3.png | Bin 0 -> 3122 bytes reporting/yardstick/img/gauge_91.7.png | Bin 0 -> 3008 bytes reporting/yardstick/reporting-status.py | 32 +++++++------- reporting/yardstick/reportingConf.py | 4 +- reporting/yardstick/reportingUtils.py | 48 +++++++++++++++++++-- reporting/yardstick/scenarioResult.py | 12 ++++-- .../yardstick/template/index-status-tmpl.html | 14 +++--- 18 files changed, 78 insertions(+), 32 deletions(-) create mode 100644 reporting/yardstick/img/gauge_0.png create mode 100644 reporting/yardstick/img/gauge_100.png create mode 100644 reporting/yardstick/img/gauge_16.7.png create mode 100644 reporting/yardstick/img/gauge_25.png create mode 100644 reporting/yardstick/img/gauge_33.3.png create mode 100644 reporting/yardstick/img/gauge_41.7.png create mode 100644 reporting/yardstick/img/gauge_50.png create mode 100644 reporting/yardstick/img/gauge_58.3.png create mode 100644 reporting/yardstick/img/gauge_66.7.png create mode 100644 reporting/yardstick/img/gauge_75.png create mode 100644 reporting/yardstick/img/gauge_8.3.png create mode 100644 reporting/yardstick/img/gauge_83.3.png create mode 100644 reporting/yardstick/img/gauge_91.7.png (limited to 'reporting/yardstick') diff --git a/reporting/yardstick/img/gauge_0.png b/reporting/yardstick/img/gauge_0.png new file mode 100644 index 0000000..ecefc0e Binary files /dev/null and b/reporting/yardstick/img/gauge_0.png differ diff --git a/reporting/yardstick/img/gauge_100.png b/reporting/yardstick/img/gauge_100.png new file mode 100644 index 0000000..e199e15 Binary files /dev/null and b/reporting/yardstick/img/gauge_100.png differ diff --git a/reporting/yardstick/img/gauge_16.7.png b/reporting/yardstick/img/gauge_16.7.png new file mode 100644 index 0000000..3e3993c Binary files /dev/null and b/reporting/yardstick/img/gauge_16.7.png differ diff --git a/reporting/yardstick/img/gauge_25.png b/reporting/yardstick/img/gauge_25.png new file mode 100644 index 0000000..4923659 Binary files /dev/null and b/reporting/yardstick/img/gauge_25.png differ diff --git a/reporting/yardstick/img/gauge_33.3.png b/reporting/yardstick/img/gauge_33.3.png new file mode 100644 index 0000000..364574b Binary files /dev/null and b/reporting/yardstick/img/gauge_33.3.png differ diff --git a/reporting/yardstick/img/gauge_41.7.png b/reporting/yardstick/img/gauge_41.7.png new file mode 100644 index 0000000..8c3e910 Binary files /dev/null and b/reporting/yardstick/img/gauge_41.7.png differ diff --git a/reporting/yardstick/img/gauge_50.png b/reporting/yardstick/img/gauge_50.png new file mode 100644 index 0000000..2874b9f Binary files /dev/null and b/reporting/yardstick/img/gauge_50.png differ diff --git a/reporting/yardstick/img/gauge_58.3.png b/reporting/yardstick/img/gauge_58.3.png new file mode 100644 index 0000000..beedc8a Binary files /dev/null and b/reporting/yardstick/img/gauge_58.3.png differ diff --git a/reporting/yardstick/img/gauge_66.7.png b/reporting/yardstick/img/gauge_66.7.png new file mode 100644 index 0000000..93f44d1 Binary files /dev/null and b/reporting/yardstick/img/gauge_66.7.png differ diff --git a/reporting/yardstick/img/gauge_75.png b/reporting/yardstick/img/gauge_75.png new file mode 100644 index 0000000..9fc261f Binary files /dev/null and b/reporting/yardstick/img/gauge_75.png differ diff --git a/reporting/yardstick/img/gauge_8.3.png b/reporting/yardstick/img/gauge_8.3.png new file mode 100644 index 0000000..59f8657 Binary files /dev/null and b/reporting/yardstick/img/gauge_8.3.png differ diff --git a/reporting/yardstick/img/gauge_83.3.png b/reporting/yardstick/img/gauge_83.3.png new file mode 100644 index 0000000..27ae4ec Binary files /dev/null and b/reporting/yardstick/img/gauge_83.3.png differ diff --git a/reporting/yardstick/img/gauge_91.7.png b/reporting/yardstick/img/gauge_91.7.png new file mode 100644 index 0000000..2808657 Binary files /dev/null and b/reporting/yardstick/img/gauge_91.7.png differ diff --git a/reporting/yardstick/reporting-status.py b/reporting/yardstick/reporting-status.py index 57a9594..345acef 100644 --- a/reporting/yardstick/reporting-status.py +++ b/reporting/yardstick/reporting-status.py @@ -26,6 +26,7 @@ logger.info("* Data retention = %s days *" % conf.PERIOD) logger.info("* *") logger.info("*******************************************") + # For all the versions for version in conf.versions: # For all the installers @@ -38,8 +39,6 @@ for version in conf.versions: if not scenario_results.has_key(k): scenario_results[k] = [] scenario_results[k] += stable_result[k] - for k,v in scenario_results.items(): - scenario_results[k] = v[0:conf.LASTEST_TESTS] scenario_result_criteria = {} # From each scenarios get results list @@ -47,23 +46,26 @@ for version in conf.versions: logger.info("---------------------------------") logger.info("installer %s, version %s, scenario %s:" % (installer, version, s)) - s_status = 'KO' - scenario_criteria = len(s_result) - scenario_score = 0 - + ten_criteria = len(s_result) + ten_score = 0 for v in s_result: - if v['criteria'] == 'SUCCESS': - scenario_score += 1 + ten_score += v - if scenario_score == scenario_criteria and scenario_criteria == 4: - s_status = 'OK' - logger.info(">>>>> scenario OK, save the information") - else: - logger.info(">>>> scenario not OK, score = %s/%s" % (scenario_score, scenario_criteria)) + four_result = s_result[:conf.LASTEST_TESTS] + four_criteria = len(four_result) + four_score = 0 + for v in four_result: + four_score += v - s_score = str(scenario_score) + '/' + str(scenario_criteria) - scenario_result_criteria[s] = sr.ScenarioResult(s_status, s_score) + s_status = str(utils.get_status(four_result, s_result)) + s_four_score = str(four_score) + '/' + str(four_criteria) + s_ten_score = str(ten_score) + '/' + str(ten_criteria) + scenario_result_criteria[s] = sr.ScenarioResult(s_status, s_four_score, s_ten_score) + if '100' == s_status: + logger.info(">>>>> scenario OK, save the information") + else: + logger.info(">>>> scenario not OK, last 4 iterations = %s, last 10 days = %s" % (s_four_score, s_ten_score)) logger.info("--------------------------") templateLoader = jinja2.FileSystemLoader(conf.REPORTING_PATH) diff --git a/reporting/yardstick/reportingConf.py b/reporting/yardstick/reportingConf.py index 447b428..52d9997 100644 --- a/reporting/yardstick/reportingConf.py +++ b/reporting/yardstick/reportingConf.py @@ -13,8 +13,8 @@ installers = ["apex", "compass", "fuel", "joid"] versions = ["master", "colorado"] -# get data in the past 7 days -PERIOD = 7 +# get data in the past 10 days +PERIOD = 10 # get the lastest 4 test results to determinate the success criteria LASTEST_TESTS = 4 diff --git a/reporting/yardstick/reportingUtils.py b/reporting/yardstick/reportingUtils.py index 06bcd49..71eb919 100644 --- a/reporting/yardstick/reportingUtils.py +++ b/reporting/yardstick/reportingUtils.py @@ -45,17 +45,59 @@ def getScenarioStatus(installer, version): print 'Got an error code:', e scenario_results = {} + result_dict = {} if test_results is not None: for r in test_results: - if r['stop_date'] != 'None': + if r['stop_date'] != 'None' and r['criteria'] is not None: if not r['scenario'] in scenario_results.keys(): scenario_results[r['scenario']] = [] scenario_results[r['scenario']].append(r) for k,v in scenario_results.items(): - scenario_results[k] = v[:conf.LASTEST_TESTS] + # scenario_results[k] = v[:conf.LASTEST_TESTS] + s_list = [] + for element in v: + if element['criteria'] == 'SUCCESS': + s_list.append(1) + else: + s_list.append(0) + result_dict[k] = s_list - return scenario_results + # return scenario_results + return result_dict + +def subfind(given_list, pattern_list): + for i in range(len(given_list)): + if given_list[i] == pattern_list[0] and given_list[i:i + conf.LASTEST_TESTS] == pattern_list: + return True + return False + +def get_percent(status): + + if status * 100 % 6: + return round(float(status) * 100 / 6, 1) + else: + return status * 100 / 6 + +def get_status(four_list, ten_list): + four_score = 0 + ten_score = 0 + + for v in four_list: + four_score += v + for v in ten_list: + ten_score += v + + if four_score == conf.LASTEST_TESTS: + status = 6 + elif subfind(ten_list, [1, 1, 1, 1]): + status = 5 + elif ten_score == 0: + status = 0 + else: + status = four_score + 1 + + return get_percent(status) def _test(): diff --git a/reporting/yardstick/scenarioResult.py b/reporting/yardstick/scenarioResult.py index 743346a..61ffb2c 100644 --- a/reporting/yardstick/scenarioResult.py +++ b/reporting/yardstick/scenarioResult.py @@ -9,12 +9,16 @@ class ScenarioResult(object): - def __init__(self, status, score=0): + def __init__(self, status, four_days_score='', ten_days_score=''): self.status = status - self.score = score + self.four_days_score = four_days_score + self.ten_days_score = ten_days_score def getStatus(self): return self.status - def getScore(self): - return self.score + def getTenDaysScore(self): + return self.ten_days_score + + def getFourDaysScore(self): + return self.four_days_score diff --git a/reporting/yardstick/template/index-status-tmpl.html b/reporting/yardstick/template/index-status-tmpl.html index ff1a619..602ce8a 100644 --- a/reporting/yardstick/template/index-status-tmpl.html +++ b/reporting/yardstick/template/index-status-tmpl.html @@ -40,21 +40,19 @@

List of last scenarios ({{version}}) run over the last {{period}} days

- + - + + {% for scenario,result in scenario_results.iteritems() -%} - + + {%- endfor %}
ScenarioScenario StatusScoreLast 4 IterationsLast 10 Days
{{scenario}} - {%if scenario_results[scenario].getStatus() is sameas "OK" -%} - - {%- else -%} - - {%- endif %} + {{scenario_results[scenario].getScore()}}{{scenario_results[scenario].getFourDaysScore()}}{{scenario_results[scenario].getTenDaysScore()}}
-- cgit 1.2.3-korg