예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
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
예제 #4
0
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
예제 #5
0
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
예제 #6
0
파일: run_tests.py 프로젝트: wlach/talos
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
예제 #7
0
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")