Merge pull request #571 from coreos-inc/redisunblock
Make build system resistant to Redis being broken
This commit is contained in:
commit
47c707a88c
1 changed files with 14 additions and 2 deletions
|
@ -1,6 +1,11 @@
|
|||
from data.database import BUILD_PHASE
|
||||
from data import model
|
||||
from redis import RedisError
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class StatusHandler(object):
|
||||
""" Context wrapper for writing status to build logs. """
|
||||
|
@ -24,7 +29,11 @@ class StatusHandler(object):
|
|||
def _append_log_message(self, log_message, log_type=None, log_data=None):
|
||||
log_data = log_data or {}
|
||||
log_data['datetime'] = str(datetime.datetime.now())
|
||||
self._build_logs.append_log_message(self._uuid, log_message, log_type, log_data)
|
||||
|
||||
try:
|
||||
self._build_logs.append_log_message(self._uuid, log_message, log_type, log_data)
|
||||
except RedisError:
|
||||
logger.exception('Could not save build log for build %s: %s', self._uuid, log_message)
|
||||
|
||||
def append_log(self, log_message, extra_data=None):
|
||||
if log_message is None:
|
||||
|
@ -64,4 +73,7 @@ class StatusHandler(object):
|
|||
return self._status
|
||||
|
||||
def __exit__(self, exc_type, value, traceback):
|
||||
self._build_logs.set_status(self._uuid, self._status)
|
||||
try:
|
||||
self._build_logs.set_status(self._uuid, self._status)
|
||||
except RedisError:
|
||||
logger.exception('Could not set status of build %s to %s', self._uuid, self._status)
|
||||
|
|
Reference in a new issue