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/[email protected]
   
   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:
[email protected]


Reply via email to