From: Paul Cuzner Date: Mon, 21 Aug 2017 04:52:22 +0000 (+1200) Subject: base: handle admin_socket connection failures gracefully X-Git-Tag: v1.0~30^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8a3518a46ec25545711c5345a2fa96c77a099a85;p=cephmetrics.git base: handle admin_socket connection failures gracefully Connection errors are reported to the parent object and the cephmetrics log file --- diff --git a/collectors/base.py b/collectors/base.py index dc3fdee..3f2741c 100644 --- a/collectors/base.py +++ b/collectors/base.py @@ -40,15 +40,24 @@ class BaseCollector(object): cmds = ['perf', 'dump'] start = time.time() - response = admin_socket(adm_socket, cmds, - format='json') + try: + response = admin_socket(adm_socket, cmds, + format='json') + except RuntimeError as e: + self.logger.error("admin_socket error: {}".format(e.message)) + self.error = True + self.error_msgs = [e.message] + resp = {} + else: + resp = json.loads(response) + end = time.time() self.logger.debug("admin_socket call '{}' : " "{:.3f}s".format(' '.join(cmds), (end - start))) - return json.loads(response) + return resp def get_version(self): """