Fix jobs finishing after update to 21.01

Fixes:
```
Traceback (most recent call last):
   File "metadata/set.py", line 1, in <module>
     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
```
This commit is contained in:
mvdbeek
2021-02-09 20:31:32 +01:00
parent b4c2ba47a3
commit 54b7fba537
+8 -2
View File
@@ -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)