[PATCH 2/2] Make Initial Setup compatible with rebased Anaconda (#1229747)
Vratislav Podzimek
vpodzime at redhat.com
Wed Jun 17 07:50:18 UTC 2015
On Tue, 2015-06-16 at 18:23 +0200, Martin Kolman wrote:
> Adapt to the changed category handling and other less significant
> changes such as root path handling. Also remove a couple unused
> imports when we are at it.
>
> Resolves: rhbz#1229747
> Signed-off-by: Martin Kolman <mkolman at redhat.com>
> ---
> initial_setup/__main__.py | 24 +++------
> initial_setup/common.py | 63 ++++++++++++++++++++++++
> initial_setup/gui/gui.py | 6 +--
> initial_setup/gui/hubs/initial_setup.glade | 27 +++++++----
> initial_setup/gui/hubs/initial_setup_hub.py | 75 ++---------------------------
> initial_setup/gui/spokes/eula.glade | 2 -
> initial_setup/gui/spokes/eula.py | 9 +++-
> initial_setup/post_installclass.py | 2 +-
> initial_setup/tui/hubs/initial_setup_hub.py | 11 +++--
> initial_setup/tui/spokes/eula.py | 3 +-
> initial_setup/tui/tui.py | 4 --
> 11 files changed, 110 insertions(+), 116 deletions(-)
> create mode 100644 initial_setup/common.py
>
> diff --git a/initial_setup/__main__.py b/initial_setup/__main__.py
> index 642e93c..d9e411f 100644
> --- a/initial_setup/__main__.py
> +++ b/initial_setup/__main__.py
> @@ -5,7 +5,7 @@ import signal
> import pykickstart
> import logging
> from pyanaconda.users import Users
> -from initial_setup.post_installclass import InstallClass
> +from initial_setup.post_installclass import PostInstallClass
> from initial_setup import initial_setup_log
> from pyanaconda import iutil
>
> @@ -35,14 +35,6 @@ if mode == "gui":
> gi.overrides.__path__.insert(0, p)
> log.debug("GI overrides imported")
>
> -# set the root path to / so the imported spokes
> -# know where to apply their changes
> -from pyanaconda import constants
> -
> -# this has to stay in the form constants.ROOT_PATH so it modifies
> -# the scalar in anaconda, not the local copy here
> -constants.ROOT_PATH = "/"
> -
> from pyanaconda.addons import collect_addon_paths
>
> addon_paths = ["/usr/share/initial-setup/modules", "/usr/share/anaconda/addons"]
> @@ -99,14 +91,14 @@ try:
> parser.readKickstart(INPUT_KICKSTART_PATH)
> log.info("kickstart parsing done")
> except pykickstart.errors.KickstartError as kserr:
> - log.exception("kickstart parsing failed")
> + log.exception("kickstart parsing failed: %s" % kserr)
> sys.exit(1)
>
> if mode == "gui":
> try:
> # Try to import IS gui specifics
> log.debug("trying to import GUI")
> - import gui
> + import initial_setup.gui
> except ImportError:
> log.exception("GUI import failed, falling back to TUI")
> mode = "tui"
> @@ -115,21 +107,21 @@ if mode == "gui":
> # gui already imported (see above)
>
> # Add addons to search paths
> - gui.InitialSetupGraphicalUserInterface.update_paths(addon_module_paths)
> + initial_setup.gui.InitialSetupGraphicalUserInterface.update_paths(addon_module_paths)
>
> # Initialize the UI
> log.debug("initializing GUI")
> - ui = gui.InitialSetupGraphicalUserInterface(None, None, InstallClass())
> + ui = initial_setup.gui.InitialSetupGraphicalUserInterface(None, None, PostInstallClass())
> else:
> # Import IS gui specifics
> - import tui
> + import initial_setup.tui
>
> # Add addons to search paths
> - tui.InitialSetupTextUserInterface.update_paths(addon_module_paths)
> + initial_setup.tui.InitialSetupTextUserInterface.update_paths(addon_module_paths)
>
> # Initialize the UI
> log.debug("initializing TUI")
> - ui = tui.InitialSetupTextUserInterface(None, None, None)
> + ui = initial_setup.tui.InitialSetupTextUserInterface(None, None, None)
>
> # Pass the data object to user inteface
> log.debug("setting up the UI")
> diff --git a/initial_setup/common.py b/initial_setup/common.py
> new file mode 100644
> index 0000000..ce8e5b1
> --- /dev/null
> +++ b/initial_setup/common.py
> @@ -0,0 +1,63 @@
> +"""Common methods for Initial Setup"""
> +
> +from pyanaconda.ui.common import collect
> +from pyanaconda.constants import FIRSTBOOT_ENVIRON
> +from pyanaconda.i18n import N_
> +from pyanaconda.ui.categories import SpokeCategory
> +
> +
> +def collect_spokes(mask_paths, spoke_parent_class):
> + """Return a list of all spoke subclasses that should appear for a given
> + category. Look for them in files imported as module_path % basename(f)
> +
> + :param mask_paths: list of mask, path tuples to search for classes
> + :type mask_paths: list of (mask, path)
> +
> + :param spoke_parent_class: Spoke parent class used for checking spoke compatibility
> + :type spoke_parent_class: GUI or TUI Spoke class
> +
> + :return: list of Spoke classes belonging to category
> + :rtype: list of Spoke classes
> +
> + """
> + spokes = []
> + for mask, path in mask_paths:
> +
Extra blank line.
> + spokes.extend(collect(mask, path,
> + lambda obj: issubclass(obj, spoke_parent_class) and obj.should_run("firstboot", None)))
> + return spokes
> +
--
Vratislav Podzimek
Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic
More information about the anaconda-patches
mailing list