This is an automated email from the ASF dual-hosted git repository.

dimuthuupe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-mft.git


The following commit(s) were added to refs/heads/master by this push:
     new e304fd1  Supporting batch transfer submissions
e304fd1 is described below

commit e304fd1f3be3637adbdd5cedd4de6cfa24fc2ef8
Author: Dimuthu Wannipurage <[email protected]>
AuthorDate: Sun Oct 16 23:02:25 2022 -0400

    Supporting batch transfer submissions
---
 .../airavata/mft/api/handler/MFTApiHandler.java    | 32 +++++++++++++++++++++-
 api/stub/src/main/proto/MFTTransferApi.proto       | 10 +++++++
 2 files changed, 41 insertions(+), 1 deletion(-)

diff --git 
a/api/service/src/main/java/org/apache/airavata/mft/api/handler/MFTApiHandler.java
 
b/api/service/src/main/java/org/apache/airavata/mft/api/handler/MFTApiHandler.java
index 08eabab..36aea48 100644
--- 
a/api/service/src/main/java/org/apache/airavata/mft/api/handler/MFTApiHandler.java
+++ 
b/api/service/src/main/java/org/apache/airavata/mft/api/handler/MFTApiHandler.java
@@ -87,7 +87,37 @@ public class MFTApiHandler extends 
MFTTransferServiceGrpc.MFTTransferServiceImpl
         } catch (Exception e) {
             logger.error("Error in submitting transfer request", e);
             responseObserver.onError(Status.INTERNAL
-                    .withDescription("Failed to submit http download request. 
" + e.getMessage())
+                    .withDescription("Failed to submit transfer request. " + 
e.getMessage())
+                    .asException());
+        }
+    }
+
+    @Override
+    public void submitBatchTransfer(BatchTransferApiRequest request, 
StreamObserver<BatchTransferApiResponse> responseObserver) {
+        try {
+            List<TransferApiRequest> transferRequests = 
request.getTransferRequestsList();
+
+            BatchTransferApiResponse.Builder responseBuilder = 
BatchTransferApiResponse.newBuilder();
+            for (TransferApiRequest apiRequest: transferRequests) {
+                String transferId = mftConsulClient.submitTransfer(apiRequest);
+
+                logger.info("Submitted the transfer request {}", transferId);
+
+                mftConsulClient.saveTransferState(transferId, new 
TransferState()
+                        .setUpdateTimeMils(System.currentTimeMillis())
+                        .setState("RECEIVED").setPercentage(0)
+                        .setPublisher("api")
+                        .setDescription("Received transfer job " + 
transferId));
+
+                responseBuilder.addTransferIds(transferId);
+            }
+
+            responseObserver.onNext(responseBuilder.build());
+            responseObserver.onCompleted();
+        } catch (Exception e) {
+            logger.error("Error in submitting batch transfer request", e);
+            responseObserver.onError(Status.INTERNAL
+                    .withDescription("Failed to submit batch transfer request. 
" + e.getMessage())
                     .asException());
         }
     }
diff --git a/api/stub/src/main/proto/MFTTransferApi.proto 
b/api/stub/src/main/proto/MFTTransferApi.proto
index f62f3a2..13fcf41 100644
--- a/api/stub/src/main/proto/MFTTransferApi.proto
+++ b/api/stub/src/main/proto/MFTTransferApi.proto
@@ -31,6 +31,14 @@ message TransferApiResponse {
     string transferId = 1;
 }
 
+message BatchTransferApiRequest {
+    repeated TransferApiRequest transferRequests = 1;
+}
+
+message BatchTransferApiResponse {
+    repeated string transferIds = 1;
+}
+
 message HttpUploadApiRequest {
     string destinationStorageId = 1;
     string resourcePath = 2;
@@ -115,6 +123,8 @@ service  MFTTransferService {
 
     rpc submitTransfer(TransferApiRequest) returns (TransferApiResponse);
 
+    rpc submitBatchTransfer(BatchTransferApiRequest) returns 
(BatchTransferApiResponse);
+
     rpc submitHttpUpload(HttpUploadApiRequest) returns (HttpUploadApiResponse);
 
     rpc submitHttpDownload(HttpDownloadApiRequest) returns 
(HttpDownloadApiResponse);

Reply via email to