diff options
author | Dan Mick <dan.mick@inktank.com> | 2013-08-15 17:10:56 -0700 |
---|---|---|
committer | Dan Mick <dan.mick@inktank.com> | 2013-08-15 17:10:56 -0700 |
commit | 266460e97ec9ef9711e9eaa4bd954f3188d8da69 (patch) | |
tree | 743191a9aee60ff5057a28227149d3ab7d689f67 | |
parent | 35565ee64e41d7fddc7849c6006692c78227132c (diff) | |
download | ceph-266460e97ec9ef9711e9eaa4bd954f3188d8da69.tar.gz |
ceph.in: --admin-daemon was not returning EINVAL on bad command
Fix by restructuring code to hoist common code and have only one
place where admin_socket is actually called.
Signed-off-by: Dan Mick <dan.mick@inktank.com>
-rwxr-xr-x | src/ceph.in | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/src/ceph.in b/src/ceph.in index fe369f82467..38464dfc2a2 100755 --- a/src/ceph.in +++ b/src/ceph.in @@ -506,35 +506,36 @@ def main(): format = parsed_args.output_format + sockpath = None if parsed_args.admin_socket: - try: - print admin_socket(parsed_args.admin_socket, childargs, format) - except Exception as e: - print >> sys.stderr, 'admin_socket: {0}'.format(e) - return 0 - - if len(childargs) > 0 and childargs[0] == "daemon": + sockpath = parsed_args.admin_socket + elif len(childargs) > 0 and childargs[0] == "daemon": + # Treat "daemon <path>" or "daemon <name>" like --admin_daemon <path> if len(childargs) > 2: if childargs[1].find('/') >= 0: - try: - print admin_socket(childargs[1], childargs[2:], format) - except Exception as e: - print >> sys.stderr, 'admin_socket: {0}'.format(e) - return errno.EINVAL - return 0 + sockpath = childargs[1] else: # try resolve daemon name - path = ceph_conf('admin_socket', childargs[1]) try: - print admin_socket(path, childargs[2:], format) + sockpath = ceph_conf('admin_socket', childargs[1]) except Exception as e: - print >> sys.stderr, 'admin_socket: {0}'.format(e) + print >> sys.stderr, \ + 'Can\'t get admin socket path: ' + str(e) return errno.EINVAL - return 0 + # for both: + childargs = childargs[2:] else: - print >> sys.stderr, 'Daemon requires at least 2 arguments' + print >> sys.stderr, 'daemon requires at least 3 arguments' return errno.EINVAL + if sockpath: + try: + print admin_socket(sockpath, childargs, format) + except Exception as e: + print >> sys.stderr, 'admin_socket: {0}'.format(e) + return errno.EINVAL + return 0 + # handle any 'generic' ceph arguments that we didn't parse here global cluster_handle |