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

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


The following commit(s) were added to refs/heads/master by this push:
     new 352ccfd  Transfermapping creation
     new fa317cb  Merge pull request #136 from isururanawaka/mysql_conversion
352ccfd is described below

commit 352ccfdf825af7239250a6f298018bd691bfe4e4
Author: Isuru Ranawaka <[email protected]>
AuthorDate: Tue Aug 16 20:46:00 2022 -0400

    Transfermapping creation
---
 .../drms/api/handlers/StorageServiceHandler.java   | 59 ++++++++++++++--------
 1 file changed, 38 insertions(+), 21 deletions(-)

diff --git 
a/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java
 
b/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java
index d3de3e2..67d8d5f 100644
--- 
a/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java
+++ 
b/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java
@@ -29,7 +29,6 @@ import 
org.apache.airavata.drms.api.persistance.repository.ResourceRepository;
 import 
org.apache.airavata.drms.api.persistance.repository.TransferMappingRepository;
 import org.apache.airavata.drms.api.utils.CustosUtils;
 import org.apache.airavata.drms.core.constants.SharingConstants;
-import org.apache.airavata.drms.core.serializer.AnyStorageSerializer;
 import org.apache.custos.clients.CustosClientProvider;
 import org.apache.custos.sharing.management.client.SharingManagementClient;
 import org.apache.custos.sharing.service.Entity;
@@ -298,36 +297,54 @@ public class StorageServiceHandler extends 
StorageServiceGrpc.StorageServiceImpl
                     transferMappingRepository
                             .findById(request.getTransferMapping().getId());
 
+            if (optionalTransferMapping.isPresent()) {
+                
responseObserver.onError(Status.ALREADY_EXISTS.asRuntimeException());
+                return;
+            }
 
-            if (optionalTransferMapping.isEmpty()) {
 
+            org.apache.airavata.drms.api.persistance.model.TransferMapping 
transferMapping = new
+                    
org.apache.airavata.drms.api.persistance.model.TransferMapping();
 
-                org.apache.airavata.drms.api.persistance.model.TransferMapping 
transferMapping = new
-                        
org.apache.airavata.drms.api.persistance.model.TransferMapping();
+            if (optionalSource.isPresent()) {
 
-                if (optionalSource.isPresent()) {
-                    transferMapping.setSource(optionalSource.get());
-                }
+               
Set<org.apache.airavata.drms.api.persistance.model.TransferMapping> 
transferMappings =
+                       optionalSource.get().getSourceTransferMapping();
+               if (transferMappings != null){
+                   transferMappings.add(transferMapping);
+               }else{
+                  transferMappings = new HashSet<>();
+                   transferMappings.add(transferMapping);
+               }
+                transferMapping.setSource(optionalSource.get());
+                
optionalSource.get().setSourceTransferMapping(transferMappings);
+            }
 
-                if (optionalDst.isPresent()) {
-                    transferMapping.setDestination(optionalDst.get());
+            if (optionalDst.isPresent()) {
+                
Set<org.apache.airavata.drms.api.persistance.model.TransferMapping> 
transferMappings =
+                        optionalDst.get().getDestinationTransferMapping();
+                if (transferMappings != null){
+                    transferMappings.add(transferMapping);
+                }else{
+                    transferMappings = new HashSet<>();
+                    transferMappings.add(transferMapping);
                 }
+                transferMapping.setDestination(optionalSource.get());
+                
optionalDst.get().setDestinationTransferMapping(transferMappings);
+            }
 
-                transferMapping.setScope(scope.name());
-                transferMapping.setOwnerId(authenticatedUser.getUsername());
+            transferMapping.setScope(scope.name());
+            transferMapping.setOwnerId(authenticatedUser.getUsername());
 
-                transferMappingRepository.save(transferMapping);
+            transferMappingRepository.save(transferMapping);
 
-                CreateTransferMappingResponse createTransferMappingResponse = 
CreateTransferMappingResponse
-                        .newBuilder()
-                        .setTransferMapping(request.getTransferMapping())
-                        .build();
-                responseObserver.onNext(createTransferMappingResponse);
-                responseObserver.onCompleted();
-                return;
+            CreateTransferMappingResponse createTransferMappingResponse = 
CreateTransferMappingResponse
+                    .newBuilder()
+                    .setTransferMapping(request.getTransferMapping())
+                    .build();
+            responseObserver.onNext(createTransferMappingResponse);
+            responseObserver.onCompleted();
 
-            }
-            //TODO:Error
 
         } catch (Exception e) {
             String msg = "Errored while creating transfer mapping; Message:" + 
e.getMessage();

Reply via email to