return r
def create_daemon_dirs(fsid, daemon_type, daemon_id, uid, gid,
- config=None, keyring=None):
- # type: (str, str, Union[int, str], int, int, str, str) -> None
+ config=None, keyring=None,
+ reconfig=False):
+ # type: (str, str, Union[int, str], int, int, Optional[str], Optional[str], Optional[bool]) -> None
data_dir = make_data_dir(fsid, daemon_type, daemon_id, uid=uid, gid=gid)
make_log_dir(fsid, uid=uid, gid=gid)
def deploy_daemon(fsid, daemon_type, daemon_id, c, uid, gid,
config=None, keyring=None,
- osd_fsid=None):
- # type: (str, str, Union[int, str], CephContainer, int, int, Optional[str], Optional[str], Optional[str]) -> None
- if daemon_type == 'mon' and not os.path.exists(
- get_data_dir(fsid, 'mon', daemon_id)):
+ osd_fsid=None,
+ reconfig=False):
+ # type: (str, str, Union[int, str], CephContainer, int, int, Optional[str], Optional[str], Optional[str], Optional[bool]) -> None
+ data_dir = get_data_dir(fsid, daemon_type, daemon_id)
+ if reconfig and not os.path.exists(data_dir):
+ raise Error('cannot reconfig, data path %s does not exist' % data_dir)
+ if daemon_type == 'mon' and not os.path.exists(data_dir):
assert config
assert keyring
# tmp keyring file
fsid, daemon_type, daemon_id,
uid, gid,
config, keyring)
-
- deploy_daemon_units(fsid, uid, gid, daemon_type, daemon_id, c,
- osd_fsid=osd_fsid)
+ if not reconfig:
+ deploy_daemon_units(fsid, uid, gid, daemon_type, daemon_id, c,
+ osd_fsid=osd_fsid)
update_firewalld(daemon_type)
def deploy_daemon_units(fsid, uid, gid, daemon_type, daemon_id, c,
c = get_container(args.fsid, daemon_type, daemon_id)
deploy_daemon(args.fsid, daemon_type, daemon_id, c, uid, gid,
config, keyring,
- osd_fsid=args.osd_fsid)
+ osd_fsid=args.osd_fsid,
+ reconfig=args.reconfig)
- if crash_keyring:
+ if crash_keyring and not args.reconfig:
deploy_crash(args.fsid, uid, gid, config, crash_keyring)
else:
# monitoring daemon - prometheus, grafana, alertmanager
raise Error("{} not implemented in command_deploy function".format(daemon_type))
c = get_container(args.fsid, daemon_type, daemon_id, container_args=monitoring_args)
- deploy_daemon(args.fsid, daemon_type, daemon_id, c, uid, gid)
+ deploy_daemon(args.fsid, daemon_type, daemon_id, c, uid, gid,
+ reconfig=args.reconfig)
##################################
'--skip-firewalld',
action='store_true',
help='Do not configure firewalld')
+ parser_deploy.add_argument(
+ '--reconfig',
+ action='store_true',
+ help='Reconfigure a previously deployed daemon')
parser_check_host = subparsers.add_parser(
'check-host', help='check host configuration')