]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
Avoid exception if remote plugin not enabled
authorhsiang41 <rick.chen@prophetstor.com>
Tue, 6 Nov 2018 08:37:06 +0000 (16:37 +0800)
committerhsiang41 <rick.chen@prophetstor.com>
Tue, 6 Nov 2018 08:47:12 +0000 (16:47 +0800)
Avoid code exception when the remote plugin not enabled.

Signed-off-by: Rick Chen <rick.chen@prophetstor.com>
src/pybind/mgr/devicehealth/module.py
src/pybind/mgr/diskprediction_local/module.py

index c73cf82f3f46d1db6ec708524ee95d7b66c6ca89..f2dd5368e3a937c06afb0266c17bf3668f99cd6c 100644 (file)
@@ -583,7 +583,11 @@ class Module(MgrModule):
             plugin_name = 'diskprediction_local'
         else:
             return -1, '', 'unable to enable any disk prediction model[local/cloud]'
-        return self.remote(plugin_name, 'predict_life_expentancy', devid=devid)
+        try:
+            if self.remote(plugin_name, 'can_run'):
+                return self.remote(plugin_name, 'predict_life_expentancy', devid=devid)
+        except:
+            return -1, '', 'unable to invoke diskprediction local or remote plugin'
 
     def predict_all_devices(self):
         plugin_name = ''
@@ -594,4 +598,8 @@ class Module(MgrModule):
             plugin_name = 'diskprediction_local'
         else:
             return -1, '', 'unable to enable any disk prediction model[local/cloud]'
-        return self.remote(plugin_name, 'predict_all_devices')
+        try:
+            if self.remote(plugin_name, 'can_run'):
+                return self.remote(plugin_name, 'predict_all_devices')
+        except:
+            return -1, '', 'unable to invoke diskprediction local or remote plugin'
index 80286f47bf1bf068dd4739280ecc56048b320ca7..1959739e3975345ea5ebdd9504a1b05f7ce19e1c 100644 (file)
@@ -85,7 +85,7 @@ class Module(MgrModule):
                         self.log.debug('Last scrape never, next scrape due %s',
                                        next_predicted.strftime(TIME_FORMAT))
                 if now >= next_predicted:
-                    self.predict_all_device()
+                    self.predict_all_devices()
                     last_predicted = now
                     self.set_store('last_predicted', last_predicted.strftime(TIME_FORMAT))