From 6ad0b468224879571da22d0013184921cbd5e0ee Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Fri, 20 Sep 2019 14:57:58 +0200 Subject: [PATCH] ceph-volume: do not fail when trying to remove crypt mapper In a containerized context, at some point, need to run `simple scan` on a device from a separate container (not the existing and running corresponding container to that device), but this can't work because when it tries to remove the mapper which is still in use by the corresponding running osd container, it fails. This can be a bit more permissive and simply throw a warning. Closes: https://tracker.ceph.com/issues/41392 Signed-off-by: Guillaume Abrioux (cherry picked from commit 80d3e4ca054b4d1334c2fb99fede46ab54ca4305) --- src/ceph-volume/ceph_volume/util/encryption.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ceph-volume/ceph_volume/util/encryption.py b/src/ceph-volume/ceph_volume/util/encryption.py index 4beac7c640fc0..72a0ccf121e97 100644 --- a/src/ceph-volume/ceph_volume/util/encryption.py +++ b/src/ceph-volume/ceph_volume/util/encryption.py @@ -103,7 +103,8 @@ def dmcrypt_close(mapping): logger.debug('device mapper path does not exist %s' % mapping) logger.debug('will skip cryptsetup removal') return - process.run(['cryptsetup', 'remove', mapping]) + # don't be strict about the remove call, but still warn on the terminal if it fails + process.run(['cryptsetup', 'remove', mapping], stop_on_error=False) def get_dmcrypt_key(osd_id, osd_fsid, lockbox_keyring=None): -- 2.47.3