[PATCH] Fix handling of flexible specs in onpart for member devices. (#1004885)

Vratislav Podzimek vpodzime at redhat.com
Mon Sep 9 20:12:58 UTC 2013


On Mon, 2013-09-09 at 12:57 -0500, David Lehman wrote:
> 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]
ACK.

-- 
Vratislav Podzimek

Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic



More information about the anaconda-patches mailing list