findmissing: Handle Gerrit reviewer entries without e-mail
The patches robot reports the following error.
raceback (most recent call last):
File "/home/chromeos_patches/findmissing/gerrit_interface.py", line 99, in get_reviewers
return [reviewer_resp['email'] for reviewer_resp in resp]
File "/home/chromeos_patches/findmissing/gerrit_interface.py", line 99, in <listcomp>
return [reviewer_resp['email'] for reviewer_resp in resp]
KeyError: 'email'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/chromeos_patches/findmissing/util.py", line 82, in wrapped_preliminary_check
f(*args)
File "/home/chromeos_patches/findmissing/main.py", line 48, in synchronize_and_create_patches
create_new_patches()
File "/home/chromeos_patches/findmissing/main.py", line 39, in create_new_patches
missing.new_missing_patches()
File "/home/chromeos_patches/findmissing/missing.py", line 539, in new_missing_patches
NEW_CL_DAILY_LIMIT_PER_BRANCH)
File "/home/chromeos_patches/findmissing/missing.py", line 524, in missing_patches_sync
sync_branch_method(db, b, kernel_metadata, limit)
File "/home/chromeos_patches/findmissing/missing.py", line 504, in create_new_fixes_in_branch
branch, kernel_sha, fixedby_upstream_sha)
File "/home/chromeos_patches/findmissing/missing.py", line 335, in insert_fix_gerrit
change_id)
File "/home/chromeos_patches/findmissing/gerrit_interface.py", line 244, in create_change
cl_reviewers = get_reviewers(fixee_changeid, branch)
File "/home/chromeos_patches/findmissing/gerrit_interface.py", line 102, in get_reviewers
raise type(e)('Gerrit API endpoint to list reviewers should contain key email') from e
KeyError: 'Gerrit API endpoint to list reviewers should contain key email'
This results in duplicate CLs because the robot bails out before updating
its database.
Problem is that Gerrit may report reviewers entries without 'email' key.
This results in the above error. Check if the 'email' key exists before
accessing it.
BUG=b:215202894
TEST=Run robot on change id I4288d4301a14b5158492d813c0c58df3a8a2fe4a
Change-Id: Idc79524344a41ebf8d51382543386d838339aec8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/dev-util/+/3400084
Auto-Submit: Guenter Roeck <groeck@chromium.org>
Tested-by: Guenter Roeck <groeck@chromium.org>
Reviewed-by: Curtis Malainey <cujomalainey@chromium.org>
Commit-Queue: Curtis Malainey <cujomalainey@chromium.org>
1 file changed