From: Dan Mick Date: Thu, 25 Jul 2013 04:56:15 +0000 (-0700) Subject: ceph_argparse.py: make find_cmd_target handle tell X-Git-Tag: v0.67-rc3~39^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d75b6ea1a47f8b240b5dfead28bd9a7d9257400e;p=ceph.git ceph_argparse.py: make find_cmd_target handle tell Signed-off-by: Dan Mick --- diff --git a/src/pybind/ceph_argparse.py b/src/pybind/ceph_argparse.py index 354459a2cd57..ee71b76d6a1f 100644 --- a/src/pybind/ceph_argparse.py +++ b/src/pybind/ceph_argparse.py @@ -897,20 +897,35 @@ def find_cmd_target(childargs): sig = parse_funcsig(['tell', {'name':'target','type':'CephName'}]) try: valid_dict = validate(childargs, sig, partial=True); + except ArgumentError: + pass + else: if len(valid_dict) == 2: + # revalidate to isolate type and id name = CephName() + # if this fails, something is horribly wrong, as it just + # validated successfully above name.valid(valid_dict['target']) return name.nametype, name.nameid + + sig = parse_funcsig(['tell', {'name':'pgid','type':'CephPgid'}]) + try: + valid_dict = validate(childargs, sig, partial=True); except ArgumentError: pass + else: + if len(valid_dict) == 2: + # pg doesn't need revalidation; the string is fine + return 'pg', valid_dict['pgid'] sig = parse_funcsig(['pg', {'name':'pgid','type':'CephPgid'}]) try: valid_dict = validate(childargs, sig, partial=True); - if len(valid_dict) == 2: - return 'pg', valid_dict['pgid'] except ArgumentError: pass + else: + if len(valid_dict) == 2: + return 'pg', valid_dict['pgid'] return 'mon', ''