]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
fix error : ceph pg ls 0
authorxinxin shu <xinxin.shu@intel.com>
Fri, 30 Jan 2015 06:09:16 +0000 (14:09 +0800)
committerxinxin shu <xinxin.shu@intel.com>
Tue, 10 Feb 2015 00:11:04 +0000 (08:11 +0800)
no valid command found; 10 closest matches:
pg ls-by-primary <osdname (id|osd.id)> {<int>} {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 <xinxin.shu@intel.com>
src/pybind/ceph_argparse.py

index 029a552be148e5174c46cff73c30a967cf12e909..3d202da5bcdefe9fc867b5f870905a7636a6f03a 100644 (file)
@@ -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