[master/f20-branch/rhel7-branch] Check that s390x LVM configuration is valid. (#873135, #885011)

David Lehman dlehman at redhat.com
Fri Oct 25 21:10:02 UTC 2013


On Fri, 2013-10-25 at 15:41 -0400, Samantha N. Bueno wrote:
> On s390x, /boot (or / if /boot isn't a mountpoint) needs to exist on a
> single PV if using LVM, so check for this.

I think you need to put that in a ZIP.is_valid_stage2_device:

class ZIPL...
 def is_valid_stage2_...
     valid = super(ZIPL, self).is_valid_stage2_device(...)
     <your single pv code here>
     return valid

Just to keep from infecting the generic code with mainframe special
sauce. Also because GRUB2 can have lvm stage2 without single pv (or is
that handled and I missed it?). Looks good otherwise.

> 
> Resolves: rhbz#873135
> Resolves: rhbz#885011
> ---
>  pyanaconda/bootloader.py | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py
> index cf769ed..600ba6f 100644
> --- a/pyanaconda/bootloader.py
> +++ b/pyanaconda/bootloader.py
> @@ -40,6 +40,7 @@ import pyanaconda.network
>  from pyanaconda.nm import nm_device_hwaddress
>  from blivet import platform
>  from pyanaconda.i18n import _, N_
> +from blivet.errors import SinglePhysicalVolumeError
>  
>  import logging
>  log = logging.getLogger("anaconda")
> @@ -718,6 +719,17 @@ class BootLoader(object):
>                                   "device.") % self.stage2_description)
>              valid = False
>  
> +        # s390x can only have /boot on a single PV; or if there is no /boot
> +        # partition, / must be on a single PV, so check for that here
> +        if self.stage2_device.type == "lvmlv":
> +            try:
> +                self.stage2_device._getSinglePV()
> +                valid = True
> +            except SinglePhysicalVolumeError as e:
> +                msg = str(e)
> +                self.errors.append(msg)
> +                valid = False
> +
>          log.debug("is_valid_stage2_device(%s) returning %s" % (device.name,
>                                                                  valid))
>          return valid




More information about the anaconda-patches mailing list