From 4f2f9dacd80e219d543c4c4c416977d98ff8eb40 Mon Sep 17 00:00:00 2001 From: Adam King Date: Mon, 8 Feb 2021 14:55:45 -0500 Subject: [PATCH] cephadm: allow redeploy of daemons in error state if container running Signed-off-by: Adam King (cherry picked from commit 71613e61fa66e3479693f61ce63732550f756e17) Conflicts: src/cephadm/cephadm --- src/cephadm/cephadm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index 8de809d75bf12..6e1d204c0b1ea 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -1685,6 +1685,13 @@ def check_units(units, enabler=None): return False +def is_container_running(name: str) -> bool: + out, err, ret = call_throws([ + container_path, 'ps', + '--format', '{{.Names}}']) + return name in out + + def get_legacy_config_fsid(cluster, legacy_dir=None): # type: (str, Optional[str]) -> Optional[str] config_file = '/etc/ceph/%s.conf' % cluster @@ -3378,8 +3385,9 @@ def command_deploy(): redeploy = False unit_name = get_unit_name(args.fsid, daemon_type, daemon_id) + container_name = 'ceph-%s-%s.%s' % (args.fsid, daemon_type, daemon_id) (_, state, _) = check_unit(unit_name) - if state == 'running': + if state == 'running' or is_container_running(container_name): redeploy = True if args.reconfig: -- 2.39.5