[master/rhel7-branch] Fix q for quit issue in text mode (#997405)

Samantha N. Bueno sbueno+anaconda at redhat.com
Mon Sep 8 13:11:04 UTC 2014


On Mon, Sep 08, 2014 at 03:03:38PM +0200, Vratislav Podzimek wrote:
> On Mon, 2014-09-08 at 09:00 -0400, Samantha N. Bueno wrote:
> > Pressing 'q' to quit the installer in the ask VNC spoke of text mode was
> > not working. We can't rely on the global handling of this input,
> > unfortunately, since the installation environment is not set up at this
> > point. But, this should be a relatively simple way of adding the
> > functionality.
> > 
> > Resolves: rhbz#997405
> > ---
> >  pyanaconda/ui/tui/spokes/askvnc.py | 35 +++++++++++++++++++++--------------
> >  1 file changed, 21 insertions(+), 14 deletions(-)
> > 
> > diff --git a/pyanaconda/ui/tui/spokes/askvnc.py b/pyanaconda/ui/tui/spokes/askvnc.py
> > index 200a5a6..52548f4 100644
> > --- a/pyanaconda/ui/tui/spokes/askvnc.py
> > +++ b/pyanaconda/ui/tui/spokes/askvnc.py
> > @@ -21,9 +21,10 @@
> >  
> >  from pyanaconda.ui.tui.spokes import NormalTUISpoke
> >  from pyanaconda.ui.tui.simpleline import TextWidget, ColumnWidget
> > +from pyanaconda.ui.tui.tuiobject import YesNoDialog
> >  from pyanaconda.constants import USEVNC, USETEXT
> >  from pyanaconda.i18n import N_, _
> > -import getpass
> > +import getpass, subprocess
> >  
> >  class AskVNCSpoke(NormalTUISpoke):
> >      title = N_("VNC")
> > @@ -68,22 +69,28 @@ class AskVNCSpoke(NormalTUISpoke):
> >          """Override input so that we can launch the VNC password spoke"""
> >  
> >          try:
> > -            number = int(key)
> > -            choice = self._choices[number -1]
> > +            choice = self._choices[int(key) - 1]
> > +            if choice == USETEXT:
> > +                self._usevnc = False
> > +            else:
> > +                self._usevnc = True
> > +                newspoke = VNCPassSpoke(self.app, self.data, self.storage,
> > +                                        self.payload, self.instclass)
> > +                self.app.switch_screen_modal(newspoke)
> > +
> > +            self.apply()
> > +            self.close()
> > +            return None
> >          except (ValueError, KeyError, IndexError):
> > -            return key
> > +            pass
> >  
> > -        if choice == USETEXT:
> > -            self._usevnc = False
> > +        if key.lower() == _('q'):
> > +            d = YesNoDialog(self.app, _(self.app.quit_message))
> > +            self.app.switch_screen_modal(d)
> > +            if d.answer:
> > +                subprocess.Popen(["systemctl", "--no-wall", "reboot"])
> Is there any reason for rebooting system directly instead of calling
> sys.exit(1) and leaving it to the exit handler? The code above doesn't
> respect the inst.nokill option, for example.

Yes, if I call sys.exit then I just get "Pane is dead". Nothing of the
installation environment is really set up at this point.

Samantha
 
> -- 
> Vratislav Podzimek
> 
> Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic
> 
> _______________________________________________
> 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