26 lines
745 B
Python
26 lines
745 B
Python
|
import logging
|
||
|
|
||
|
from data.database import TeamRole
|
||
|
from util.config.validator import validate_database_url
|
||
|
|
||
|
|
||
|
logger = logging.getLogger(__name__)
|
||
|
|
||
|
|
||
|
def check_health(app_config):
|
||
|
# Attempt to connect to the database first. If the DB is not responding,
|
||
|
# using the validate_database_url will timeout quickly, as opposed to
|
||
|
# making a normal connect which will just hang (thus breaking the health
|
||
|
# check).
|
||
|
try:
|
||
|
validate_database_url(app_config['DB_URI'], {}, connect_timeout=3)
|
||
|
except Exception:
|
||
|
logger.exception('Could not connect to the database')
|
||
|
return False
|
||
|
|
||
|
# We will connect to the db, check that it contains some team role kinds
|
||
|
try:
|
||
|
return bool(list(TeamRole.select().limit(1)))
|
||
|
except:
|
||
|
return False
|