import logging
import os
import uuid
+import re
from itertools import repeat
from math import floor
from ceph_volume import process, util, conf
except ValueError:
res_lv = None
return res_lv
+
+def get_lv_path_from_mapper(mapper):
+ """
+ This functions translates a given mapper device under the format:
+ /dev/mapper/LV to the format /dev/VG/LV.
+ eg:
+ from:
+ /dev/mapper/ceph--c1a97e46--234c--46aa--a549--3ca1d1f356a9-osd--block--32e8e896--172e--4a38--a06a--3702598510ec
+ to:
+ /dev/ceph-c1a97e46-234c-46aa-a549-3ca1d1f356a9/osd-block-32e8e896-172e-4a38-a06a-3702598510ec
+ """
+ results = re.split(r'^\/dev\/mapper\/(.+\w)-(\w.+)', mapper)
+ results = list(filter(None, results))
+
+ if len(results) != 2:
+ return None
+
+ return f"/dev/{results[0].replace('--', '-')}/{results[1].replace('--', '-')}"
+
+def get_mapper_from_lv_path(lv_path):
+ """
+ This functions translates a given lv path under the format:
+ /dev/VG/LV to the format /dev/mapper/LV.
+ eg:
+ from:
+ /dev/ceph-c1a97e46-234c-46aa-a549-3ca1d1f356a9/osd-block-32e8e896-172e-4a38-a06a-3702598510ec
+ to:
+ /dev/mapper/ceph--c1a97e46--234c--46aa--a549--3ca1d1f356a9-osd--block--32e8e896--172e--4a38--a06a--3702598510ec
+ """
+ results = re.split(r'^\/dev\/(.+\w)-(\w.+)', lv_path)
+ results = list(filter(None, results))
+
+ if len(results) != 2:
+ return None
+
+ return f"/dev/mapper/{results[0].replace('-', '--')}/{results[1].replace('-', '--')}"