Unverified Commit 91610ddb authored by mvdbeek's avatar mvdbeek
Browse files

Don't serialize display application links for deleted datasets

Doing that often requires datasets on disk, which we shouldn't guarantee
for deleted datasets.

Fixes
https://sentry.galaxyproject.org/share/issue/0ae7a9d9ad564054bd11c9a43aa6994c/:
```
Message
Unexpected error
Stack Trace

Newest

FileNotFoundError: [Errno 2] No such file or directory: ''
  File "galaxy/datatypes/interval.py", line 914, in get_estimated_display_viewport
    with compression_utils.get_fileobj(dataset.get_file_name()) as fh:
  File "galaxy/util/compression_utils.py", line 79, in get_fileobj
    return get_fileobj_raw(filename, mode, compressed_formats)[1]
  File "galaxy/util/compression_utils.py", line 139, in get_fileobj_raw
    return compressed_format, open(filename, mode, encoding="utf-8")
```
parent 132ea2b1
Loading
Loading
Loading
Loading
+35 −32
Original line number Diff line number Diff line
@@ -617,6 +617,7 @@ class HDASerializer( # datasets._UnflattenedMetadataDatasetAssociationSerialize
        """
        hda = item
        display_apps: List[Dict[str, Any]] = []
        if hda.state == model.HistoryDatasetAssociation.states.OK and not hda.deleted:
            for display_app in hda.get_display_applications(trans).values():
                app_links = []
                for link_app in display_app.links.values():
@@ -638,9 +639,11 @@ class HDASerializer( # datasets._UnflattenedMetadataDatasetAssociationSerialize
        """
        hda = item
        display_apps: List[Dict[str, Any]] = []
        if not self.app.config.enable_old_display_applications:
            return display_apps

        if (
            self.app.config.enable_old_display_applications
            and hda.state == model.HistoryDatasetAssociation.states.OK
            and not hda.deleted
        ):
            display_link_fn = hda.datatype.get_display_links
            for display_app in hda.datatype.get_display_types():
                target_frame, display_links = display_link_fn(