]> git-server-git.apps.pok.os.sepia.ceph.com Git - cephmetrics.git/commitdiff
base: handle admin_socket connection failures gracefully
authorPaul Cuzner <pcuzner@redhat.com>
Mon, 21 Aug 2017 04:52:22 +0000 (16:52 +1200)
committerPaul Cuzner <pcuzner@redhat.com>
Mon, 21 Aug 2017 04:52:22 +0000 (16:52 +1200)
Connection errors are reported to the parent object and the cephmetrics
log file

collectors/base.py

index dc3fdeedbb189e9891c5a6bc25c93261cc9d9522..3f2741c643d00df84460a560252a26eb73052e7c 100644 (file)
@@ -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):
         """