|
@@ -18,6 +18,8 @@ from coriolis import utils
|
|
|
|
|
|
|
|
LOG = logging.getLogger(__name__)
|
|
LOG = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
+MAJOR_COLUMN_INDEX = 4
|
|
|
|
|
+
|
|
|
|
|
|
|
|
class BaseOSMountTools(object, with_metaclass(abc.ABCMeta)):
|
|
class BaseOSMountTools(object, with_metaclass(abc.ABCMeta)):
|
|
|
|
|
|
|
@@ -305,10 +307,29 @@ class BaseLinuxOSMountTools(BaseSSHOSMountTools):
|
|
|
mounts = self._exec_cmd(
|
|
mounts = self._exec_cmd(
|
|
|
"cat /proc/mounts").decode().splitlines()
|
|
"cat /proc/mounts").decode().splitlines()
|
|
|
ret = []
|
|
ret = []
|
|
|
|
|
+ mounted_device_numbers = []
|
|
|
|
|
+ dev_nmb_cmd = "mountpoint -x %s"
|
|
|
for line in mounts:
|
|
for line in mounts:
|
|
|
colls = line.split()
|
|
colls = line.split()
|
|
|
if colls[0].startswith("/dev"):
|
|
if colls[0].startswith("/dev"):
|
|
|
- ret.append(self._get_symlink_target(colls[0]))
|
|
|
|
|
|
|
+ dev_name = self._get_symlink_target(colls[0])
|
|
|
|
|
+ ret.append(dev_name)
|
|
|
|
|
+ mounted_device_numbers.append(
|
|
|
|
|
+ self._exec_cmd(dev_nmb_cmd % dev_name).decode().rstrip())
|
|
|
|
|
+
|
|
|
|
|
+ block_devs = self._exec_cmd(
|
|
|
|
|
+ "ls -al /dev | grep ^b").decode().splitlines()
|
|
|
|
|
+ for dev_line in block_devs:
|
|
|
|
|
+ dev = dev_line.split()
|
|
|
|
|
+ major_minor = "%s:%s" % (
|
|
|
|
|
+ dev[MAJOR_COLUMN_INDEX].rstrip(','),
|
|
|
|
|
+ dev[MAJOR_COLUMN_INDEX + 1])
|
|
|
|
|
+
|
|
|
|
|
+ if major_minor in mounted_device_numbers:
|
|
|
|
|
+ dev_path = "/dev/%s" % dev[-1]
|
|
|
|
|
+ if dev_path not in ret:
|
|
|
|
|
+ ret.append(dev_path)
|
|
|
|
|
+
|
|
|
LOG.debug("Currently mounted devices: %s", ret)
|
|
LOG.debug("Currently mounted devices: %s", ret)
|
|
|
return ret
|
|
return ret
|
|
|
|
|
|