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

Vratislav Podzimek vpodzime at redhat.com
Mon Sep 8 13:34:35 UTC 2014


On Mon, 2014-09-08 at 09:11 -0400, Samantha N. Bueno wrote:
> 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.
Okay, ACK then as entering 'q' is a kind of override even for the
'nokill' flag.

-- 
Vratislav Podzimek

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



More information about the anaconda-patches mailing list