]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph: extract ids_by_service() so it can be reused
authorKefu Chai <kchai@redhat.com>
Tue, 5 Sep 2017 08:00:59 +0000 (16:00 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 5 Sep 2017 17:49:20 +0000 (01:49 +0800)
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/ceph.in

index bb2516c788f9953cccba5d71498f3c288dce4432..adb11c39b2aee45f77c10f6cabe17c94585677b6 100755 (executable)
@@ -199,6 +199,14 @@ def mgrids():
     return l
 
 
+def ids_by_service(service):
+    ids = {"mon": monids,
+           "osd": osdids,
+           "mds": mdsids,
+           "mgr": mgrids}
+    return ids[service]()
+
+
 def validate_target(target):
     """
       this function will return true iff target is a correct
@@ -211,16 +219,9 @@ def validate_target(target):
     if len(target) == 2:
         # for case "service.id"
         service_name, service_id = target[0], target[1]
-        exist_ids = []
-        if service_name == "mon":
-            exist_ids = monids()
-        elif service_name == "osd":
-            exist_ids = osdids()
-        elif service_name == "mds":
-            exist_ids = mdsids()
-        elif service_name == "mgr":
-            exist_ids = mgrids()
-        else:
+        try:
+            exist_ids = ids_by_service(service_name)
+        except KeyError:
             print('WARN: {0} is not a legal service name, should be one of mon/osd/mds/mgr'.format(service_name),
                   file=sys.stderr)
             return False