[PATCH 1/4] setup bootloader and partitioning for kickstart

Vratislav Podzimek vpodzime at redhat.com
Fri Jul 20 07:45:25 UTC 2012


On Thu, 2012-07-19 at 18:33 -0700, Brian C. Lane wrote:
> From: "Brian C. Lane" <bcl at redhat.com>
> 
> after executing the kickstart commands setup the bootloader and
> partitions before continuing. Also add logging of any errors found
> by storage.sanityCheck
> ---
>  pyanaconda/kickstart.py             |    7 +++++--
>  pyanaconda/storage/__init__.py      |    4 ++++
>  pyanaconda/ui/gui/spokes/storage.py |    7 +++++++
>  3 files changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
> index 91785d7..fddb6a8 100644
> --- a/pyanaconda/kickstart.py
> +++ b/pyanaconda/kickstart.py
> @@ -24,6 +24,7 @@ from storage.devices import LUKSDevice
>  from storage.devicelibs.lvm import getPossiblePhysicalExtents
>  from storage.devicelibs.mpath import MultipathConfigWriter, MultipathTopology
>  from storage.formats import getFormat
> +from storage.partitioning import doPartitioning
>  import storage.iscsi
>  import storage.fcoe
>  import storage.zfcp
> @@ -1543,9 +1544,11 @@ def doKickstartStorage(storage, ksdata, instClass):
>      ksdata.clearpart.execute(storage, ksdata, instClass)
>      ksdata.bootloader.execute(storage, ksdata, instClass)
>      ksdata.autopart.execute(storage, ksdata, instClass)
> -    ksdata.btrfs.execute(storage, ksdata, instClass)
> +    ksdata.partition.execute(storage, ksdata, instClass)
>      ksdata.raid.execute(storage, ksdata, instClass)
>      ksdata.volgroup.execute(storage, ksdata, instClass)
>      ksdata.logvol.execute(storage, ksdata, instClass)
> -    ksdata.partition.execute(storage, ksdata, instClass)
> +    ksdata.btrfs.execute(storage, ksdata, instClass)
> +    storage.setUpBootLoader()
> +    doPartitioning(storage)
>  
> diff --git a/pyanaconda/storage/__init__.py b/pyanaconda/storage/__init__.py
> index 758a765..65a691d 100644
> --- a/pyanaconda/storage/__init__.py
> +++ b/pyanaconda/storage/__init__.py
> @@ -97,6 +97,10 @@ def storageInitialize(storage, ksdata, protected):
>      if not storage.disks:
>          raise NoDisksError
>  
> +    # kickstart uses all the disks
> +    if flags.automatedInstall:
> +        ksdata.ignoredisk.onlyuse = [d.name for d in storage.disks]
> +
>  # dispatch.py helper function
>  def storageComplete(anaconda):
>      devs = anaconda.storage.devicetree.getDevicesByType("luks/dm-crypt")
> diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py
> index 924bce2..888de2c 100644
> --- a/pyanaconda/ui/gui/spokes/storage.py
> +++ b/pyanaconda/ui/gui/spokes/storage.py
> @@ -60,6 +60,9 @@ _ = lambda x: gettext.ldgettext("anaconda", x)
>  N_ = lambda x: x
>  P_ = lambda x, y, z: gettext.ldngettext("anaconda", x, y, z)
>  
> +import logging
> +log = logging.getLogger("anaconda")
> +
>  __all__ = ["StorageSpoke"]
>  
>  class FakeDiskLabel(object):
> @@ -246,6 +249,10 @@ class StorageChecker(object):
>          (StorageChecker.errors,
>           StorageChecker.warnings) = self.storage.sanityCheck()
>          communication.send_ready(self._mainSpokeClass, justUpdate=True)
> +        for e in self.errors:
> +            log.error(e)
> +        for w in self.warnings:
> +            log.warn(w)
Shouldn't these iterations be over StorageChecker.errors and
StorageChecker.warnings?

-- 
Vratislav Podzimek

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



More information about the anaconda-patches mailing list