From aa78792d91c4d95d6787182edea2e2661b31492f Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 12 Oct 2018 16:34:59 -0500 Subject: [PATCH] mgr/devicehealth: use is_valid_daemon_name helper Signed-off-by: Sage Weil --- src/pybind/mgr/devicehealth/module.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/pybind/mgr/devicehealth/module.py b/src/pybind/mgr/devicehealth/module.py index fdc5849e52f3b..54cda33c3c50c 100644 --- a/src/pybind/mgr/devicehealth/module.py +++ b/src/pybind/mgr/devicehealth/module.py @@ -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: -- 2.39.5