def post(self, results, server, path, scheme, tbpl_output): """post results to the graphserver""" links = [] wait_time = 5 # number of seconds between each attempt for index, data_string in enumerate(results): times = 0 msg = "" while times < self.retries: logging.info( "Posting result %d of %d to %s://%s%s, attempt %d", index, len(results), scheme, server, path, times) try: links.append( self.process_Request( post_file.post_multipart(server, path, files=[("filename", "data_string", data_string)]))) break except utils.TalosError, e: msg = str(e) except Exception, e: msg = str(e) times += 1 time.sleep(wait_time) wait_time *= 2
def post(self, results, server, path, scheme, tbpl_output): """post results to the graphserver""" links = [] wait_time = 5 # number of seconds between each attempt for index, data_string in enumerate(results): times = 0 msg = "" while times < self.retries: LOG.info( "Posting result %d of %d to %s://%s%s, attempt %d" % ( index, len(results), scheme, server, path, times) ) try: links.append(self.process_Request( post_file.post_multipart(server, path, files=[("filename", "data_string", data_string)]))) break except utils.TalosError, e: msg = str(e) except Exception, e: msg = str(e) times += 1 time.sleep(wait_time) wait_time *= 2
def post_chunk(results_server, results_link, id, filename): tmpf = open(filename, "r") file_data = tmpf.read() try: ret = post_file.post_multipart(results_server, results_link, [("key", "value")], [("filename", filename, file_data)]) except: print "FAIL: error in post data" sys.exit(0) links = process_Request(ret) utils.debug(id + ": sent results") return links
def post_test_result(results_server, results_link, filename): tmpf = open(filename, "r") file_data = tmpf.read() try: ret = post_file.post_multipart(results_server, results_link, [("key", "value")], [("filename", filename, file_data)]) except: print "FAIL: error in post data" sys.exit(0) return ret
def send_to_graph(results_server, results_link, machine, date, browser_config, results, amo): links = '' result_strings = [] result_testnames = [] #construct all the strings of data, one string per test and one string per counter for testname in results: vals = [] fullname = testname browser_dump, counter_dump, print_format = results[testname] utils.debug("Working with test: " + testname) utils.debug("Sending results: " + " ".join(browser_dump)) utils.stamped_msg("Generating results file: " + testname, "Started") if print_format == 'tsformat': #non-tpformat results for bd in browser_dump: vals.extend([[x, 'NULL'] for x in bd.split('|')]) elif print_format == 'tpformat': #tpformat results fullname += browser_config['test_name_extension'] for bd in browser_dump: bd.rstrip('\n') page_results = bd.splitlines() for line in page_results: val, page = process_tpformat(line) if val > -1 : vals.append([val, page]) else: raise talosError("Unknown print format in send_to_graph") result_strings.append(construct_results(machine, fullname, browser_config, date, vals, amo)) result_testnames.append(fullname) utils.stamped_msg("Generating results file: " + testname, "Stopped") #counters collected for this test for cd in counter_dump: for count_type in cd: counterName = testname + '_' + shortName(count_type) if cd[count_type] == []: #failed to collect any data for this counter utils.stamped_msg("No results collected for: " + counterName, "Error") continue vals = [[x, 'NULL'] for x in cd[count_type]] if print_format == "tpformat": counterName += browser_config['test_name_extension'] utils.stamped_msg("Generating results file: " + counterName, "Started") result_strings.append(construct_results(machine, counterName, browser_config, date, vals, amo)) result_testnames.append(counterName) utils.stamped_msg("Generating results file: " + counterName, "Stopped") #send all the strings along to the graph server for data_string, testname in zip(result_strings, result_testnames): RETRIES = 5 wait_time = 5 times = 0 msg = "" while (times < RETRIES): try: utils.stamped_msg("Transmitting test: " + testname, "Started") links += process_Request(post_file.post_multipart(results_server, results_link, [("key", "value")], [("filename", "data_string", data_string)])) break except talosError, e: msg = e.msg except Exception, e: msg = str(e) times += 1 time.sleep(wait_time) wait_time += wait_time
def send_to_graph(results_server, results_link, machine, date, browser_config, results): links = '' result_strings = [] #construct all the strings of data, one string per test and one string per counter for testname in results: vals = [] fullname = testname browser_dump, counter_dump, print_format = results[testname] utils.debug("Working with test: " + testname) utils.debug("Sending results: " + " ".join(browser_dump)) utils.stamped_msg("Generating results file: " + testname, "Started") if print_format == 'tsformat': #non-tpformat results for bd in browser_dump: vals.extend([[x, 'NULL'] for x in bd.split('|')]) elif print_format == 'tpformat': #tpformat results fullname += browser_config['test_name_extension'] for bd in browser_dump: bd.rstrip('\n') page_results = bd.splitlines() for line in page_results: val, page = process_tpformat(line) if val > -1: vals.append([val, page]) else: raise talosError("Unknown print format in send_to_graph") result_strings.append( construct_results(machine, fullname, browser_config['branch_name'], browser_config['sourcestamp'], browser_config['buildid'], date, vals)) utils.stamped_msg("Generating results file: " + testname, "Stopped") #counters collected for this test for cd in counter_dump: for count_type in cd: vals = [[x, 'NULL'] for x in cd[count_type]] counterName = testname + '_' + shortName(count_type) utils.stamped_msg("Generating results file: " + counterName, "Started") if print_format == "tpformat": counterName += browser_config['test_name_extension'] utils.stamped_msg("Generating results file: " + counterName, "Started") result_strings.append( construct_results(machine, counterName, browser_config['branch_name'], browser_config['sourcestamp'], browser_config['buildid'], date, vals)) utils.stamped_msg("Generating results file: " + counterName, "Stopped") #send all the strings along to the graph server for data_string in result_strings: RETRIES = 5 wait_time = 5 times = 0 msg = "" while (times < RETRIES): try: utils.stamped_msg("Transmitting test: " + testname, "Started") links += process_Request( post_file.post_multipart( results_server, results_link, [("key", "value")], [("filename", "data_string", data_string)])) break except talosError, e: times += 1 msg = e.msg time.sleep(wait_time) wait_time += wait_time if times == RETRIES: raise talosError("Failed to send data %d times... quitting\n%s" % (RETRIES, msg)) utils.stamped_msg("Transmitting test: " + testname, "Stopped")