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,
38 if not os.path.exists(profile_file):
39 with open(profile_file, 'w') as f:
40 info = 'date,scenario,installer,details,score\n'
46 def profile_results(results, installer, profile_fd):
48 for s_p, s_p_result in results.iteritems():
49 ten_criteria = len(s_p_result)
50 ten_score = sum(s_p_result)
52 LASTEST_TESTS = rp_utils.get_config(
53 'general.nb_iteration_tests_success_criteria')
54 four_result = s_p_result[:LASTEST_TESTS]
55 four_criteria = len(four_result)
56 four_score = sum(four_result)
58 s_four_score = str(four_score / four_criteria)
59 s_ten_score = str(ten_score / ten_criteria)
61 info = '{},{},{},{},{}\n'.format(reportingDate,
66 profile_fd.write(info)
67 result_criterias[s_p] = sr.ScenarioResult('OK',
72 logger.info("--------------------------")
73 return result_criterias
76 def render_html(prof_results, installer, version):
77 template_loader = jinja2.FileSystemLoader(".")
78 template_env = jinja2.Environment(loader=template_loader,
81 template_file = "./reporting/qtip/template/index-status-tmpl.html"
82 template = template_env.get_template(template_file)
84 render_outcome = template.render(prof_results=prof_results,
90 with open('./display/{}/qtip/status-{}.html'.format(version, installer),
92 fh.write(render_outcome)
95 def render_reporter():
96 for version in versions:
97 profile_file = prepare_profile_file(version)
98 profile_fd = open(profile_file, 'a')
99 for installer in installers:
100 results = rp_utils.getQtipResults(version, installer)
101 prof_results = profile_results(results, installer, profile_fd)
102 render_html(prof_results=prof_results,
106 logger.info("Manage export CSV")
107 rp_utils.generate_csv(profile_file)
108 logger.info("CSV generated...")
111 if __name__ == '__main__':