diff --git a/AUTHORS.rst b/AUTHORS.rst index 93b36f2..9d9ded7 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -3,6 +3,7 @@ Authors The list of contributors in alphabetical order: +- `Adelina Lintuluoto `_ - `Daniel Prelipcean `_ - `Diego Rodriguez `_ - `Dinos Kousidis `_ diff --git a/CHANGES.rst b/CHANGES.rst index e3ee6d6..a73f9b4 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -10,6 +10,7 @@ Version master (UNRELEASED) - Performs workflow specification load logic. Before in ``reana-client``. - Adds VOMS proxy support as a new authentication method. - Add Black formatter support. +- Adds initfiles as an operational option for Yadage. Version 0.6.1 (2020-05-25) -------------------------- diff --git a/reana_workflow_engine_yadage/cli.py b/reana_workflow_engine_yadage/cli.py index 65fac34..654c570 100644 --- a/reana_workflow_engine_yadage/cli.py +++ b/reana_workflow_engine_yadage/cli.py @@ -13,6 +13,7 @@ import json import logging import os +import yaml import click import yadageschemas @@ -53,6 +54,12 @@ def load_yadage_operational_options(ctx, param, operational_options): operational_options["initdir"] = os.path.join( workflow_workspace, operational_options.get("initdir", "") ) + + operational_options["initfiles"] = [ + os.path.join(workflow_workspace, initfile) + for initfile in operational_options.get("initfiles", []) + ] + return operational_options @@ -123,12 +130,18 @@ def run_yadage_workflow( ) workflow_kwargs = dict(workflow_json=workflow_json) dataopts = {"initdir": operational_options["initdir"]} + + initdata = {} + for initfile in operational_options["initfiles"]: + initdata.update(**yaml.safe_load(open(initfile))) + initdata.update(workflow_parameters) + check_connection_to_job_controller() with steering_ctx( dataarg=workflow_workspace, dataopts=dataopts, - initdata=workflow_parameters if workflow_parameters else {}, + initdata=initdata, visualize=True, updateinterval=5, loginterval=5, diff --git a/setup.py b/setup.py index bfd4f38..7aa8ebd 100644 --- a/setup.py +++ b/setup.py @@ -59,6 +59,7 @@ "yadage==0.20.1", "yadage-schemas==0.10.6", "webcolors==1.9.1", # FIXME remove once yadage-schemas solves yadage deps. + "checksumdir>=1.1.4,<1.2", ] packages = find_packages()