diff --git a/data/buildlogs.py b/data/buildlogs.py index bb96ac7dc..817fbc2b4 100644 --- a/data/buildlogs.py +++ b/data/buildlogs.py @@ -40,9 +40,12 @@ class BuildLogs(object): Returns a tuple of the current length of the list and an iterable of the requested log entries. """ - llen = self._redis.llen(self._logs_key(build_id)) - log_entries = self._redis.lrange(self._logs_key(build_id), start_index, -1) - return (llen, (json.loads(entry) for entry in log_entries)) + try: + llen = self._redis.llen(self._logs_key(build_id)) + log_entries = self._redis.lrange(self._logs_key(build_id), start_index, -1) + return (llen, (json.loads(entry) for entry in log_entries)) + except redis.ConnectionError: + return (0, []) @staticmethod def _status_key(build_id): @@ -59,5 +62,9 @@ class BuildLogs(object): """ Loads the status information for the specified build id. """ - fetched = self._redis.get(self._status_key(build_id)) + try: + fetched = self._redis.get(self._status_key(build_id)) + except redis.ConnectionError: + return None + return json.loads(fetched) if fetched else None diff --git a/endpoints/api/build.py b/endpoints/api/build.py index bbfdfc289..f14d097bb 100644 --- a/endpoints/api/build.py +++ b/endpoints/api/build.py @@ -52,10 +52,10 @@ def build_status_view(build_obj, can_write=False): logger.debug('Can write: %s job_config: %s', can_write, build_obj.job_config) resp = { 'id': build_obj.uuid, - 'phase': build_obj.phase, + 'phase': build_obj.phase if status else 'cannot_load', 'started': format_date(build_obj.started), 'display_name': build_obj.display_name, - 'status': status, + 'status': status or {}, 'job_config': get_job_config(build_obj) if can_write else None, 'is_writer': can_write, 'trigger': trigger_view(build_obj.trigger), diff --git a/static/directives/header-bar.html b/static/directives/header-bar.html index 6d31cf951..1a6ade0b7 100644 --- a/static/directives/header-bar.html +++ b/static/directives/header-bar.html @@ -1,10 +1,7 @@
+ +