From 827218a43b33c7821caa52e4878f249e180d1b84 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Thu, 12 Mar 2015 22:45:05 -0400 Subject: [PATCH 1/4] Another change missed in the rebase/commit. --- lib/galaxy/datatypes/metadata.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/datatypes/metadata.py b/lib/galaxy/datatypes/metadata.py index ccd997a788e..4efa692dc8c 100644 --- a/lib/galaxy/datatypes/metadata.py +++ b/lib/galaxy/datatypes/metadata.py @@ -691,8 +691,8 @@ class JobExternalOutputMetadataWrapper( object ): def __get_filename_override(): if output_fnames: for dataset_path in output_fnames: - if dataset_path.false_path and dataset_path.real_path == metadata_files.dataset.file_name: - return dataset_path.false_path + if dataset_path.real_path == metadata_files.dataset.file_name: + return dataset_path.false_path or dataset_path.real_path return "" line = "%s,%s,%s,%s,%s,%s" % ( metadata_path_on_compute(metadata_files.filename_in), From c0ccff7dda6b22bf0e74378ae832b268c1e347ac Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Thu, 12 Mar 2015 22:56:21 -0400 Subject: [PATCH 2/4] DELETED_NEW is part of the Job.finished property... --- lib/galaxy/jobs/handler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/jobs/handler.py b/lib/galaxy/jobs/handler.py index ec36dd86ec8..92d3b073e6d 100644 --- a/lib/galaxy/jobs/handler.py +++ b/lib/galaxy/jobs/handler.py @@ -680,7 +680,7 @@ class JobHandlerStopQueue( object ): except Empty: pass for job, error_msg in jobs_to_check: - if job.finished: + if job.state != job.states.DELETED_NEW and job.finished: log.debug('Job %s already finished, not deleting or stopping', job.id) continue final_state = job.states.DELETED From 2b6c2a6793657f01667a64bd7f31c8a2e4bf24d7 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Thu, 12 Mar 2015 23:36:25 -0400 Subject: [PATCH 3/4] One more change missed in my rebase. --- lib/galaxy/tools/actions/metadata.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/tools/actions/metadata.py b/lib/galaxy/tools/actions/metadata.py index 0002111567f..f6f431fc3ad 100644 --- a/lib/galaxy/tools/actions/metadata.py +++ b/lib/galaxy/tools/actions/metadata.py @@ -2,6 +2,7 @@ from __init__ import ToolAction from galaxy.datatypes.metadata import JobExternalOutputMetadataWrapper from galaxy.util.odict import odict from galaxy.util.json import dumps +from galaxy.jobs.datasets import DatasetPath import logging log = logging.getLogger( __name__ ) @@ -65,13 +66,14 @@ class SetMetadataToolAction( ToolAction ): #add parameters to job_parameter table # Store original dataset state, so we can restore it. A separate table might be better (no chance of 'losing' the original state)? incoming[ '__ORIGINAL_DATASET_STATE__' ] = dataset.state + input_paths = [DatasetPath( dataset.id, real_path=dataset.file_name, mutable=False )] external_metadata_wrapper = JobExternalOutputMetadataWrapper( job ) cmd_line = external_metadata_wrapper.setup_external_metadata( dataset, sa_session, exec_dir = None, tmp_dir = app.config.new_file_path, dataset_files_path = app.model.Dataset.file_path, - output_fnames = None, + output_fnames = input_paths, config_root = app.config.root, config_file = app.config.config_file, datatypes_config = app.datatypes_registry.integrated_datatypes_configs, From 6cfa12123cf2cbb71284e97497babce141de5cdd Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Fri, 13 Mar 2015 11:30:57 -0400 Subject: [PATCH 4/4] Use job working directory for MetadataFiles created with auto-detect. --- lib/galaxy/datatypes/metadata.py | 5 +++++ lib/galaxy/tools/actions/metadata.py | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/datatypes/metadata.py b/lib/galaxy/datatypes/metadata.py index 4efa692dc8c..36618dc0c1b 100644 --- a/lib/galaxy/datatypes/metadata.py +++ b/lib/galaxy/datatypes/metadata.py @@ -676,6 +676,11 @@ class JobExternalOutputMetadataWrapper( object ): kwds = kwds or {} if tmp_dir is None: tmp_dir = MetadataTempFile.tmp_dir + else: + MetadataTempFile.tmp_dir = tmp_dir + + if not os.path.exists(tmp_dir): + os.makedirs(tmp_dir) # path is calculated for Galaxy, may be different on compute - rewrite # for the compute server. diff --git a/lib/galaxy/tools/actions/metadata.py b/lib/galaxy/tools/actions/metadata.py index f6f431fc3ad..eb772f5f80d 100644 --- a/lib/galaxy/tools/actions/metadata.py +++ b/lib/galaxy/tools/actions/metadata.py @@ -1,12 +1,15 @@ +import logging + from __init__ import ToolAction from galaxy.datatypes.metadata import JobExternalOutputMetadataWrapper from galaxy.util.odict import odict from galaxy.util.json import dumps from galaxy.jobs.datasets import DatasetPath -import logging + log = logging.getLogger( __name__ ) + class SetMetadataToolAction( ToolAction ): """Tool action used for setting external metadata on an existing dataset""" @@ -67,11 +70,12 @@ class SetMetadataToolAction( ToolAction ): # Store original dataset state, so we can restore it. A separate table might be better (no chance of 'losing' the original state)? incoming[ '__ORIGINAL_DATASET_STATE__' ] = dataset.state input_paths = [DatasetPath( dataset.id, real_path=dataset.file_name, mutable=False )] + job_working_dir = app.object_store.get_filename(job, base_dir='job_work', dir_only=True, extra_dir=str(job.id)) external_metadata_wrapper = JobExternalOutputMetadataWrapper( job ) cmd_line = external_metadata_wrapper.setup_external_metadata( dataset, sa_session, exec_dir = None, - tmp_dir = app.config.new_file_path, + tmp_dir = job_working_dir, dataset_files_path = app.model.Dataset.file_path, output_fnames = input_paths, config_root = app.config.root,