nprapps / elections18-general

2018 midterm election back-end: Associated Press data ETL, database, admin panel, and JSON output; iteration upon 2016 GE work
MIT License
3 stars 1 forks source link

Handle `500` server errors while polling for GCU updates #21

Closed mileswwatkins closed 6 years ago

mileswwatkins commented 6 years ago

Don't let these errors take down the main results system, but do log them!

Traceback:

daemon_1        | INFO:fabfile.daemons:2018-09-13 18:23:29,866: updating get-caught-up text (runs in parallel)
daemon_1        | Traceback (most recent call last):
daemon_1        |   File "/usr/local/lib/python3.7/site-packages/fabric/main.py", line 763, in main
daemon_1        |     *args, **kwargs
daemon_1        |   File "/usr/local/lib/python3.7/site-packages/fabric/tasks.py", line 427, in execute
daemon_1        |     results['<local-only>'] = task.run(*args, **new_kwargs)
daemon_1        |   File "/usr/local/lib/python3.7/site-packages/fabric/tasks.py", line 174, in run
daemon_1        |     return self.wrapped(*args, **kwargs)
daemon_1        |   File "/opt/elections18/fabfile/daemons.py", line 40, in main
daemon_1        |     execute('text.update_in_parallel')
daemon_1        |   File "/usr/local/lib/python3.7/site-packages/fabric/tasks.py", line 427, in execute
daemon_1        |     results['<local-only>'] = task.run(*args, **new_kwargs)
daemon_1        |   File "/usr/local/lib/python3.7/site-packages/fabric/tasks.py", line 174, in run
daemon_1        |     return self.wrapped(*args, **kwargs)
daemon_1        |   File "/usr/local/lib/python3.7/site-packages/fabric/decorators.py", line 184, in inner
daemon_1        |     return func(*args, **kwargs)
daemon_1        |   File "/opt/elections18/fabfile/text.py", line 27, in update_in_parallel
daemon_1        |     update_calendar()
daemon_1        |   File "/opt/elections18/fabfile/text.py", line 46, in update_calendar
daemon_1        |     app_config.CALENDAR_PATH
daemon_1        |   File "/opt/elections18/oauth.py", line 119, in get_document
daemon_1        |     raise KeyError("Error! Google returned a %s error" % response.status)
daemon_1        | KeyError: 'Error! Google returned a 500 error'