"""
from time import sleep
-import codecs
import grp
import os
import pwd
import shutil
+import stat
import sys
import time
import platform
return fullusage
-def ceph_conf(parsed_args, field, name):
+def ceph_conf(parsed_args, field, name, pid=None):
cmd = 'ceph-conf'
bindir = os.path.dirname(__file__)
if shutil.which(cmd):
if name:
args.extend(['--name', name])
+ if pid:
+ args.extend(['--pid', pid])
# add any args in GLOBAL_ARGS
for key, val in GLOBAL_ARGS.items():
raise RuntimeError('unable to get conf option %s for %s: %s' % (field, name, errdata))
return outdata.rstrip()
+
PROMPT = 'ceph> '
if sys.stdin.isatty():
def get_admin_socket(parsed_args, name):
- return ceph_conf(parsed_args, 'admin_socket', name)
+ path = ceph_conf(parsed_args, 'admin_socket', name)
+ try:
+ if stat.S_ISSOCK(os.stat(path).st_mode):
+ return path
+ except OSError:
+ pass
+ # try harder, probably the "name" option is in the form of
+ # "${name}.${pid}"?
+ parts = name.rsplit('.', 1)
+ if len(parts) > 1 and parts[-1].isnumeric():
+ name, pid = parts
+ return ceph_conf(parsed_args, 'admin_socket', name, pid)
+ else:
+ return path
def maybe_daemon_command(parsed_args, childargs):