Add instance key ID to the health check endpoint

Fixes #1429
This commit is contained in:
Joseph Schorr 2016-07-05 14:14:22 -04:00
parent 781f2eec72
commit 7fddc61b8f
2 changed files with 11 additions and 9 deletions

View file

@ -4,15 +4,16 @@ from health.services import check_all_services
logger = logging.getLogger(__name__)
def get_healthchecker(app, config_provider):
def get_healthchecker(app, config_provider, instance_keys):
""" Returns a HealthCheck instance for the given app. """
return HealthCheck.get_checker(app, config_provider)
return HealthCheck.get_checker(app, config_provider, instance_keys)
class HealthCheck(object):
def __init__(self, app, config_provider, instance_skips=None):
def __init__(self, app, config_provider, instance_keys, instance_skips=None):
self.app = app
self.config_provider = config_provider
self.instance_keys = instance_keys
self.instance_skips = instance_skips or []
def check_instance(self):
@ -55,20 +56,21 @@ class HealthCheck(object):
'services': service_statuses,
'notes': notes,
'is_testing': self.app.config['TESTING'],
'config_provider': self.config_provider.provider_id
'config_provider': self.config_provider.provider_id,
'local_service_key_id': self.instance_keys.local_key_id,
}
return (data, 200 if is_healthy else 503)
@classmethod
def get_checker(cls, app, config_provider):
def get_checker(cls, app, config_provider, instance_keys):
name = app.config['HEALTH_CHECKER'][0]
parameters = app.config['HEALTH_CHECKER'][1] or {}
for subc in cls.__subclasses__():
if name in subc.check_names():
return subc(app, config_provider, **parameters)
return subc(app, config_provider, instance_keys, **parameters)
raise Exception('Unknown health check with name %s' % name)