Marcus Christie created AIRAVATA-3346:
-----------------------------------------
Summary: Implement remote FS abstraction of user storage
Key: AIRAVATA-3346
URL: https://issues.apache.org/jira/browse/AIRAVATA-3346
Project: Airavata
Issue Type: Bug
Components: Django Portal
Reporter: Marcus Christie
Assignee: Marcus Christie
Running the Airavata Django portal locally, a developer experiences the portal
just like a user of a deployed portal, *except* when it comes to gateway user
storage, which is only available on the deployed portal. So for example, on
seagrid.org, I can log in, view my experiments, and download my output files.
If I run the Airavata Django portal locally and have configured it to connect
to the same Keycloak and API server, I can also login and view my experiments,
but I can't download my output files (or upload files, or clone experiments,
etc.).
However, there exists a REST API to get and put files into gateway user storage
so in theory it should be possible to create a filesystem abstraction, locally,
that uses the REST API underneath to make it appear that the user's files are
all available.
The benefit of this is that it opens up local development to be able to test a
broader range of use cases. I know when I'm developing the Django portal code,
there are some things that are just very hard to test because I don't actually
have access to the files locally. Also, for extension developers, this will be
helpful too. For example, currently creating a custom output view provider
requires using a fake output file to test locally because the data files aren't
available.
This seems like a good option: PyFilesystem2 https://pypi.org/project/fs/
One thing, we need token based authentication in the REST API, but I've already
started work on that in a separate branch.
Another thing, it could be good to put in this work now since it might ease
transitioning to Airavata MFT for the data storage backend. MFT would just be
another PyFilesystem2 filesystem implementation.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)