The puppet-ceph module is not correctly checking the OSD
partition when it belongs to a multipath disk or any /dev/dm-X
device.
This fix changes the parsing string when running ceph-disk list
command to verify osd disk is already created.
Without multipath disk, the readlink command will return,
for example, '/dev/sdb' for any partition of that disk.
The output of ceph-disk is like:
/dev/sdb :
/dev/sdb1 ceph data, prepared, cluster ceph, osd.0, osd uuid
e3c08a72-c755-4dec-b353-e4df4b4690c4, journal /dev/sdb2
/dev/sdb2 ceph journal, for /dev/sdb1
This way when grepping '/dev/sdb.*ceph data', it will detect
the line with the partition '/dev/sdb1' with no errors.
But with multipath disk the readlink command returns /dev/dm-X
for disks and partitions. For example, it will return /dev/dm-6
when using
/dev/dm-6 :
/dev/dm-7 ceph data, prepared, cluster ceph, osd.0, osd uuid
e3c08a72-c755-4dec-b353-e4df4b4690c4, journal /dev/dm-8
/dev/dm-8 ceph journal, for /dev/dm-7
This way when grepping '/dev/dm-6.*ceph data', it will not
detect the line with the partition /dev/dm-7.
Test-Plan:
PASS: Fresh install AIO-SX with ceph backend and verify ceph
is HEALTH_OK (with multipath disks)
PASS: Lock/Unlock controller-0 and verify ceph is HEALTH_OK
(with multipath disks)
PASS: Fresh install AIO-SX with ceph backend and verify ceph
is HEALTH_OK (with regular disks)
PASS: Lock/Unlock controller-0 and verify ceph is HEALTH_OK
(with regular disks)
Closes-bug: 2009227
Signed-off-by: Felipe Sanches Zanoni <Felipe.SanchesZanoni@windriver.com>
Change-Id: Iad11c803b68983ad70fb1edfce5a9acc156a10f4