Short version: don't assume onPart identifier is a name/path.
Longer version:
If an existing pv was specified using --onpart=UUID=<uuid> the
immediate onpart resolution worked, but the volgroup would then fail
to resolve the pv.xxx to a device because it assumed the onpart data
was a name.
---
pyanaconda/kickstart.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
index e3f8895..d6baaaa 100644
--- a/pyanaconda/kickstart.py
+++ b/pyanaconda/kickstart.py
@@ -314,7 +314,7 @@ class BTRFSData(commands.btrfs.F17_BTRFSData):
# if using --onpart, use original device
member_name = ksdata.onPart.get(member, member)
if member_name:
- dev = devicetree.getDeviceByName(member_name) or lookupAlias(devicetree,
member)
+ dev = devicetree.getDeviceByName(udev.udev_resolve_devspec(member_name))
or lookupAlias(devicetree, member)
if not dev:
dev = devicetree.resolveDevice(member)
@@ -1131,7 +1131,7 @@ class RaidData(commands.raid.F18_RaidData):
for member in self.members:
# if member is using --onpart, use original device
mem = ksdata.onPart.get(member, member)
- dev = devicetree.getDeviceByName(mem) or lookupAlias(devicetree, mem)
+ dev = devicetree.getDeviceByName(udev.udev_resolve_devspec(mem)) or
lookupAlias(devicetree, mem)
if dev and dev.format.type == "luks":
try:
dev = devicetree.getChildren(dev)[0]
@@ -1350,7 +1350,7 @@ class VolGroupData(commands.volgroup.FC16_VolGroupData):
for pv in self.physvols:
# if pv is using --onpart, use original device
pv = ksdata.onPart.get(pv, pv)
- dev = devicetree.getDeviceByName(pv) or lookupAlias(devicetree, pv)
+ dev = devicetree.getDeviceByName(udev.udev_resolve_devspec(pv)) or
lookupAlias(devicetree, pv)
if dev and dev.format.type == "luks":
try:
dev = devicetree.getChildren(dev)[0]
--
1.8.1.4