[PATCH 3/3] Honor the nompath parameter.
David Lehman
dlehman at redhat.com
Fri Oct 12 19:58:10 UTC 2012
Resolves: rhbz#821042
---
iw/filter_gui.py | 10 ++--------
storage/devicelibs/mpath.py | 14 ++++++++++++++
storage/devicetree.py | 11 +++++------
3 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/iw/filter_gui.py b/iw/filter_gui.py
index 6da510d..cccebbd 100644
--- a/iw/filter_gui.py
+++ b/iw/filter_gui.py
@@ -455,10 +455,7 @@ class FilterWindow(InstallWindow):
not udev_device_get_md_container(d),
udev_get_block_devices())
- mcw = MultipathConfigWriter()
- cfg = mcw.write(friendly_names=True)
- with open("/etc/multipath.conf", "w+") as mpath_cfg:
- mpath_cfg.write(cfg)
+ writeMultipathConf(friendly_names=True)
(new_singlepaths, new_mpaths, new_partitions) = identifyMultipaths(new_disks)
(new_raids, new_nonraids) = self.split_list(lambda d: isRAID(d) and not isCCISS(d),
@@ -624,10 +621,7 @@ class FilterWindow(InstallWindow):
not udev_device_get_md_container(d),
udev_get_block_devices())
- mcw = MultipathConfigWriter()
- cfg = mcw.write(friendly_names=True)
- with open("/etc/multipath.conf", "w+") as mpath_cfg:
- mpath_cfg.write(cfg)
+ writeMultipathConf(friendly_names=True)
# identifyMultipaths() uses 'multipath -d' and 'multipath -ll' to find
# mpath devices. In case there are devices already set up they won't
diff --git a/storage/devicelibs/mpath.py b/storage/devicelibs/mpath.py
index 789add1..24aeded 100644
--- a/storage/devicelibs/mpath.py
+++ b/storage/devicelibs/mpath.py
@@ -2,6 +2,7 @@
import re
from ..udev import *
+from flags import flags
import iutil
import logging
@@ -304,6 +305,19 @@ blacklist {
return ret
+def writeMultipathConf(writer=None, friendly_names=True):
+ if not flags.mpath:
+ # not writing out a multipath.conf will effectively blacklist all mpaths
+ # which will prevent any of them from being activated during install
+ return
+
+ if writer is None:
+ writer = MultipathConfigWriter()
+
+ cfg = writer.write(friendly_names=friendly_names)
+ with open("/etc/multipath.conf", "w+") as mpath_cfg:
+ mpath_cfg.write(cfg)
+
def flush_mpaths():
iutil.execWithRedirect("multipath", ["-F"])
check_output = iutil.execWithCapture("multipath", ["-ll"]).strip()
diff --git a/storage/devicetree.py b/storage/devicetree.py
index 9e384f7..6e3c6b2 100644
--- a/storage/devicetree.py
+++ b/storage/devicetree.py
@@ -2095,9 +2095,8 @@ class DeviceTree(object):
% (livetarget,))
self.protectedDevNames.append(livetarget)
- cfg = self.__multipathConfigWriter.write(self.mpathFriendlyNames)
- with open("/etc/multipath.conf", "w+") as mpath_cfg:
- mpath_cfg.write(cfg)
+ devicelibs.mpath.writeMultipathConf(writer=self.__multipathConfigWriter,
+ friendly_names=self.mpathFriendlyNames)
devices = udev_get_block_devices()
(singles, mpaths, partitions) = devicelibs.mpath.identifyMultipaths(devices)
@@ -2138,9 +2137,9 @@ class DeviceTree(object):
for d in self.devices:
if not d.name in whitelist:
self.__multipathConfigWriter.addBlacklistDevice(d)
- cfg = self.__multipathConfigWriter.write(self.mpathFriendlyNames)
- with open("/etc/multipath.conf", "w+") as mpath_cfg:
- mpath_cfg.write(cfg)
+
+ devicelibs.mpath.writeMultipathConf(writer=self.__multipathConfigWriter,
+ friendly_names=self.mpathFriendlyNames)
# Now, loop and scan for devices that have appeared since the two above
# blocks or since previous iterations.
--
1.7.7.6
More information about the anaconda-patches
mailing list