You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@airavata.apache.org by GitBox <gi...@apache.org> on 2021/04/09 21:45:44 UTC

[GitHub] [airavata-mft] machristie opened a new issue #35: MFT API enhancements for airavata-django-portal integration

machristie opened a new issue #35:
URL: https://github.com/apache/airavata-mft/issues/35


   <!--
   This form is for bug reports and feature requests ONLY!
   For general questions and troubleshooting about Airavata MFT, please ask/look for answers here:
   - Airavata MFT mailing list: https://lists.apache.org/list.html?dev@airavata.apache.org
   
   Issues specific to *airavata*, *airavata-django-portal*, *airavata-mft*, should be created in the repository they belong to (e.g. https://github.com/apache/airavata)
   -->
   
   [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()
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org