Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yadage: prevent loading workflow spec on creation
Browse files Browse the repository at this point in the history
This logic is moved to r-w-e-yadage.
reanahub/reana-workflow-engine-yadage#150
mvidalgarcia committed Apr 7, 2020
1 parent 8f215c8 commit c27c364
Showing 5 changed files with 17 additions and 18 deletions.
2 changes: 1 addition & 1 deletion reana_client/cli/files.py
Original file line number Diff line number Diff line change
@@ -21,7 +21,7 @@
filter_data, parse_parameters)
from reana_client.config import ERROR_MESSAGES, JSON, URL
from reana_client.errors import FileDeletionError, FileUploadError
from reana_client.utils import (get_reana_yaml_file_path, load_reana_spec,
from reana_client.utils import (get_reana_yaml_file_path,
workflow_uuid_or_name)
from reana_commons.utils import click_table_printer

2 changes: 1 addition & 1 deletion reana_client/cli/utils.py
Original file line number Diff line number Diff line change
@@ -136,7 +136,7 @@ def validate_workflow_name(ctx, _, workflow_name):
return workflow_name


def params_tuple_to_dict(ctx, param, value):
def key_value_to_dict(ctx, param, value):
"""Convert tuple params to dictionary. e.g `(foo=bar)` to `{'foo': 'bar'}`.
:param options: A tuple with CLI operational options.
23 changes: 11 additions & 12 deletions reana_client/cli/workflow.py
Original file line number Diff line number Diff line change
@@ -20,7 +20,7 @@
from reana_client.cli.utils import (add_access_token_options,
add_workflow_option, check_connection,
filter_data, format_session_uri,
params_tuple_to_dict, parse_parameters,
key_value_to_dict, parse_parameters,
validate_workflow_name)
from reana_client.config import ERROR_MESSAGES, TIMECHECK
from reana_client.utils import (get_reana_yaml_file_path,
@@ -281,15 +281,15 @@ def workflow_create(ctx, file, name,
@click.option(
'-p', '--parameter', 'parameters',
multiple=True,
callback=params_tuple_to_dict,
callback=key_value_to_dict,
help='Additional input parameters to override '
'original ones from reana.yaml. '
'E.g. -p myparam1=myval1 -p myparam2=myval2.',
)
@click.option(
'-o', '--option', 'options',
multiple=True,
callback=params_tuple_to_dict,
callback=key_value_to_dict,
help='Additional operational options for the workflow execution. '
'E.g. CACHE=off. (workflow engine - serial) '
'E.g. --debug (workflow engine - cwl)',
@@ -331,10 +331,9 @@ def workflow_start(ctx, workflow, access_token,
response = get_workflow_parameters(workflow, access_token)
workflow_type = response['type']
original_parameters = response['parameters']
parsed_parameters['operational_options'] = \
validate_operational_options(
workflow_type,
parsed_parameters['operational_options'])
validate_operational_options(
workflow_type,
parsed_parameters['operational_options'])

parsed_parameters['input_parameters'] = \
validate_input_parameters(
@@ -395,15 +394,15 @@ def workflow_start(ctx, workflow, access_token,
@click.option(
'-p', '--parameter', 'parameters',
multiple=True,
callback=params_tuple_to_dict,
callback=key_value_to_dict,
help='Additional input parameters to override '
'original ones from reana.yaml. '
'E.g. -p myparam1=myval1 -p myparam2=myval2.',
)
@click.option(
'-o', '--option', 'options',
multiple=True,
callback=params_tuple_to_dict,
callback=key_value_to_dict,
help='Additional operational options for the workflow execution. '
'E.g. CACHE=off. (workflow engine - serial) '
'E.g. --debug (workflow engine - cwl)',
@@ -814,16 +813,16 @@ def workflow_stop(ctx, workflow, force_stop, access_token): # noqa: D301
@click.option(
'-p', '--parameter', 'parameters',
multiple=True,
callback=params_tuple_to_dict,
callback=key_value_to_dict,
help='Additional input parameters to override '
'original ones from reana.yaml. '
'E.g. -p myparam1=myval1 -p myparam2=myval2.',
)
@click.option(
'-o', '--option', 'options',
multiple=True,
callback=params_tuple_to_dict,
help='Additional operatioal options for the workflow execution. '
callback=key_value_to_dict,
help='Additional operational options for the workflow execution. '
'E.g. CACHE=off.',
)
@click.option(
6 changes: 3 additions & 3 deletions reana_client/utils.py
Original file line number Diff line number Diff line change
@@ -19,9 +19,9 @@
import yadageschemas
import yaml
from jsonschema import ValidationError, validate
from reana_commons.serial import serial_load
from reana_commons.errors import REANAValidationError
from reana_commons.operational_options import validate_operational_options
from reana_commons.serial import serial_load
from reana_commons.utils import get_workflow_status_change_verb

from reana_client.config import (reana_yaml_schema_file_path,
@@ -67,8 +67,8 @@ def yadage_load(workflow_file, toplevel='.', **kwargs):
}

try:
return yadageschemas.load(spec=workflow_file, specopts=specopts,
validopts=validopts, validate=True)
yadageschemas.load(spec=workflow_file, specopts=specopts,
validopts=validopts, validate=True)

except ValidationError as e:
e.message = str(e)
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -50,7 +50,7 @@
'cwltool==1.0.20191022103248',
'pyOpenSSL>=19.0.0', # FIXME remove once yadage-schemas solves deps.
'jsonpointer>=2.0',
'reana-commons>=0.7.0.dev20200319,<0.8.0',
'reana-commons>=0.7.0.dev20200407,<0.8.0',
'rfc3987>=1.3.8', # FIXME remove once yadage-schemas solves deps.
'six==1.12.0',
'strict-rfc3339>=0.7', # FIXME remove once yadage-schemas solves deps.

0 comments on commit c27c364

Please sign in to comment.