Merge branch 'release_19.09' into dev

This commit is contained in:
Nicola Soranzo
2019-11-07 16:01:02 +00:00
9 changed files with 45 additions and 26 deletions
+1 -1
View File
@@ -1654,7 +1654,7 @@ class JobWrapper(HasResourceParameters):
# Certain tools require tasks to be completed after job execution
# ( this used to be performed in the "exec_after_process" hook, but hooks are deprecated ).
param_dict = self.get_param_dict(job)
self.tool.exec_after_process(self.app, inp_data, out_data, param_dict, job=job)
self.tool.exec_after_process(self.app, inp_data, out_data, param_dict, job=job, final_job_state=final_job_state)
# Call 'exec_after_process' hook
self.tool.call_hook('exec_after_process', self.app, inp_data=inp_data,
out_data=out_data, param_dict=param_dict,
+6
View File
@@ -225,6 +225,12 @@ def _docker_prefix(
def parse_port_text(port_text):
"""
>>> slurm_ports = parse_port_text("8888/tcp -> 0.0.0.0:32769")
>>> slurm_ports[8888]['host']
'0.0.0.0'
"""
ports = None
if port_text is not None:
ports = {}
+6 -9
View File
@@ -43,6 +43,7 @@ from galaxy.tool_util.loader import (
raw_tool_xml_tree,
template_macro_params
)
from galaxy.tool_util.output_checker import DETECTED_JOB_STATE
from galaxy.tool_util.parser import (
get_tool_source,
get_tool_source_from_representation,
@@ -1750,7 +1751,7 @@ class Tool(Dictifiable):
def exec_before_job(self, app, inp_data, out_data, param_dict={}):
pass
def exec_after_process(self, app, inp_data, out_data, param_dict, job=None):
def exec_after_process(self, app, inp_data, out_data, param_dict, job=None, **kwds):
pass
def job_failed(self, job_wrapper, message, exception=False):
@@ -2421,7 +2422,7 @@ class SetMetadataTool(Tool):
history.id, job.user, incoming={'input1': hda}, overwrite=False
)
def exec_after_process(self, app, inp_data, out_data, param_dict, job=None):
def exec_after_process(self, app, inp_data, out_data, param_dict, job=None, **kwds):
working_directory = app.object_store.get_filename(
job, base_dir='job_work', dir_only=True, obj_dir=True
)
@@ -2505,17 +2506,13 @@ class DataManagerTool(OutputParameterJSONTool):
if self.data_manager_id is None:
self.data_manager_id = self.id
def exec_after_process(self, app, inp_data, out_data, param_dict, job=None, **kwds):
def exec_after_process(self, app, inp_data, out_data, param_dict, job=None, final_job_state=None, **kwds):
assert self.allow_user_access(job.user), "You must be an admin to access this tool."
if final_job_state != DETECTED_JOB_STATE.OK:
return
# run original exec_after_process
super(DataManagerTool, self).exec_after_process(app, inp_data, out_data, param_dict, job=job, **kwds)
# process results of tool
if job and job.state == job.states.ERROR:
return
# Job state may now be 'running' instead of previous 'error', but datasets are still set to e.g. error
for dataset in out_data.values():
if dataset.state != dataset.states.OK:
return
data_manager_id = job.data_manager_association.data_manager_id
data_manager = self.app.data_managers.get_manager(data_manager_id, None)
assert data_manager is not None, "Invalid data manager (%s) requested. It may have been removed before the job completed." % (data_manager_id)
+3 -1
View File
@@ -151,7 +151,9 @@ class ToolShedRepositoryCache(object):
def rebuild(self):
self.repositories = self.app.install_model.context.current.query(self.app.install_model.ToolShedRepository).options(
defer(self.app.install_model.ToolShedRepository.metadata),
joinedload('tool_dependencies'),
joinedload('tool_dependencies').subqueryload('tool_shed_repository').options(
defer(self.app.install_model.ToolShedRepository.metadata)
),
).all()
repos_by_tuple = defaultdict(list)
for repository in self.repositories + self.local_repositories:
@@ -129,6 +129,9 @@ class FolderContentsController(BaseAPIController, UsesLibraryMixin, UsesLibraryM
tags=ldda_tags))
if content_item.library_dataset_dataset_association.message:
return_item.update(dict(message=content_item.library_dataset_dataset_association.message))
elif content_item.library_dataset_dataset_association.info:
# There is no message but ldda info contains something so we display that instead.
return_item.update(dict(message=content_item.library_dataset_dataset_association.info))
# For every item include the default metadata
return_item.update(dict(id=encoded_id,
+9 -4
View File
@@ -41,12 +41,17 @@ def main():
try:
ports_raw = parse_ports(container_name, connection_configuration)
if ports_raw is not None:
host_ip = socket.gethostbyname(socket.gethostname())
try:
host_ip = socket.gethostbyname(socket.gethostname())
except Exception:
# doesn't work on OS X
host_ip = None
with open("container_runtime.json", "w") as f:
# Override the IPs
ports = docker_util.parse_port_text(ports_raw)
for key in ports:
ports[key]['host'] = host_ip
if host_ip is not None:
for key in ports:
if ports[key]['host'] == '0.0.0.0':
ports[key]['host'] = host_ip
json.dump(ports, f)
break
else:
+5 -3
View File
@@ -2,13 +2,15 @@
<configfiles>
<configfile name="static_test_data">{"data_tables": {"testbeta": [{"value": "newvalue", "path": "newvalue.txt"}]}}</configfile>
</configfiles>
<command>
<command detect_errors="exit_code">
mkdir $out_file.files_path ;
echo "A new value" > $out_file.files_path/newvalue.txt;
cp $static_test_data $out_file
echo "A new value" > '$out_file.files_path/newvalue.txt';
cp '$static_test_data' '$out_file';
exit $exit_code
</command>
<inputs>
<param type="text" name="ignored_value" value="" label="Ignored" />
<param type="integer" name="exit_code" value="0" label="Exit code"/>
</inputs>
<outputs>
<data name="out_file" format="data_manager_json"/>
+6 -4
View File
@@ -1,14 +1,16 @@
<tool id="data_manager" name="Test Data Manager" tool_type="manage_data" version="0.0.1">
<tool id="data_manager_add_test" name="Test Data Manager add" tool_type="manage_data" version="0.0.1">
<configfiles>
<configfile name="static_test_data">{"data_tables": {"testbeta": { "add": [{"value": "newvalue", "path": "newvalue.txt"}]}}}</configfile>
</configfiles>
<command>
<command detect_errors="exit_code">
mkdir $out_file.files_path ;
echo "A new value" > $out_file.files_path/newvalue.txt;
cp $static_test_data $out_file
echo "A new value" > '$out_file.files_path/newvalue.txt';
cp '$static_test_data' '$out_file';
exit $exit_code
</command>
<inputs>
<param type="text" name="ignored_value" value="" label="Ignored" />
<param type="integer" name="exit_code" value="0" label="Exit code"/>
</inputs>
<outputs>
<data name="out_file" format="data_manager_json"/>
@@ -1,14 +1,16 @@
<tool id="data_manager" name="Test Data Manager" tool_type="manage_data" version="0.0.1">
<tool id="data_manager_add_remove_test" name="Test Data Manager add and remove" tool_type="manage_data" version="0.0.1">
<configfiles>
<configfile name="static_test_data">{"data_tables": {"testbeta": { "add": [{"value": "newvalue", "path": "newvalue.txt"}, {"value": "newvalue2", "path": "newvalue2.txt"}], "remove": [{"value": "newvalue", "path": "newvalue.txt"}]}}}</configfile>
</configfiles>
<command>
<command detect_errors="exit_code">
mkdir $out_file.files_path ;
echo "A new value" > $out_file.files_path/newvalue.txt;
cp $static_test_data $out_file
echo "A new value" > '$out_file.files_path/newvalue.txt';
cp '$static_test_data' '$out_file';
exit $exit_code
</command>
<inputs>
<param type="text" name="ignored_value" value="" label="Ignored" />
<param type="integer" name="exit_code" value="0" label="Exit Code" />
</inputs>
<outputs>
<data name="out_file" format="data_manager_json"/>