[PATCH 2/3] Use devicetree to resolve device specs in kickstart. (#1022206)
David Lehman
dlehman at redhat.com
Wed Oct 23 18:57:22 UTC 2013
Previously we were trying udev_resolve_devspec first, which meant we
were preferring devices that exist on disk over the currently projected
set of devices according to the devicetree. Trust the devicetree.
---
pyanaconda/kickstart.py | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
index b2b2116..524a561 100644
--- a/pyanaconda/kickstart.py
+++ b/pyanaconda/kickstart.py
@@ -333,12 +333,11 @@ class BTRFSData(commands.btrfs.F17_BTRFSData):
# Get a list of all the devices that make up this volume.
for member in self.devices:
- # if using --onpart, use original device
- member_name = ksdata.onPart.get(member, member)
- if member_name:
- dev = devicetree.getDeviceByName(udev.udev_resolve_devspec(member_name)) or lookupAlias(devicetree, member)
+ dev = devicetree.resolveDevice(member)
if not dev:
- dev = devicetree.resolveDevice(member)
+ # if using --onpart, use original device
+ member_name = ksdata.onPart.get(member, member)
+ dev = devicetree.resolveDevice(member_name or lookupAlias(devicetree, member))
if dev and dev.format.type == "luks":
try:
@@ -1178,9 +1177,11 @@ class RaidData(commands.raid.F18_RaidData):
# Get a list of all the RAID members.
for member in self.members:
- # if member is using --onpart, use original device
- mem = ksdata.onPart.get(member, member)
- dev = devicetree.getDeviceByName(udev.udev_resolve_devspec(mem)) or lookupAlias(devicetree, mem)
+ dev = devicetree.resolveDevice(member)
+ if not dev:
+ # if member is using --onpart, use original device
+ mem = ksdata.onPart.get(member, member)
+ dev = devicetree.resolveDevice(mem or lookupAlias(devicetree, member))
if dev and dev.format.type == "luks":
try:
dev = devicetree.getChildren(dev)[0]
@@ -1401,9 +1402,11 @@ class VolGroupData(commands.volgroup.FC16_VolGroupData):
# Get a list of all the physical volume devices that make up this VG.
for pv in self.physvols:
- # if pv is using --onpart, use original device
- pv = ksdata.onPart.get(pv, pv)
- dev = devicetree.getDeviceByName(udev.udev_resolve_devspec(pv)) or lookupAlias(devicetree, pv)
+ dev = devicetree.resolveDevice(pv)
+ if not dev:
+ # if pv is using --onpart, use original device
+ pv_name = ksdata.onPart.get(pv, pv)
+ dev = devicetree.resolveDevice(pv_name or lookupAlias(devicetree, pv))
if dev and dev.format.type == "luks":
try:
dev = devicetree.getChildren(dev)[0]
--
1.8.1.4
More information about the anaconda-patches
mailing list