|  | @@ -65,41 +65,6 @@ _POLLING_STRATEGIES = {
 | 
	
		
			
				|  |  |      'mac': ['poll'],
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -BigQueryTestData = collections.namedtuple('BigQueryTestData', 'name flaky cpu')
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -def get_bqtest_data(limit=None):
 | 
	
		
			
				|  |  | -    import big_query_utils
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    bq = big_query_utils.create_big_query()
 | 
	
		
			
				|  |  | -    query = """
 | 
	
		
			
				|  |  | -SELECT
 | 
	
		
			
				|  |  | -  filtered_test_name,
 | 
	
		
			
				|  |  | -  SUM(result != 'PASSED' AND result != 'SKIPPED') > 0 as flaky,
 | 
	
		
			
				|  |  | -  MAX(cpu_measured) + 0.01 as cpu
 | 
	
		
			
				|  |  | -  FROM (
 | 
	
		
			
				|  |  | -  SELECT
 | 
	
		
			
				|  |  | -    REGEXP_REPLACE(test_name, r'/\d+', '') AS filtered_test_name,
 | 
	
		
			
				|  |  | -    result, cpu_measured
 | 
	
		
			
				|  |  | -  FROM
 | 
	
		
			
				|  |  | -    [grpc-testing:jenkins_test_results.aggregate_results]
 | 
	
		
			
				|  |  | -  WHERE
 | 
	
		
			
				|  |  | -    timestamp >= DATE_ADD(CURRENT_DATE(), -1, "WEEK")
 | 
	
		
			
				|  |  | -    AND platform = '""" + platform_string() + """'
 | 
	
		
			
				|  |  | -    AND NOT REGEXP_MATCH(job_name, '.*portability.*') )
 | 
	
		
			
				|  |  | -GROUP BY
 | 
	
		
			
				|  |  | -  filtered_test_name"""
 | 
	
		
			
				|  |  | -    if limit:
 | 
	
		
			
				|  |  | -        query += " limit {}".format(limit)
 | 
	
		
			
				|  |  | -    query_job = big_query_utils.sync_query_job(bq, 'grpc-testing', query)
 | 
	
		
			
				|  |  | -    page = bq.jobs().getQueryResults(
 | 
	
		
			
				|  |  | -        pageToken=None, **query_job['jobReference']).execute(num_retries=3)
 | 
	
		
			
				|  |  | -    test_data = [
 | 
	
		
			
				|  |  | -        BigQueryTestData(row['f'][0]['v'], row['f'][1]['v'] == 'true',
 | 
	
		
			
				|  |  | -                         float(row['f'][2]['v'])) for row in page['rows']
 | 
	
		
			
				|  |  | -    ]
 | 
	
		
			
				|  |  | -    return test_data
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  def platform_string():
 | 
	
		
			
				|  |  |      return jobset.platform_string()
 | 
	
	
		
			
				|  | @@ -1575,26 +1540,10 @@ argp.add_argument('--bq_result_table',
 | 
	
		
			
				|  |  |                    type=str,
 | 
	
		
			
				|  |  |                    nargs='?',
 | 
	
		
			
				|  |  |                    help='Upload test results to a specified BQ table.')
 | 
	
		
			
				|  |  | -argp.add_argument(
 | 
	
		
			
				|  |  | -    '--auto_set_flakes',
 | 
	
		
			
				|  |  | -    default=False,
 | 
	
		
			
				|  |  | -    const=True,
 | 
	
		
			
				|  |  | -    action='store_const',
 | 
	
		
			
				|  |  | -    help=
 | 
	
		
			
				|  |  | -    'Allow repeated runs for tests that have been failing recently (based on BQ historical data).'
 | 
	
		
			
				|  |  | -)
 | 
	
		
			
				|  |  |  args = argp.parse_args()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  flaky_tests = set()
 | 
	
		
			
				|  |  |  shortname_to_cpu = {}
 | 
	
		
			
				|  |  | -if args.auto_set_flakes:
 | 
	
		
			
				|  |  | -    try:
 | 
	
		
			
				|  |  | -        for test in get_bqtest_data():
 | 
	
		
			
				|  |  | -            if test.flaky: flaky_tests.add(test.name)
 | 
	
		
			
				|  |  | -            if test.cpu > 0: shortname_to_cpu[test.name] = test.cpu
 | 
	
		
			
				|  |  | -    except:
 | 
	
		
			
				|  |  | -        print("Unexpected error getting flaky tests: %s" %
 | 
	
		
			
				|  |  | -              traceback.format_exc())
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  if args.force_default_poller:
 | 
	
		
			
				|  |  |      _POLLING_STRATEGIES = {}
 |