yasithdev opened a new pull request, #190:
URL: https://github.com/apache/airavata-portals/pull/190

   ## Summary
   
   Track D (D4.3): repoint the storage path views and the 
create-user-storage-dir signal from the legacy `airavata_django_portal_sdk` 
`user_storage` helpers to the gRPC `storage` facade.
   
   - **`UserStoragePathView`** get/post/put/delete + 
**`ExperimentStoragePathView`** → `storage.dir_exists` / `list_dir` / 
`get_file_metadata` / `create_dir` / `delete_dir` / `delete_file` (+ the 
`_storage_upload_and_register` helper for uploads). A new `_user_storage_path` 
resolves a request path to the absolute `~/`-prefixed path the facade expects, 
including experiment-relative paths (via the experiment data dir).
   - New **`grpc_adapters.user_storage_file` / `user_storage_directory`** map 
the gRPC `FileMetadataResponse` 
(name/path/size/modified_time/content_type/data_product_uri — populated 
server-side by apache/airavata#652) to the dicts the storage serializers read.
   - **`UserStorageFileSerializer.downloadURL`** now builds the portal 
`download-file` URL directly from the file's data product URI; 
**`UserHasWriteAccessToPathSerializer`** drops the remote-API 
`user_storage.listdir` branch (the gRPC path talks to the backend directly, not 
a remote portal proxy).
   - **`signals.create_user_storage_dir`** → `storage.create_dir` / 
`create_symlink`.
   - The deprecated `download_file` view redirects to the gRPC `download-file` 
endpoint.
   - Drop the now-unused `user_storage` (and `queue_settings_calculators`) 
imports from `views.py` / `serializers.py`.
   
   ## Depends on
   
   apache/airavata#652 — adds per-file `modified_time` / `content_type` / 
`data_product_uri` to the gRPC listing and fixes SFTP file delete. Without it, 
listings would lose those fields and `delete_file` would fail. Merge #652 first.
   
   ## Validation
   
   REST/JSON contract unchanged. `manage.py check` clean. **Live against the 
running backend:** `UserStoragePathView` GET lists `~/tmp` (200) with each file 
rendering 
`name`/`size`/`createdTime`/`modifiedTime`/`mimeType`/`dataProductURI`/`downloadURL`/`userHasWriteAccess`;
 upload (creates the dir + registers a data product), content overwrite, and 
DELETE (204, file actually removed) all round-trip.


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to