3 # This program and the accompanying materials
4 # are made available under the terms of the Apache License, Version 2.0
5 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
13 import utils.reporting_utils as rp_utils
14 import utils.scenarioResult as sr
16 installers = rp_utils.get_config('general.installers')
17 versions = rp_utils.get_config('general.versions')
18 PERIOD = rp_utils.get_config('general.period')
21 logger = rp_utils.getLogger("Qtip-Status")
22 reportingDate = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
24 logger.info("*******************************************")
25 logger.info("* Generating reporting scenario status *")
26 logger.info("* Data retention = {} days *".format(PERIOD))
28 logger.info("*******************************************")
31 def prepare_profile_file(version):
32 profile_dir = './display/{}/qtip'.format(version)
33 if not os.path.exists(profile_dir):
34 os.makedirs(profile_dir)
36 profile_file = "{}/scenario_history.txt".format(profile_dir)
37 if not os.path.exists(profile_file):
38 with open(profile_file, 'w') as f:
39 info = 'date,scenario,installer,details,score\n'
45 def profile_results(results, installer, profile_fd):
47 for s_p, s_p_result in results.iteritems():
48 avg_last_ten = sum([int(s) for s in s_p_result]) / len(s_p_result)
50 LASTEST_TESTS = rp_utils.get_config(
51 'general.nb_iteration_tests_success_criteria')
52 last_four = s_p_result[-LASTEST_TESTS:]
53 avg_last_four = sum([int(s) for s in last_four]) / len(last_four)
55 info = '{},{},{},{},{}\n'.format(reportingDate,
60 profile_fd.write(info)
61 result_criterias[s_p] = sr.ScenarioResult('OK',
66 logger.info("--------------------------")
67 return result_criterias
70 def render_html(prof_results, installer, version):
71 template_loader = jinja2.FileSystemLoader(".")
72 template_env = jinja2.Environment(loader=template_loader,
75 template_file = "./reporting/qtip/template/index-status-tmpl.html"
76 template = template_env.get_template(template_file)
78 render_outcome = template.render(prof_results=prof_results,
84 with open('./display/{}/qtip/status-{}.html'.format(version, installer),
86 fh.write(render_outcome)
89 def render_reporter():
90 for version in versions:
91 profile_file = prepare_profile_file(version)
92 profile_fd = open(profile_file, 'a')
93 for installer in installers:
94 results = rp_utils.getQtipResults(version, installer)
95 prof_results = profile_results(results, installer, profile_fd)
96 render_html(prof_results=prof_results,
100 logger.info("Manage export CSV")
101 rp_utils.generate_csv(profile_file)
102 logger.info("CSV generated...")
105 if __name__ == '__main__':