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 = %s days *" % 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, version)
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 ten_criteria = len(s_p_result)
49 ten_score = sum(s_p_result)
51 LASTEST_TESTS = rp_utils.get_config(
52 'general.nb_iteration_tests_success_criteria')
53 four_result = s_p_result[:LASTEST_TESTS]
54 four_criteria = len(four_result)
55 four_score = sum(four_result)
57 s_four_score = str(four_score / four_criteria)
58 s_ten_score = str(ten_score / ten_criteria)
60 info = '{},{},{},{},{}\n'.format(reportingDate,
65 profile_fd.write(info)
66 result_criterias[s_p] = sr.ScenarioResult('OK',
71 logger.info("--------------------------")
72 return result_criterias
75 def render_html(prof_results, installer, version):
76 template_loader = jinja2.FileSystemLoader(".")
77 template_env = jinja2.Environment(loader=template_loader,
80 template_file = "./qtip/template/index-status-tmpl.html"
81 template = template_env.get_template(template_file)
83 render_outcome = template.render(prof_results=prof_results,
89 with open('./display/{}/qtip/status-{}.html'.format(version, installer),
91 fh.write(render_outcome)
94 def render_reporter():
95 for version in versions:
96 profile_file = prepare_profile_file(version)
97 profile_fd = open(profile_file, 'a')
98 for installer in installers:
99 results = rp_utils.getQtipResults(version, installer)
100 prof_results = profile_results(results, installer, profile_fd)
101 render_html(prof_results=prof_results,
105 logger.info("Manage export CSV")
106 rp_utils.generate_csv(profile_file)
107 logger.info("CSV generated...")
109 if __name__ == '__main__':