From: xinxin shu Date: Fri, 30 Jan 2015 06:09:16 +0000 (+0800) Subject: fix error : ceph pg ls 0 X-Git-Tag: v0.93~65^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f8142628c1890831d75d12799a39087de618a5d4;p=ceph.git fix error : ceph pg ls 0 no valid command found; 10 closest matches: pg ls-by-primary {} {active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovery|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized [active|clean|down|replay|splitting|scrubbing|scrubq|degraded|inconsistent|peering|repair|recovery|backfill_wait|incomplete|stale|remapped|deep_scrub|backfill|backfill_toofull|recovery_wait|undersized...]} Error EINVAL: invalid command this is due to partial compare of prefix Signed-off-by: xinxin shu --- diff --git a/src/pybind/ceph_argparse.py b/src/pybind/ceph_argparse.py index 029a552be148..3d202da5bcde 100644 --- a/src/pybind/ceph_argparse.py +++ b/src/pybind/ceph_argparse.py @@ -727,7 +727,10 @@ def matchnum(args, signature, partial=False): word = words.pop(0) try: - validate_one(word, desc, partial) + # only allow partial matching if we're on the last supplied + # word; avoid matching foo bar and foot bar just because + # partial is set + validate_one(word, desc, partial and (len(words) == 0)) valid = True except ArgumentError: # matchnum doesn't care about type of error