]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/devicehealth: use is_valid_daemon_name helper 24151/head
authorSage Weil <sage@redhat.com>
Fri, 12 Oct 2018 21:34:59 +0000 (16:34 -0500)
committerSage Weil <sage@redhat.com>
Mon, 15 Oct 2018 14:44:05 +0000 (09:44 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/pybind/mgr/devicehealth/module.py

index fdc5849e52f3b36519c3a43ced6e2bbbc3bdb75b..54cda33c3c50c63a80d15cce701fb6ad2e20d7af 100644 (file)
@@ -114,13 +114,22 @@ class Module(MgrModule):
         self.run = True
         self.event = Event()
 
+    def is_valid_daemon_name(self, who):
+        l = cmd.get('who', '').split('.')
+        if len(l) != 2:
+            return False
+        if l[0] not in ('osd', 'mon'):
+            return False;
+        return True;
+
     def handle_command(self, _, cmd):
         self.log.error("handle_command")
 
         if cmd['prefix'] == 'device query-daemon-health-metrics':
+            who = cmd.get('who', '')
+            if not self.is_valid_daemon_name(who):
+                return -errno.EINVAL, '', 'not a valid mon or osd daemon name'
             (daemon_type, daemon_id) = cmd.get('who', '').split('.')
-            if daemon_type not in ('osd', 'mon'):
-                return -errno.EINVAL, '', 'not a valid daemon name'
             result = CommandResult('')
             self.send_command(result, daemon_type, daemon_id, json.dumps({
                 'prefix': 'smart',
@@ -129,9 +138,10 @@ class Module(MgrModule):
             r, outb, outs = result.wait()
             return r, outb, outs
         elif cmd['prefix'] == 'device scrape-daemon-health-metrics':
+            who = cmd.get('who', '')
+            if not self.is_valid_daemon_name(who):
+                return -errno.EINVAL, '', 'not a valid mon or osd daemon name'
             (daemon_type, daemon_id) = cmd.get('who', '').split('.')
-            if daemon_type not in ('osd', 'mon'):
-                return -errno.EINVAL, '', 'not a valid daemon name'
             return self.scrape_daemon(daemon_type, daemon_id)
         elif cmd['prefix'] == 'device scrape-health-metrics':
             if 'devid' in cmd: