Unverified Commit aebc4968 authored by mvdbeek's avatar mvdbeek
Browse files

Don't attempt to display discarded and deferred datasets

Fixes
https://sentry.galaxyproject.org/share/issue/395cb0fc507e400fb2f55048d5f7b42e/:
```
FileNotFoundError: [Errno 2] No such file or directory: ''
  File "/cvmfs/main.galaxyproject.org/venv/lib/python3.8/site-packages/paste/recursive.py", line 85, in __call__
    return self.application(environ, start_response)
  File "galaxy/web/framework/middleware/statsd.py", line 29, in __call__
    req = self.application(environ, start_response)
  File "/cvmfs/main.galaxyproject.org/venv/lib/python3.8/site-packages/paste/httpexceptions.py", line 640, in __call__
    return self.application(environ, start_response)
  File "galaxy/web/framework/base.py", line 159, in __call__
    return self.handle_request(environ, start_response)
  File "galaxy/web/framework/base.py", line 244, in handle_request
    body = method(trans, **kwargs)
  File "galaxy/webapps/galaxy/controllers/dataset.py", line 213, in display
    display_data, headers = data.datatype.display_data(
  File "galaxy/datatypes/tabular.py", line 164, in display_data
    chunk=self.get_chunk(trans, dataset, 0),
  File "galaxy/datatypes/tabular.py", line 105, in get_chunk
    with compression_utils.get_fileobj(dataset.file_name) as f:
  File "galaxy/util/compression_utils.py", line 66, in get_fileobj
    return get_fileobj_raw(filename, mode, compressed_formats)[1]
  File "galaxy/util/compression_utils.py", line 126, in get_fileobj_raw
    return compressed_format, open(filename, mode, encoding="utf-8")
```
parent c118dd53
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ from galaxy.managers.hdas import (
    HDAManager,
)
from galaxy.managers.histories import HistoryManager
from galaxy.model import Dataset
from galaxy.model.item_attrs import (
    UsesAnnotations,
    UsesItemRatings,
@@ -152,12 +153,18 @@ class DatasetInterface(BaseUIController, UsesAnnotations, UsesItemRatings, UsesE
            return trans.show_error_message("You are not allowed to access this dataset")
        if data.purged:
            return trans.show_error_message("The dataset you are attempting to view has been purged.")
        if data.deleted and not (trans.user_is_admin or (data.history and trans.get_user() == data.history.user)):
        elif data.deleted and not (trans.user_is_admin or (data.history and trans.get_user() == data.history.user)):
            return trans.show_error_message("The dataset you are attempting to view has been deleted.")
        if data.state == trans.model.Dataset.states.UPLOAD:
        elif data.state == Dataset.states.UPLOAD:
            return trans.show_error_message(
                "Please wait until this dataset finishes uploading before attempting to view it."
            )
        elif data.state == Dataset.states.DISCARDED:
            return trans.show_error_message("The dataset you are attempting to view has been discarded.")
        elif data.state == Dataset.states.DEFERRED:
            return trans.show_error_message(
                "The dataset you are attempting to view has deferred data. You can only use this dataset as input for jobs."
            )
        return data

    @web.expose