From 54b7fba5379f5e9d29221e09fd1c41fdcce68afc Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Tue, 9 Feb 2021 20:31:29 +0100 Subject: [PATCH] Fix jobs finishing after update to 21.01 Fixes: ``` Traceback (most recent call last): File "metadata/set.py", line 1, in from galaxy_ext.metadata.set_metadata import set_metadata; set_metadata() File "/cvmfs/test.galaxyproject.org/galaxy/lib/galaxy/metadata/set_metadata.py", line 108, in set_metadata set_metadata_portable() File "/cvmfs/test.galaxyproject.org/galaxy/lib/galaxy/metadata/set_metadata.py", line 192, in set_metadata_portable import_model_store = store.imported_store_for_metadata('metadata/outputs_new', object_store=object_store) File "/cvmfs/test.galaxyproject.org/galaxy/lib/galaxy/model/store/__init__.py", line 1464, in imported_store_for_metadata import_model_store = get_import_model_store_for_directory(directory, import_options=import_options, object_store=object_store) File "/cvmfs/test.galaxyproject.org/galaxy/lib/galaxy/model/store/__init__.py", line 775, in get_import_model_store_for_directory assert os.path.isdir(archive_dir) AssertionError ``` --- lib/galaxy/metadata/set_metadata.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/metadata/set_metadata.py b/lib/galaxy/metadata/set_metadata.py index 4f95382d8a6..d8a527f6cb9 100644 --- a/lib/galaxy/metadata/set_metadata.py +++ b/lib/galaxy/metadata/set_metadata.py @@ -189,12 +189,18 @@ def set_metadata_portable(): # Load outputs. export_store = store.DirectoryModelExportStore('metadata/outputs_populated', serialize_dataset_objects=True, for_edit=True, strip_metadata_files=False) - import_model_store = store.imported_store_for_metadata('metadata/outputs_new', object_store=object_store) + try: + import_model_store = store.imported_store_for_metadata('metadata/outputs_new', object_store=object_store) + except AssertionError: + # Remove in 21.09, this should only happen for jobs that started on <= 20.09 and finish now + import_model_store = None for output_name, output_dict in outputs.items(): dataset_instance_id = output_dict["id"] klass = getattr(galaxy.model, output_dict.get('model_class', 'HistoryDatasetAssociation')) - dataset = import_model_store.sa_session.query(klass).find(dataset_instance_id) + dataset = None + if import_model_store: + dataset = import_model_store.sa_session.query(klass).find(dataset_instance_id) if dataset is None: # legacy check for jobs that started before 21.01, remove on 21.05 filename_in = os.path.join("metadata/metadata_in_%s" % output_name)