You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@airavata.apache.org by "yasithdev (via GitHub)" <gi...@apache.org> on 2026/06/09 06:22:34 UTC

[PR] feat(portal): de-Thrift user/experiment storage listing to gRPC (Track D, D4.3) [airavata-portals]

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: dev-unsubscribe@airavata.apache.org

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


Re: [PR] feat(portal): de-Thrift user/experiment storage listing to gRPC (Track D, D4.3) [airavata-portals]

Posted by "yasithdev (via GitHub)" <gi...@apache.org>.
yasithdev merged PR #190:
URL: https://github.com/apache/airavata-portals/pull/190


-- 
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: dev-unsubscribe@airavata.apache.org

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