From f90a338553b876fd99a67fc1e710923d84c24862 Mon Sep 17 00:00:00 2001 From: "Yngve S. Kristiansen" Date: Thu, 6 Feb 2025 09:05:37 +0100 Subject: [PATCH] Add workflow fixture: user_config_file --- src/ert/cli/workflow.py | 7 ++++++- src/ert/gui/tools/workflows/run_workflow_widget.py | 3 ++- src/ert/libres_facade.py | 1 + src/ert/run_models/base_run_model.py | 7 ++++++- src/ert/workflow_runner.py | 6 ++++-- 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/ert/cli/workflow.py b/src/ert/cli/workflow.py index c41806dda56..8321f8d95d1 100644 --- a/src/ert/cli/workflow.py +++ b/src/ert/cli/workflow.py @@ -20,7 +20,12 @@ def execute_workflow( msg = "Workflow {} is not in the list of available workflows" logger.error(msg.format(workflow_name)) return - runner = WorkflowRunner(workflow=workflow, storage=storage, ert_config=ert_config) + runner = WorkflowRunner( + workflow=workflow, + storage=storage, + ert_config=ert_config, + config_file=ert_config.user_config_file, + ) runner.run_blocking() if not all(v["completed"] for v in runner.workflowReport().values()): logger.error(f"Workflow {workflow_name} failed!") diff --git a/src/ert/gui/tools/workflows/run_workflow_widget.py b/src/ert/gui/tools/workflows/run_workflow_widget.py index 2fe3157f2c7..ce06a91c66f 100644 --- a/src/ert/gui/tools/workflows/run_workflow_widget.py +++ b/src/ert/gui/tools/workflows/run_workflow_widget.py @@ -125,9 +125,10 @@ def startWorkflow(self) -> None: workflow = self.config.workflows[self.getCurrentWorkflowName()] self._workflow_runner = WorkflowRunner( - workflow, + workflow=workflow, storage=self.storage, ensemble=self.source_ensemble_selector.currentData(), + config_file=self.config.user_config_file, ) self._workflow_runner.run() diff --git a/src/ert/libres_facade.py b/src/ert/libres_facade.py index 37b59792ee1..269a7a68040 100644 --- a/src/ert/libres_facade.py +++ b/src/ert/libres_facade.py @@ -223,6 +223,7 @@ def run_ertscript( # type: ignore "ert_config": self.config, "ensemble": ensemble, "storage": storage, + "config_file": self.config.user_config_file, }, ) diff --git a/src/ert/run_models/base_run_model.py b/src/ert/run_models/base_run_model.py index 0bba4d2c818..058745c217a 100644 --- a/src/ert/run_models/base_run_model.py +++ b/src/ert/run_models/base_run_model.py @@ -681,7 +681,12 @@ def run_workflows( ensemble: Ensemble | None = None, ) -> None: for workflow in self._hooked_workflows[runtime]: - WorkflowRunner(workflow, storage, ensemble).run_blocking() + WorkflowRunner( + workflow=workflow, + storage=storage, + ensemble=ensemble, + config_file=str(self._user_config_file), + ).run_blocking() def _evaluate_and_postprocess( self, diff --git a/src/ert/workflow_runner.py b/src/ert/workflow_runner.py index 232ed13a8f9..66a42e81c3b 100644 --- a/src/ert/workflow_runner.py +++ b/src/ert/workflow_runner.py @@ -107,6 +107,7 @@ class WorkflowRunner: def __init__( self, workflow: Workflow, + config_file: str | None = None, storage: Storage | None = None, ensemble: Ensemble | None = None, ert_config: ErtConfig | None = None, @@ -114,7 +115,8 @@ def __init__( self.__workflow = workflow self.storage = storage self.ensemble = ensemble - self.ert_config = ert_config + self.ert_config = ert_config # Should eventually be removed + self.config_file = config_file self.__workflow_result: bool | None = None self._workflow_executor = futures.ThreadPoolExecutor(max_workers=1) @@ -152,7 +154,7 @@ def run_blocking(self) -> None: self.__running = True fixtures = { k: getattr(self, k) - for k in ["storage", "ensemble", "ert_config"] + for k in ["storage", "ensemble", "ert_config", "config_file"] if getattr(self, k) }