mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge branch 'release_19.09' into dev
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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 = {}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
Reference in New Issue
Block a user