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
9 from urllib2 import Request, urlopen, URLError
12 import reportingConf as conf
15 def getLogger(module):
16 logFormatter = logging.Formatter("%(asctime)s [" +
18 "] [%(levelname)-5.5s] %(message)s")
19 logger = logging.getLogger()
21 fileHandler = logging.FileHandler("{0}/{1}".format('.', conf.LOG_FILE))
22 fileHandler.setFormatter(logFormatter)
23 logger.addHandler(fileHandler)
25 consoleHandler = logging.StreamHandler()
26 consoleHandler.setFormatter(logFormatter)
27 logger.addHandler(consoleHandler)
28 logger.setLevel(conf.LOG_LEVEL)
32 def getScenarioStatus(installer, version):
33 url = (conf.URL_BASE + "?case=" + "scenario_status" +
34 "&installer=" + installer +
35 "&version=" + version +"&period=" + str(conf.PERIOD))
36 request = Request(url)
39 response = urlopen(request)
42 results = json.loads(k)
43 test_results = results['results']
45 print 'Got an error code:', e
49 if test_results is not None:
50 for r in test_results:
51 if r['stop_date'] != 'None' and r['criteria'] is not None:
52 if not r['scenario'] in scenario_results.keys():
53 scenario_results[r['scenario']] = []
54 scenario_results[r['scenario']].append(r)
56 for k,v in scenario_results.items():
57 # scenario_results[k] = v[:conf.LASTEST_TESTS]
60 if element['criteria'] == 'SUCCESS':
64 result_dict[k] = s_list
66 # return scenario_results
69 def subfind(given_list, pattern_list):
70 for i in range(len(given_list)):
71 if given_list[i] == pattern_list[0] and given_list[i:i + conf.LASTEST_TESTS] == pattern_list:
75 def get_percent(status):
78 return round(float(status) * 100 / 6, 1)
80 return status * 100 / 6
82 def get_status(four_list, ten_list):
91 if four_score == conf.LASTEST_TESTS:
93 elif subfind(ten_list, [1, 1, 1, 1]):
98 status = four_score + 1
100 return get_percent(status)
104 status = getScenarioStatus("compass", "master")
105 print "status:++++++++++++++++++++++++"
106 print json.dumps(status,indent=4)
109 if __name__ == '__main__': # pragma: no cover