[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [PATCH 2/2] Use None to indicate use of default value for clearPartType in UI (#503310, #503681).



> > I am working on fix, wondering if the shouldClear check is worth being 
> > there.
> > Another case where we probably stumble over it is when doing "Back"s 
> > to the
> > welcome page. Seems like we need to save original ks clearpart choice
> > somewhere for doing UI preselection properly in these cases - it's 
> > getting ugly.
> 
> I fixed PATCH 2/2 (attached) this way:
> - set clearPartType to None before resetting storage when going [Back] 
> from partition editor
> - do not set clearPartType in parttype dialog just to set preselected 
> combobox value which was stupid, clearPartType should be set only after 
> [Next]

This sounds like a definite improvement. For rawhide/master, I think you
should go ahead and commit if you're satisfied with your testing.

Dave

> 
> 
> plain text document attachment
> (0002-Use-None-to-indicate-use-of-default-value-for-clearP.patch)
> >From b5ddbd6e5adb81c50025a7f5dbb7b3f3eefeb48e Mon Sep 17 00:00:00 2001
> From: Radek Vykydal <rvykydal redhat com>
> Date: Tue, 2 Jun 2009 20:42:36 +0200
> Subject: [PATCH 2/2] Use None to indicate use of default value for clearPartType in UI (#503310, #503681).
> 
> If we are to set clearPartType in "parttype" UI (there is no clearpart in KS), set it really there,
> instead of setting it to CLEARPART_TYPE_NONE just to pass storage device discovery checks
> which are done between ks processing and UI parttype.
> ---
>  installclass.py          |    9 +--------
>  installclasses/fedora.py |    3 +--
>  installclasses/rhel.py   |    3 +--
>  iw/autopart_type.py      |   13 +++++++------
>  iw/partition_gui.py      |    1 +
>  kickstart.py             |    2 +-
>  storage/__init__.py      |    4 ++--
>  storage/partitioning.py  |    2 +-
>  textw/partition_text.py  |    2 ++
>  9 files changed, 17 insertions(+), 22 deletions(-)
> 
> diff --git a/installclass.py b/installclass.py
> index 913444f..d0f535d 100644
> --- a/installclass.py
> +++ b/installclass.py
> @@ -187,8 +187,7 @@ class BaseInstallClass(object):
>          from backend import AnacondaBackend
>          return AnacondaBackend
>  
> -    def setDefaultPartitioning(self, storage, platform,
> -                               clear = CLEARPART_TYPE_LINUX, doClear = True):
> +    def setDefaultPartitioning(self, storage, platform):
>          autorequests = [PartSpec(mountpoint="/", fstype=storage.defaultFSType,
>                                   size=1024, grow=True, asVol=True)]
>  
> @@ -200,12 +199,6 @@ class BaseInstallClass(object):
>          autorequests.append(PartSpec(fstype="swap", size=minswap, maxSize=maxswap,
>                                       grow=True, asVol=True))
>  
> -        if doClear:
> -            storage.clearPartType = clear
> -            storage.clearPartDisks = []
> -        else:
> -            storage.clearPartType = CLEARPART_TYPE_NONE
> -
>          storage.autoPartitionRequests = autorequests
>  
> 
> diff --git a/installclasses/fedora.py b/installclasses/fedora.py
> index 9c97390..98002ed 100644
> --- a/installclasses/fedora.py
> +++ b/installclasses/fedora.py
> @@ -63,8 +63,7 @@ class InstallClass(BaseInstallClass):
>  	BaseInstallClass.setInstallData(self, anaconda)
>          BaseInstallClass.setDefaultPartitioning(self,
>                                                  anaconda.id.storage,
> -                                                anaconda.platform,
> -                                                CLEARPART_TYPE_NONE)
> +                                                anaconda.platform)
>  
>      def setSteps(self, anaconda):
>  	BaseInstallClass.setSteps(self, anaconda);
> diff --git a/installclasses/rhel.py b/installclasses/rhel.py
> index aa3590d..5c0d715 100644
> --- a/installclasses/rhel.py
> +++ b/installclasses/rhel.py
> @@ -89,8 +89,7 @@ class InstallClass(BaseInstallClass):
>  	BaseInstallClass.setInstallData(self, anaconda)
>          BaseInstallClass.setDefaultPartitioning(self, 
>                                                  anaconda.id.storage,
> -                                                anaconda.platform,
> -                                                CLEARPART_TYPE_NONE)
> +                                                anaconda.platform)
>  
>      def setSteps(self, anaconda):
>          dispatch = anaconda.dispatch
> diff --git a/iw/autopart_type.py b/iw/autopart_type.py
> index bb71401..f192d6a 100644
> --- a/iw/autopart_type.py
> +++ b/iw/autopart_type.py
> @@ -444,15 +444,16 @@ class PartitionTypeWindow(InstallWindow):
>                  (_("Use free space"), CLEARPART_TYPE_NONE),
>                  (_("Create custom layout"), -1))
>  
> -        # Default for UI is Remove linux partitions, so if we
> -        # haven't specified something else in ks, set this default.
> -        # This is not correct if we specify clearpart --none in ks.
> -        if self.storage.clearPartType == CLEARPART_TYPE_NONE:
> -            self.storage.clearPartType = CLEARPART_TYPE_LINUX
> +        # if not set in ks, use UI default
> +        if self.storage.clearPartType is None:
> +            preselected = CLEARPART_TYPE_LINUX
> +        else:
> +            preselected = self.storage.clearPartType 
> +
>          for (txt, val) in opts:
>              iter = store.append(None)
>              store[iter] = (txt, val)
> -            if val == self.storage.clearPartType:
> +            if val == preselected:
>                  self.combo.set_active_iter(iter)
>  
>          if ((self.combo.get_active() == -1) or
> diff --git a/iw/partition_gui.py b/iw/partition_gui.py
> index 9968f07..b97a49b 100644
> --- a/iw/partition_gui.py
> +++ b/iw/partition_gui.py
> @@ -664,6 +664,7 @@ class PartitionWindow(InstallWindow):
>  
>      def getPrev(self):
>          self.diskStripeGraph.shutDown()
> +        self.storage.clearPartType = None
>          self.storage.reset()
>          self.tree.clear()
>          del self.parent
> diff --git a/kickstart.py b/kickstart.py
> index 474ecec..ce63068 100644
> --- a/kickstart.py
> +++ b/kickstart.py
> @@ -147,7 +147,7 @@ class AutoPart(commands.autopart.F9_AutoPart):
>  
>          # sets up default autopartitioning.  use clearpart separately
>          # if you want it
> -        self.handler.id.instClass.setDefaultPartitioning(self.handler.id.storage, self.handler.anaconda.platform, doClear=False)
> +        self.handler.id.instClass.setDefaultPartitioning(self.handler.id.storage, self.handler.anaconda.platform)
>          self.handler.id.storage.doAutoPart = True
>  
>          if self.encrypted:
> diff --git a/storage/__init__.py b/storage/__init__.py
> index 41f09e2..a364bf8 100644
> --- a/storage/__init__.py
> +++ b/storage/__init__.py
> @@ -202,7 +202,7 @@ class Storage(object):
>          self.ignoredDisks = []
>          self.exclusiveDisks = []
>          self.doAutoPart = False
> -        self.clearPartType = CLEARPART_TYPE_NONE
> +        self.clearPartType = None
>          self.clearPartDisks = []
>          self.encryptedAutoPart = False
>          self.encryptionPassphrase = None
> @@ -965,7 +965,7 @@ class Storage(object):
>          f.write("# not guaranteed to work\n")
>  
>          # clearpart
> -        if self.clearPartType == CLEARPART_TYPE_NONE:
> +        if self.clearPartType is None or self.clearPartType == CLEARPART_TYPE_NONE:
>              args = ["--none"]
>          elif self.clearPartType == CLEARPART_TYPE_LINUX:
>              args = ["--linux"]
> diff --git a/storage/partitioning.py b/storage/partitioning.py
> index 8e9ab3c..de3e3e5 100644
> --- a/storage/partitioning.py
> +++ b/storage/partitioning.py
> @@ -306,7 +306,7 @@ def clearPartitions(storage):
>              - Needs some error handling, especially for the parted bits.
>  
>      """
> -    if storage.clearPartType == CLEARPART_TYPE_NONE:
> +    if storage.clearPartType is None or storage.clearPartType == CLEARPART_TYPE_NONE:
>          # not much to do
>          return
>  
> diff --git a/textw/partition_text.py b/textw/partition_text.py
> index 48b7c18..5b97ed2 100644
> --- a/textw/partition_text.py
> +++ b/textw/partition_text.py
> @@ -67,6 +67,8 @@ class PartitionTypeWindow:
>              for (txt, val) in opts:
>                  typebox.append(txt, val)
>  
> +            if anaconda.id.storage.clearPartType is None:
> +                anaconda.id.storage.clearPartType = CLEARPART_TYPE_LINUX
>              typebox.setCurrent(anaconda.id.storage.clearPartType)
>  
>              g.add(typebox, 0, 1, (0, 1, 0, 0))
> _______________________________________________
> Anaconda-devel-list mailing list
> Anaconda-devel-list redhat com
> https://www.redhat.com/mailman/listinfo/anaconda-devel-list


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]