From: Jan Fajerski Date: Wed, 29 Nov 2017 11:23:55 +0000 (+0100) Subject: pybind/mgr/prometheus: return 503 if MON cluster is down X-Git-Tag: wip-pdonnell-testing-20180317.202121~519^2~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=eda9f15dd939de3e7205ceb0dfcc9fcfce7d89bb;p=ceph-ci.git pybind/mgr/prometheus: return 503 if MON cluster is down Signed-off-by: Jan Fajerski --- diff --git a/src/pybind/mgr/prometheus/module.py b/src/pybind/mgr/prometheus/module.py index 2539d8696a3..85f78a06baf 100644 --- a/src/pybind/mgr/prometheus/module.py +++ b/src/pybind/mgr/prometheus/module.py @@ -231,10 +231,6 @@ class Module(MgrModule): return metrics - def shutdown(self): - self.serving = False - pass - def get_health(self): health = json.loads(self.get('health')['json']) self.metrics['health_status'].set( @@ -390,10 +386,13 @@ class Module(MgrModule): @cherrypy.expose def metrics(self): - metrics = global_instance().collect() - cherrypy.response.headers['Content-Type'] = 'text/plain' - if metrics: - return self.format_metrics(metrics) + if global_instance().have_mon_connection(): + metrics = global_instance().collect() + cherrypy.response.headers['Content-Type'] = 'text/plain' + if metrics: + return self.format_metrics(metrics) + else: + raise cherrypy.HTTPError(503, 'No MON connection') server_addr = self.get_localized_config('server_addr', DEFAULT_ADDR) server_port = self.get_localized_config('server_port', DEFAULT_PORT) @@ -418,6 +417,11 @@ class Module(MgrModule): cherrypy.engine.start() cherrypy.engine.block() + def shutdown(self): + self.serving = False + pass + + class StandbyModule(MgrStandbyModule): def serve(self): server_addr = self.get_localized_config('server_addr', '::')