Switch health to use a data interface

This commit is contained in:
Joseph Schorr 2017-07-11 13:48:25 +03:00
parent ca5a47edad
commit 4853634c2f
3 changed files with 22 additions and 3 deletions

View file

@ -0,0 +1,12 @@
from abc import ABCMeta, abstractmethod
from six import add_metaclass
@add_metaclass(ABCMeta)
class HealthCheckDataInterface(object):
"""
Interface that represents all data store interactions required by health checks.
"""
@abstractmethod
def check_health(self, app_config):
""" Returns True if the connection to the database is healthy and False otherwise. """
pass

8
health/models_pre_oci.py Normal file
View file

@ -0,0 +1,8 @@
from data.model import health
from health.models_interface import HealthCheckDataInterface
class PreOCIModel(HealthCheckDataInterface):
def check_health(self, app_config):
return health.check_health(app_config)
pre_oci_model = PreOCIModel()

View file

@ -1,6 +1,6 @@
import logging import logging
from data.model import health
from app import build_logs, storage from app import build_logs, storage
from health.models_pre_oci import pre_oci_model as model
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -27,10 +27,9 @@ def _check_registry_gunicorn(app):
logger.exception('Exception when checking registry health: %s', registry_url) logger.exception('Exception when checking registry health: %s', registry_url)
return False return False
def _check_database(app): def _check_database(app):
""" Returns the status of the database, as accessed from this instance. """ """ Returns the status of the database, as accessed from this instance. """
return health.check_health(app.config) return model.check_health(app.config)
def _check_redis(app): def _check_redis(app):
""" Returns the status of Redis, as accessed from this instance. """ """ Returns the status of Redis, as accessed from this instance. """