def get_quit_message(): if eula_available(): return N_("Are you sure you want to quit the configuration process?\n" "You might end up with an unusable system if you do. Unless the " "License agreement is accepted, the system will be rebooted.") else: return N_("Are you sure you want to quit the configuration process?\n" "You might end up with unusable system if you do.")
def should_run(cls, environment, data): # the EULA spoke should only run if both are true: # - we are running in Initial Setup # - an EULA is available if eula_available() and FirstbootOnlySpokeMixIn.should_run(environment, data): # don't run if we are in reconfig mode and the EULA has already been accepted if data and data.firstboot.firstboot == FIRSTBOOT_RECONFIG and data.eula.agreed: log.debug("not running license spoke: reconfig mode & license already accepted") return False return True return False
def run(self): """Run Initial setup :param bool gui_mode: if GUI should be used (TUI is the default) :returns: True if the IS run was successful, False if it failed :rtype: bool """ # also register boss shutdown & DBUS session cleanup via exit handler atexit.register(self._dbus_launcher.stop) # start dbus session (if not already running) and run boss in it try: self._dbus_launcher.start() except TimeoutError as e: log.error(str(e)) return True self._load_kickstart() self._setup_locale() self._initialize_network() if self.gui_mode: try: # Try to import IS gui specifics log.debug("trying to import GUI") import initial_setup.gui except ImportError: log.exception("GUI import failed, falling back to TUI") self.gui_mode = False if self.gui_mode: # gui already imported (see above) # Add addons to search paths initial_setup.gui.InitialSetupGraphicalUserInterface.update_paths( self._addon_module_paths) # Initialize the UI log.debug("initializing GUI") ui = initial_setup.gui.InitialSetupGraphicalUserInterface() else: # Import IS gui specifics import initial_setup.tui # Add addons to search paths initial_setup.tui.InitialSetupTextUserInterface.update_paths( self._addon_module_paths) # Initialize the UI log.debug("initializing TUI") ui = initial_setup.tui.InitialSetupTextUserInterface() # Pass the data object to user interface log.debug("setting up the UI") ui.setup(self.data) # Start the application log.info("starting the UI") ret = ui.run() # we need to reboot the machine if there is an EULA, that was not agreed if eula_available() and not self.data.eula.agreed: log.warning( "EULA has not been agreed - the system will be rebooted.") self._reboot_on_quit = True # TUI returns False if the app was ended prematurely # all other cases return True or None if ret is False: log.warning("ended prematurely in TUI") return True # apply changes self._apply() # in the TUI mode shutdown the multi TTY handler if not self.gui_mode: # TODO: wait for this to finish or make it blockng ? ui.multi_tty_handler.shutdown() # and we are done return True