From d75b6ea1a47f8b240b5dfead28bd9a7d9257400e Mon Sep 17 00:00:00 2001 From: Dan Mick Date: Wed, 24 Jul 2013 21:56:15 -0700 Subject: [PATCH] ceph_argparse.py: make find_cmd_target handle tell Signed-off-by: Dan Mick --- src/pybind/ceph_argparse.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/pybind/ceph_argparse.py b/src/pybind/ceph_argparse.py index 354459a2cd57a..ee71b76d6a1f3 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', '' -- 2.39.5