[PATCH 06/11] Fix detection of inactive md arrays. (#873031)
David Lehman
dlehman at redhat.com
Fri Nov 9 21:09:16 UTC 2012
This doesn't come up much because someone's always activating the
md arrays before anaconda gets run.
---
pyanaconda/storage/devicelibs/mdraid.py | 11 +++++------
pyanaconda/storage/devicetree.py | 18 +++++++-----------
2 files changed, 12 insertions(+), 17 deletions(-)
diff --git a/pyanaconda/storage/devicelibs/mdraid.py b/pyanaconda/storage/devicelibs/mdraid.py
index ee6a465..13d7832 100644
--- a/pyanaconda/storage/devicelibs/mdraid.py
+++ b/pyanaconda/storage/devicelibs/mdraid.py
@@ -240,12 +240,11 @@ def mdexamine(device):
stderr="/dev/tty5").split()
info = {}
- if vars:
- try:
- info["device"] = vars[1]
- vars = vars[2:]
- except IndexError:
- return {}
+ if len(vars) > 1 and vars[1].startswith("/dev/md"):
+ info["device"] = vars[1]
+ vars = vars[2:]
+ elif len(vars) > 1:
+ vars = vars[1:]
for var in vars:
(name, equals, value) = var.partition("=")
diff --git a/pyanaconda/storage/devicetree.py b/pyanaconda/storage/devicetree.py
index be14ba2..6c531ff 100644
--- a/pyanaconda/storage/devicetree.py
+++ b/pyanaconda/storage/devicetree.py
@@ -1418,17 +1418,13 @@ class DeviceTree(object):
if not md_name:
md_path = md_info.get("device", "")
- md_name = devicePathToName(md_info.get("device", ""))
- if md_name:
- try:
- # md_name can be md<minor>, md/<minor>, or md/<name>
- if md_name.startswith("md/"):
- md_name = md_name[3:]
- else:
- md_name = md_name[2:]
- except (IndexError, ValueError):
- md_name = None
- else:
+ if md_path:
+ md_name = devicePathToName(md_path)
+ if re.match(r'md\d+$', md_name):
+ # md0 -> 0
+ md_name = md_name[2:]
+
+ if md_name:
array = self.getDeviceByName(md_name)
if array and array.uuid != md_uuid:
md_name = None
--
1.7.7.6
More information about the anaconda-patches
mailing list