diff --git a/pyanaconda/exception.py b/pyanaconda/exception.py index 28ee8c4aa56..5606bc8d8f5 100644 --- a/pyanaconda/exception.py +++ b/pyanaconda/exception.py @@ -33,7 +33,6 @@ from meh.dump import ReverseExceptionDump from meh.handler import ExceptionHandler -from pyanaconda import kickstart from pyanaconda.core import util from pyanaconda.core.async_utils import run_in_loop from pyanaconda.core.configuration.anaconda import conf @@ -41,12 +40,16 @@ from pyanaconda.core.product import get_product_is_final_release from pyanaconda.errors import NonInteractiveError from pyanaconda.core.i18n import _ +from pyanaconda.modules.common.constants.objects import SCRIPTS +from pyanaconda.modules.common.constants.services import RUNTIME from pyanaconda.modules.common.errors.storage import UnusableStorageError from pyanaconda.core.threads import thread_manager +from pyanaconda.modules.common.task import sync_run_task from pyanaconda.ui.communication import hubQ from simpleline import App from simpleline.event_loop.signals import ExceptionSignal +from pykickstart.constants import KS_SCRIPT_ONERROR, KS_SCRIPT_TRACEBACK from pyanaconda.anaconda_loggers import get_module_logger log = get_module_logger(__name__) @@ -241,8 +244,18 @@ def _run_kickstart_scripts(self, dump_info): anaconda = dump_info.object try: - util.runOnErrorScripts(anaconda.ksdata.scripts) - kickstart.runTracebackScripts(anaconda.ksdata.scripts) + scripts_proxy = RUNTIME.get_proxy(SCRIPTS) + + # OnError script call + onerror_task_path = scripts_proxy.RunScriptsWithTask(KS_SCRIPT_ONERROR) + onerror_task_proxy = RUNTIME.get_proxy(onerror_task_path) + sync_run_task(onerror_task_proxy) + + # Traceback script call + traceback_task_path = scripts_proxy.RunScriptsWithTask(KS_SCRIPT_TRACEBACK) + traceback_task_proxy = RUNTIME.get_proxy(traceback_task_path) + sync_run_task(traceback_task_proxy) + # pylint: disable=bare-except # ruff: noqa: E722 except: diff --git a/pyanaconda/modules/runtime/kickstart.py b/pyanaconda/modules/runtime/kickstart.py index 1e21acb9023..80488107a36 100644 --- a/pyanaconda/modules/runtime/kickstart.py +++ b/pyanaconda/modules/runtime/kickstart.py @@ -18,7 +18,8 @@ # Red Hat, Inc. # from pykickstart.parser import Script -from pykickstart.sections import PreScriptSection, PreInstallScriptSection, PostScriptSection +from pykickstart.sections import (PreScriptSection, PreInstallScriptSection, + PostScriptSection, TracebackScriptSection, OnErrorScriptSection) from pyanaconda.core.kickstart import KickstartSpecification, commands as COMMANDS from pyanaconda.kickstart import AnacondaKSScript @@ -50,4 +51,6 @@ class RuntimeKickstartSpecification(KickstartSpecification): "pre": lambda handler: PreScriptSection(handler, dataObj=AnacondaKSScript), "pre-install": lambda handler: PreInstallScriptSection(handler, dataObj=AnacondaKSScript), "post": lambda handler: PostScriptSection(handler, dataObj=AnacondaKSScript), + "onerror": lambda handler: OnErrorScriptSection(handler, dataObj=AnacondaKSScript), + "traceback": lambda handler: TracebackScriptSection(handler, dataObj=AnacondaKSScript), }