Commit 17bc7bcd by Jonah Ryan-Davis Committed by Commit Bot

Fix issue with missing step info in generate_stats.py

When the script has trouble parsing info for a step, it's supposed to remove that step from the list of steps to not cause further problems with the script (and log an error). Instead, it was being removed while iterating the same list which caused malformed tables. Bug: angleproject:4610 Change-Id: Iff8bfd77eae227907e78660183c79221d4d305a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2180342Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
parent 605af42e
...@@ -360,13 +360,16 @@ def get_step_info(build_name, step_name): ...@@ -360,13 +360,16 @@ def get_step_info(build_name, step_name):
def get_bot_info(bot_name): def get_bot_info(bot_name):
info = get_latest_success_build_info(bot_name) info = get_latest_success_build_info(bot_name)
info['step_names'] = get_step_names(info['build_name']) info['step_names'] = get_step_names(info['build_name'])
broken_step_names = []
for step_name in info['step_names']: for step_name in info['step_names']:
LOGGER.info("Parsing step '" + step_name + "'...") LOGGER.info("Parsing step '" + step_name + "'...")
step_info = get_step_info(info['build_name'], step_name) step_info = get_step_info(info['build_name'], step_name)
if validate_step_info(step_info, info['build_name'], step_name): if validate_step_info(step_info, info['build_name'], step_name):
info[step_name] = step_info info[step_name] = step_info
else: else:
info['step_names'].remove(step_name) broken_step_names += step_name
for step_name in broken_step_names:
info['step_names'].remove(step_name)
return info return info
...@@ -563,6 +566,8 @@ def update_headers(service, spreadsheet_id, headers, info): ...@@ -563,6 +566,8 @@ def update_headers(service, spreadsheet_id, headers, info):
sheet_names = [] sheet_names = []
for bot_name in info: for bot_name in info:
for step_name in info[bot_name]['step_names']: for step_name in info[bot_name]['step_names']:
if not step_name in info[bot_name]:
LOGGER.error("Missing info for step name: '" + step_name + "'")
sheet_name = format_sheet_name(bot_name, step_name) sheet_name = format_sheet_name(bot_name, step_name)
headers_stale = False headers_stale = False
# Headers should always contain the following columns # Headers should always contain the following columns
...@@ -588,7 +593,6 @@ def update_headers(service, spreadsheet_id, headers, info): ...@@ -588,7 +593,6 @@ def update_headers(service, spreadsheet_id, headers, info):
LOGGER.info('Updating sheet headers...') LOGGER.info('Updating sheet headers...')
batch_update_values(service, spreadsheet_id, data) batch_update_values(service, spreadsheet_id, data)
# Calls values().append() to append a list of values to a given sheet. # Calls values().append() to append a list of values to a given sheet.
def append_values(service, spreadsheet_id, sheet_name, values): def append_values(service, spreadsheet_id, sheet_name, values):
header_range = sheet_name + '!A1:Z' header_range = sheet_name + '!A1:Z'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment