Skip to content

Commit c564934

Browse files
author
Yngve S. Kristiansen
committed
fixup simulator fm special casing
1 parent ff2eb0c commit c564934

3 files changed

Lines changed: 32 additions & 23 deletions

File tree

src/ert/run_models/everest_run_model.py

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
)
4040
from ert.config.ert_config import (
4141
create_and_hook_workflows,
42+
forward_model_step_from_config_contents,
4243
read_templates,
4344
uppercase_subkeys_and_stringify_subvalues,
4445
workflow_jobs_from_dict,
@@ -296,12 +297,19 @@ def create(
296297

297298
user_installed_fm_steps = {}
298299
for job in everest_config.install_jobs:
299-
executable = Path(job.executable)
300-
if not executable.is_absolute():
301-
executable = everest_config.config_directory / executable
302-
user_installed_fm_steps[job.name] = ForwardModelStep(
303-
name=job.name, executable=str(executable)
304-
)
300+
if job.executable is not None:
301+
executable = Path(job.executable)
302+
if not executable.is_absolute():
303+
executable = everest_config.config_directory / executable
304+
user_installed_fm_steps[job.name] = ForwardModelStep(
305+
name=job.name, executable=str(executable)
306+
)
307+
elif job.source is not None:
308+
return forward_model_step_from_config_contents(
309+
config_contents=Path(job.source).read_text(encoding="utf-8"),
310+
config_file=job.source,
311+
name=job.name,
312+
)
305313

306314
site_installed_fm_steps = (
307315
runtime_plugins.installed_forward_model_steps
@@ -364,6 +372,17 @@ def create(
364372

365373
for fm_spec in everest_config.forward_model:
366374
fm_name, *arglist = fm_spec.job.split()
375+
match fm_name:
376+
# All three reservoir simulator fm_steps map to
377+
# "run_reservoirsimulator" which requires the simulator name
378+
# as its first argument.
379+
case "eclipse100":
380+
arglist = ["eclipse", *arglist]
381+
case "eclipse300":
382+
arglist = ["e300", *arglist]
383+
case "flow":
384+
arglist = ["flow", *arglist]
385+
367386
fm_cls = installed_fm_steps.get(fm_name)
368387
fm_instance = copy.deepcopy(fm_cls)
369388
fm_instance.arglist = arglist
@@ -374,7 +393,12 @@ def create(
374393
)
375394

376395
# tmpy tmpy
377-
assert forward_model_steps == forward_model_steps_old
396+
mismatch_fmsteps = [
397+
i
398+
for i in range(len(forward_model_steps))
399+
if str(forward_model_steps[i]) != str(forward_model_steps_old[i])
400+
]
401+
assert not mismatch_fmsteps
378402
assert env_pr_fm_step == env_pr_fm_step_old
379403

380404
env_vars = {}

src/everest/config/install_job_config.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
from __future__ import annotations
22

3-
from pathlib import Path
43
from textwrap import dedent
54

65
from pydantic import BaseModel, Field, model_validator
76

8-
from ert.config import ForwardModelStep, forward_model_step_from_config_contents
9-
107

118
class InstallJobConfig(BaseModel, extra="forbid"):
129
name: str = Field(
@@ -38,18 +35,6 @@ class InstallJobConfig(BaseModel, extra="forbid"):
3835
),
3936
)
4037

41-
def to_forward_model_step(self) -> ForwardModelStep:
42-
if self.executable is not None:
43-
return ForwardModelStep(
44-
name=self.name, executable=str(Path(self.executable).absolute())
45-
)
46-
elif self.source is not None:
47-
return forward_model_step_from_config_contents(
48-
config_contents=Path(self.source).read_text(encoding="utf-8"),
49-
config_file=self.source,
50-
name=self.name,
51-
)
52-
5338
@model_validator(mode="after")
5439
def validate_source_and_executable(self) -> InstallJobConfig:
5540
if self.source is None and self.executable is None:

tests/everest/test_logging.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
@pytest.mark.timeout(240) # Simulation might not finish
1919
@pytest.mark.integration_test
2020
@pytest.mark.xdist_group(name="starts_everest")
21-
@pytest.mark.usefixtures("no_plugins")
21+
@pytest.mark.usefixtures("use_site_configurations_with_no_queue_options")
2222
def test_logging_setup(copy_math_func_test_data_to_tmp):
2323
# Ensure no interference with plugins which may set queue system
2424
config_file = "config_minimal.yml"

0 commit comments

Comments
 (0)