From 3d00ecf27a5a04aff1cee813efcf1f66ce1b45a7 Mon Sep 17 00:00:00 2001 From: John Mulligan Date: Sun, 19 Nov 2023 07:56:46 -0500 Subject: [PATCH] cephadm: update rm cluster to remove sidecar/init-ctr services A previous patch updated the rm-daemon functionality to remove sidecar and init-container systemd services. This patch does the same for the rm-cluster codepath. Signed-off-by: John Mulligan --- src/cephadm/cephadm.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/cephadm/cephadm.py b/src/cephadm/cephadm.py index 7b9ca0fd0ab..5d5c2a72eb5 100755 --- a/src/cephadm/cephadm.py +++ b/src/cephadm/cephadm.py @@ -4285,12 +4285,22 @@ def _rm_cluster(ctx: CephadmContext, keep_logs: bool, zap_osds: bool) -> None: logger.info(f'Deleting cluster with fsid: {ctx.fsid}') # stop + disable individual daemon units + sd_paths = [] for d in list_daemons(ctx, detail=False): if d['fsid'] != ctx.fsid: continue if d['style'] != 'cephadm:v1': continue terminate_service(ctx, 'ceph-%s@%s' % (ctx.fsid, d['name'])) + # terminate sidecar & other supplemental services + ident = DaemonIdentity.from_name(ctx.fsid, d['name']) + sd_path_info = systemd_unit.sidecars_from_dropin( + systemd_unit.PathInfo(ctx.unit_dir, ident), missing_ok=True + ) + for sc_unit in sd_path_info.sidecar_unit_files.values(): + terminate_service(ctx, sc_unit.name) + terminate_service(ctx, sd_path_info.init_ctr_unit_file.name) + sd_paths.append(sd_path_info) # cluster units for unit_name in ['ceph-%s.target' % ctx.fsid]: @@ -4305,12 +4315,16 @@ def _rm_cluster(ctx: CephadmContext, keep_logs: bool, zap_osds: bool) -> None: _zap_osds(ctx) # rm units - call_throws(ctx, ['rm', '-f', ctx.unit_dir - + '/ceph-%s@.service' % ctx.fsid]) - call_throws(ctx, ['rm', '-f', ctx.unit_dir - + '/ceph-%s.target' % ctx.fsid]) - call_throws(ctx, ['rm', '-rf', - ctx.unit_dir + '/ceph-%s.target.wants' % ctx.fsid]) + for sd_path_info in sd_paths: + for sc_unit in sd_path_info.sidecar_unit_files.values(): + unlink_file(sc_unit, missing_ok=True) + unlink_file(sd_path_info.init_ctr_unit_file, missing_ok=True) + shutil.rmtree(sd_path_info.drop_in_file.parent, ignore_errors=True) + unit_dir = Path(ctx.unit_dir) + unlink_file(unit_dir / f'ceph-{ctx.fsid}@.service', missing_ok=True) + unlink_file(unit_dir / f'ceph-{ctx.fsid}.target', missing_ok=True) + shutil.rmtree(unit_dir / f'ceph-{ctx.fsid}.target.wants', ignore_errors=True) + # rm data call_throws(ctx, ['rm', '-rf', ctx.data_dir + '/' + ctx.fsid]) -- 2.39.5