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

   ## Summary
   Begin **D3 (writes)** and establish the write-direction adapter pattern. The 
DRF serializers were generated from Thrift, so `serializer.save()` yields a 
Thrift model instance; a new `grpc_requests` module converts that instance into 
the protobuf request message the facade expects — the write-direction mirror of 
`grpc_adapters`. (proto3 scalars cannot hold `None`, so optional Thrift values 
coerce to the proto default.)
   
   - New `grpc_requests.project` (Thrift `Project` → proto `Project`).
   - `ProjectViewSet.perform_create`/`perform_update` → 
`research.create_project` / `update_project`.
   
   ### De-Thrift the workspace-preferences helper
   `WorkspacePreferencesHelper` (`_get_most_recent_project` / 
`_get_first_group_resource_profile` / `_check` / `_can_write` / `_can_read`) 
still used `request.airavata_client` (`getUserProjects`, 
`getGroupResourceList`, `userHasAccess`), which **hung every project 
create/update** because the legacy Thrift server read-times-out. They now use 
the gRPC facade (`research.get_user_projects`, 
`compute.get_group_resource_list`, `sharing.user_has_access`) and proto field 
names, and the no-writeable-project case is handled instead of dereferencing 
`None`.
   
   ## Test plan
   - `manage.py check` clean.
   - Live **POST create → 201 (0.1s)** and **PUT update → 200 (0.02s)** against 
the running backend, with the rename confirmed by a follow-up GET — both fast 
(the Thrift-residue hang is gone).


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