def prompt(self, args=None): incompleteSpokes = [ spoke for spoke in self._keys.values() if spoke.mandatory and not spoke.completed ] # do a bit of final sanity checking, make sure pkg selection # size < available fs space if flags.automatedInstall: if self._checker and not self._checker.check(): print(self._checker.error_message) if not incompleteSpokes: self.close() return None if flags.ksprompt: for spoke in incompleteSpokes: log.info("kickstart installation stopped for info: %s", spoke.title) else: errtxt = _("The following mandatory spokes are not completed:") + \ "\n" + "\n".join(spoke.title for spoke in incompleteSpokes) log.error("CmdlineError: %s", errtxt) raise CmdlineError(errtxt) # override the default prompt since we want to offer the 'b' to begin # installation option here return _( " Please make your choice from above ['q' to quit | 'b' to begin installation |\n 'r' to refresh]: " )
def prompt(self, args=None): incomplete_spokes = [ spoke for spoke in self._spokes.values() if spoke.mandatory and not spoke.completed ] # Kickstart space check failure either stops the automated install or # raises an error when using cmdline mode. # # For non-cmdline, prompt for input but continue to treat it as an # automated install. The spokes (in particular software selection, # which expects an environment for interactive install) will continue # to behave the same, so the user can hit 'b' at the prompt and ignore # the warning. if flags.automatedInstall and not incomplete_spokes: # Check the available space. if flags.ksprompt and self._checker and not self._checker.check(): # Space is not ok. print(self._checker.error_message) log.error(self._checker.error_message) # Unset the checker so everything passes next time. self._checker = None # TRANSLATORS: 'b' to begin installation print( _("Enter '%s' to ignore the warning and attempt to install anyway." ) % # TRANSLATORS: 'b' to begin installation C_("TUI|Spoke Navigation", "b")) else: # Space is ok and spokes are complete, continue. self.close() return None # cmdline mode and incomplete spokes raises and error if not flags.ksprompt and incomplete_spokes: errtxt = _("The following mandatory spokes are not completed:") + \ "\n" + "\n".join(spoke.title for spoke in incomplete_spokes) log.error("CmdlineError: %s", errtxt) raise CmdlineError(errtxt) # if we ever need to halt the flow of a ks install to prompt users for # input, flip off the automatedInstall flag -- this way installation # does not automatically proceed once all spokes are complete, and a # user must confirm they want to begin installation if incomplete_spokes: flags.automatedInstall = False # override the default prompt since we want to offer the 'b' to begin # installation option here prompt = super().prompt(args) # this screen cannot be closed prompt.remove_option(Prompt.CONTINUE) # TRANSLATORS: 'b' to begin installation prompt.add_option(C_("TUI|Spoke Navigation", "b"), _("to begin installation")) return prompt
def prompt(self, args=None): incompleteSpokes = [ spoke for spoke in self._keys.values() if spoke.mandatory and not spoke.completed ] if flags.automatedInstall and not incompleteSpokes: self.close() return None if not flags.ksprompt: errtxt = _("The following mandatory spokes are not completed:") + \ "\n" + "\n".join(spoke.title for spoke in incompleteSpokes) log.error("CmdlineError: %s" % errtxt) raise CmdlineError(errtxt) # if we ever need to halt the flow of a ks install to prompt users for # input, flip off the automatedInstall flag -- this way installation # does not automatically proceed once all spokes are complete, and a # user must confirm they want to begin installation flags.automatedInstall = False # override the default prompt since we want to offer the 'b' to begin # installation option here return _( " Please make your choice from above ['q' to quit | 'b' to begin installation |\n 'r' to refresh]: " )
def prompt(self, args=None): incompleteSpokes = [spoke for spoke in self._keys.values() if spoke.mandatory and not spoke.completed] # Kickstart space check failure either stops the automated install or # raises an error when using cmdline mode. # # For non-cmdline, prompt for input but continue to treat it as an # automated install. The spokes (in particular software selection, # which expects an environment for interactive install) will continue # to behave the same, so the user can hit 'b' at the prompt and ignore # the warning. if flags.automatedInstall and self._checker and not self._checker.check(): print(self._checker.error_message) log.error(self._checker.error_message) # Unset the checker so everything passes next time self._checker = None if not flags.ksprompt: return None else: # TRANSLATORS: 'b' to begin installation print(_("Enter '%s' to ignore the warning and attempt to install anyway.") % # TRANSLATORS: 'b' to begin installation C_("TUI|Spoke Navigation", "b") ) elif flags.automatedInstall and not incompleteSpokes: # Space is ok and spokes are complete, continue self.close() return None # cmdline mode and incomplete spokes raises and error if not flags.ksprompt and incompleteSpokes: errtxt = _("The following mandatory spokes are not completed:") + \ "\n" + "\n".join(spoke.title for spoke in incompleteSpokes) log.error("CmdlineError: %s", errtxt) raise CmdlineError(errtxt) # if we ever need to halt the flow of a ks install to prompt users for # input, flip off the automatedInstall flag -- this way installation # does not automatically proceed once all spokes are complete, and a # user must confirm they want to begin installation if incompleteSpokes: flags.automatedInstall = False # override the default prompt since we want to offer the 'b' to begin # installation option here return _(" Please make your choice from above ['%(quit)s' to quit | '%(begin)s' to begin installation |\n '%(refresh)s' to refresh]: ") % { # TRANSLATORS: 'q' to quit 'quit': C_('TUI|Spoke Navigation', 'q'), # TRANSLATORS: 'b' to begin installation 'begin': C_('TUI|Spoke Navigation', 'b'), # TRANSLATORS: 'r' to refresh 'refresh': C_('TUI|Spoke Navigation', 'r') }
def prompt(self, args=None): incompleteSpokes = [spoke for spoke in self._keys.values() if spoke.mandatory and not spoke.completed] if flags.automatedInstall and not incompleteSpokes: self.close() return None if not flags.ksprompt: errtxt = _("The following mandatory spokes are not completed:") + \ "\n" + "\n".join(spoke.title for spoke in incompleteSpokes) log.error("CmdlineError: %s", errtxt) raise CmdlineError(errtxt) return TUIHub.prompt(self, args)
def _handleMissing(self, exn): log.info("%s %s" % (self.__class__.__name__, inspect.stack()[0][3])) if self.data.packages.handleMissing == KS_MISSING_IGNORE: return # If we're doing non-interactive ks install, raise CmdlineError, # otherwise the system will just reboot automatically if flags.automatedInstall and not flags.ksprompt: errtxt = _("CmdlineError: Missing package: %s") % str(exn) log.error(errtxt) raise CmdlineError(errtxt) elif errorHandler.cb(exn) == ERROR_RAISE: # The progress bar polls kind of slowly, thus installation could # still continue for a bit before the quit message is processed. # Let's sleep forever to prevent any further actions and wait for # the main thread to quit the process. progressQ.send_quit(1) while True: time.sleep(100000)
def prompt(self, args=None): incompleteSpokes = [ spoke for spoke in self._keys.values() if spoke.mandatory and not spoke.completed ] # do a bit of final sanity checking, make sure pkg selection # size < available fs space if flags.automatedInstall: if self._checker and not self._checker.check(): print(self._checker.error_message) if not incompleteSpokes: self.close() return None if flags.ksprompt: for spoke in incompleteSpokes: log.info("kickstart installation stopped for info: %s", spoke.title) else: errtxt = _("The following mandatory spokes are not completed:") + \ "\n" + "\n".join(spoke.title for spoke in incompleteSpokes) log.error("CmdlineError: %s", errtxt) raise CmdlineError(errtxt) # if we ever need to halt the flow of a ks install to prompt users for # input, flip off the automatedInstall flag -- this way installation # does not automatically proceed once all spokes are complete, and a # user must confirm they want to begin installation flags.automatedInstall = False # override the default prompt since we want to offer the 'b' to begin # installation option here return _( " Please make your choice from above ['%(quit)s' to quit | '%(begin)s' to begin installation |\n '%(refresh)s' to refresh]: " ) % { # TRANSLATORS: 'q' to quit 'quit': C_('TUI|Spoke Navigation', 'q'), # TRANSLATORS: 'b' to begin installation 'begin': C_('TUI|Spoke Navigation', 'b'), # TRANSLATORS: 'r' to refresh 'refresh': C_('TUI|Spoke Navigation', 'r') }