From: Sage Weil Date: Thu, 25 Jul 2013 17:48:57 +0000 (-0700) Subject: Merge remote-tracking branch 'gh/next' X-Git-Tag: v0.68~126 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ddaf6d5a93340472429f04d4d593038ed9a975d1;p=ceph.git Merge remote-tracking branch 'gh/next' Conflicts: configure.ac src/ceph.in src/pybind/ceph_argparse.py --- ddaf6d5a93340472429f04d4d593038ed9a975d1 diff --cc src/pybind/ceph_argparse.py index 73d1115f6456,907d2ec2b33f..d72e2c593a37 --- a/src/pybind/ceph_argparse.py +++ b/src/pybind/ceph_argparse.py @@@ -891,7 -887,35 +891,35 @@@ def validate_command(parsed_args, sigdi return valid_dict + 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=[], inbuf='', timeout=0, +def send_command(cluster, target=('mon', ''), cmd=None, inbuf='', timeout=0, verbose=False): """ Send a command to a daemon using librados's