try: util.execWithRedirect("/sbin/auditd", []) except OSError: pass log.info("anaconda called with cmdline = %s", sys.argv) log.info("Default encoding = %s ", sys.getdefaultencoding()) # start dbus session (if not already running) and run boss in it anaconda.run_boss_with_dbus() # Collect all addon paths addon_paths = collect_addon_paths(constants.ADDON_PATHS) # Make sure that all DBus modules are ready. if not startup_utils.wait_for_modules(): stdout_log.error("Anaconda DBus modules failed to start on time.") util.ipmi_report(constants.IPMI_ABORTED) time.sleep(10) sys.exit(1) # If we were given a kickstart file on the command line, parse (but do not # execute) that now. Otherwise, load in defaults from kickstart files # shipped with the installation media. ksdata = startup_utils.parse_kickstart(opts, addon_paths, pass_to_boss=True) # Pick up any changes from interactive-defaults.ks that would # otherwise be covered by the dracut KS parser. if ksdata.bootloader.extlinux: flags.extlinux = True if ksdata.rescue.rescue:
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 """ # start Boss & our DBUS session self.run_boss_with_dbus() # also register boss shutdown & DBUS session cleanup via exit handler atexit.register(self.cleanup_dbus_session) # Make sure that all DBus modules are ready. if not startup_utils.wait_for_modules(timeout=30): log.error("Anaconda DBus modules failed to start on time.") return True self._load_kickstart() self._setup_locale() # initialize the screen access manager before launching the UI screen_access.initSAM() 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(None, None, PostInstallClass()) 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(None, None, None) # 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() # 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