[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