[anaconda][rhel7-branch/master][PATCH] Show environment specified in kickstart as selected in the GUI (#1087831)

Martin Kolman mkolman at redhat.com
Mon Sep 29 12:02:35 UTC 2014


On Fri, 2014-09-26 at 14:18 -0400, Anne Mulhern wrote:
> 
> 
> 
> ----- Original Message -----
> > From: "Martin Kolman" <mkolman at redhat.com>
> > To: anaconda-patches at lists.fedorahosted.org
> > Sent: Friday, September 26, 2014 1:18:31 PM
> > Subject: [anaconda][rhel7-branch/master][PATCH] Show environment specified in	kickstart as selected in the GUI
> > (#1087831)
> > 
> > Previously the environment name from kickstart was not properly normalized,
> > so it did not match on available environments and was not selected in
> > the software spoke.
> > 
> > Also fix the spoke status not showing the environment name until the software
> > spoke
> > is first entered.
> > 
> > Resolves: rhbz#1087831
> > Signed-off-by: Martin Kolman <mkolman at redhat.com>
> > ---
> >  pyanaconda/ui/gui/spokes/software.py | 29 +++++++++++++++++++++++++----
> >  1 file changed, 25 insertions(+), 4 deletions(-)
> > 
> > diff --git a/pyanaconda/ui/gui/spokes/software.py
> > b/pyanaconda/ui/gui/spokes/software.py
> > index b37114c..e8e1a31 100644
> > --- a/pyanaconda/ui/gui/spokes/software.py
> > +++ b/pyanaconda/ui/gui/spokes/software.py
> > @@ -23,7 +23,7 @@ from gi.repository import Gdk
> >  
> >  from pyanaconda.flags import flags
> >  from pyanaconda.i18n import _, N_
> > -from pyanaconda.packaging import PackagePayload, payloadMgr
> > +from pyanaconda.packaging import PackagePayload, payloadMgr, NoSuchGroup
> >  from pyanaconda.threads import threadMgr, AnacondaThread
> >  from pyanaconda import constants, iutil
> >  
> > @@ -201,7 +201,17 @@ class SoftwareSelectionSpoke(NormalSpoke):
> >              # they did an install without a desktop environment.  This
> >              should
> >              # catch that one case.
> >              if flags.automatedInstall and self.data.packages.seen:
> > -                return _("Custom software selected")
> > +                # the environment store that is normally used to obtain the
> > currently
> > +                # selected environment name is not loaded before the
> > software spoke
> > +                # is first entered, so we show the name directly in such
> > case
> > +                early_environment = _("Custom software selected")
> > +                if self.environment is not None:
> > +                    try:
> > +                        early_environment =
> > self.payload.environmentDescription(self.environment)[0]
> > +                    except NoSuchGroup:
> > +                        # the currently set environment is unknown to our
> > packaging backend
> > +                        early_environment = _("Unknown custom software
> > selected")
> > +                return early_environment
> >  
> >              return _("Nothing selected")
> >  
> > @@ -241,8 +251,19 @@ class SoftwareSelectionSpoke(NormalSpoke):
> >          threadMgr.wait(constants.THREAD_PAYLOAD)
> >  
> >          self._environmentStore.clear()
> > -        if self.environment not in self.payload.environments:
> > +        # check if currently set environment is compatible with the
> > currently available environments
> > +        normalized_environments =
> > [self.payload.environmentDescription(env)[0] for env in
> > self.payload.environments]
> > +
> > +        # the environment might be totally unknown to our packaging backend
> > +        try:
> > +            current_normalized_environment =
> > self.payload.environmentDescription(self.environment)[0]
> > +        except NoSuchGroup:
> > +            current_normalized_environment = None
> > +
> 
> Please move the definition of normalized_environments down here, next to its use.
Fixing locally.
> 
> > +        if not current_normalized_environment or
> > current_normalized_environment not in normalized_environments:
> > +            # environment is invalid, clear it
> >              self.environment = None
> > +            current_normalized_environment = None
> >  
> >          firstEnvironment = True
> >          for environment in self.payload.environments:
> > @@ -254,7 +275,7 @@ class SoftwareSelectionSpoke(NormalSpoke):
> >              #     time this spoke was displayed; or
> >              # (2) Select the first environment given by display order as the
> >              #     default if nothing is selected.
> > -            if (environment == self.environment) or \
> > +            if (name == current_normalized_environment) or \
> >                 (not self.environment and firstEnvironment):
> >                  self.environment = environment
> >                  sel = self.builder.get_object("environmentSelector")
> > --
> > 1.9.3
> > 
> > _______________________________________________
> > anaconda-patches mailing list
> > anaconda-patches at lists.fedorahosted.org
> > https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches
> > 
> 
> I can't really ack it, I don't know enough about this screen or its use.
> 
> - mulhern
> _______________________________________________
> anaconda-patches mailing list
> anaconda-patches at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches




More information about the anaconda-patches mailing list