apache / apache/airavata-mft

MFT API enhancements for airavata-django-portal integration

Open
#35 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
41
Forks
37
PR merge metrics
No merged PRs in 30d

Description

[NOTE]: # ( ^^ Provide a general summary of the request in the title above. ^^ )

## Is your feature request related to a problem? Please describe.

The MFT API is missing some features required to implement the data management capabilities of airavata-django-portal.

- delete file/directory
- create directory/ies
- update a file - this allows users to edit files in the gateway

Possibly also (I consider these "nice to have" but aren't necessary):
- move file/directory
- this can be implemented by reading and writing a new file in the new location and then deleting the old file in the old location, but a move API could be more efficient
- probably only need this for moving files/directories within the same resource
- copy file/directory
- similar comments to move, this can be implemented by reading and writing a copy of a file, but a copy API could be more efficient
- for this we might want the ability to copy across resources. The use case is a user cloning another user's experiment and the inputs files are copied. If the source input files are on one resource but the experiment data directory is created on a different resource then copying across resources is needed.

For reference, this is the minimal interface I want to implement using MFT APIs: https://github.com/apache/airavata-django-portal-sdk/blob/mft-integration/airavata_django_portal_sdk/user_storage/backends/base.py

The MFT APIs support implementing all of these methods except for the following:

```python
def delete(self, resource_path):
raise NotImplementedError()

def update(self, resource_path, file):
raise NotImplementedError()

def create_dirs(self, resource_path, dir_names=[], create_unique=False):
"""
Create one or more named subdirectories inside the resource_path.
resource_path must exist. dir_names will potentially be normalized as
needed. The intermediate directories may already exist, but if the
final directory already exists, this method will raise an Exception,
unless create_unique is True in which the name will be modified until
a unique directory name is found.
"""
raise NotImplementedError()
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.