]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge remote-tracking branch 'gh/next'
authorSage Weil <sage@inktank.com>
Thu, 25 Jul 2013 17:48:57 +0000 (10:48 -0700)
committerSage Weil <sage@inktank.com>
Thu, 25 Jul 2013 17:48:57 +0000 (10:48 -0700)
Conflicts:
configure.ac
src/ceph.in
src/pybind/ceph_argparse.py

1  2 
configure.ac
src/ceph.in
src/pybind/ceph_argparse.py

diff --cc configure.ac
Simple merge
diff --cc src/ceph.in
Simple merge
index 73d1115f6456efaaa5821c4f9ab7ab0a29afdfd1,907d2ec2b33f824075f385f49ad1cbd2527a9d74..d72e2c593a3751e62510ecb2bfda62184d52a25b
@@@ -891,7 -887,35 +891,35 @@@ def validate_command(parsed_args, sigdi
  
          return valid_dict
  
 -def send_command(cluster, target=('mon', ''), cmd=[], inbuf='', timeout=0, 
+ def find_cmd_target(childargs):
+     """
+     Using a minimal validation, figure out whether the command
+     should be sent to a monitor or an osd.  We do this before even
+     asking for the 'real' set of command signatures, so we can ask the
+     right daemon.
+     Returns ('osd', osdid), ('pg', pgid), or ('mon', '')
+     """
+     sig = parse_funcsig(['tell', {'name':'target','type':'CephName'}])
+     try:
+         valid_dict = validate(childargs, sig, partial=True);
+         if len(valid_dict) == 2:
+             name = CephName()
+             name.valid(valid_dict['target'])
+             return name.nametype, name.nameid
+     except ArgumentError:
+         pass
+     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
+     return 'mon', ''
 +def send_command(cluster, target=('mon', ''), cmd=None, inbuf='', timeout=0, 
                   verbose=False):
      """
      Send a command to a daemon using librados's