From d82213b98a494137ac1e90e4b0d14e0d7ee11656 Mon Sep 17 00:00:00 2001 From: Jan Fajerski Date: Wed, 4 Mar 2020 11:39:40 +0100 Subject: [PATCH] ceph-volume: available_lvm: vg space takes precedence This changes available_lvm to check for generic reasons only if no VGs were found. A VG can contain a (mounted) lv, which triggers the ro/locked test, despite the VG having space available. Signed-off-by: Jan Fajerski (cherry picked from commit c6d71eb0022935731bb9380098c975d9c5f27a86) --- src/ceph-volume/ceph_volume/util/device.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ceph-volume/ceph_volume/util/device.py b/src/ceph-volume/ceph_volume/util/device.py index fe3fde5605ffe..4da4257512c73 100644 --- a/src/ceph-volume/ceph_volume/util/device.py +++ b/src/ceph-volume/ceph_volume/util/device.py @@ -398,11 +398,16 @@ class Device(object): return rejected def _check_lvm_reject_reasons(self): - rejected = self._check_generic_reject_reasons() + rejected = [] available_vgs = [vg for vg in self.vgs if vg.free >= 5368709120] if self.vgs and not available_vgs: rejected.append('Insufficient space (<5GB) on vgs') + if not self.vgs: + # only check generic if no vgs are present. Vgs might hold lvs and + # that might cause 'locked' to trigger + rejected.extend(self._check_generic_reject_reasons()) + return len(rejected) == 0, rejected def _check_raw_reject_reasons(self): -- 2.39.5