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 21388a7  Add resource service handler
     new 875f809  Merge pull request #79 from isururanawaka/master
21388a7 is described below

commit 21388a7fad9032c7769b9eef21917e5d7b965422
Author: Isuru Ranawaka <[email protected]>
AuthorDate: Tue Sep 21 21:23:40 2021 -0400

    Add resource service handler
---
 .../drms/api/handlers/ResourceServiceHandler.java  | 172 +++++++++++----------
 1 file changed, 89 insertions(+), 83 deletions(-)

diff --git 
a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
 
b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
index 8050a46..fa21b2f 100644
--- 
a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
+++ 
b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
@@ -141,6 +141,9 @@ public class ResourceServiceHandler extends 
ResourceServiceGrpc.ResourceServiceI
 
 
             String entityId = request.getResource().getResourceId();
+            if (entityId == null || entityId.isEmpty()) {
+                entityId = Utils.getId(request.getResource().toString());
+            }
             Map<String, Object> serializedMap = 
GenericResourceSerializer.serializeToMap(request.getResource());
             Optional<Entity> exEntity = 
CustosUtils.mergeResourceEntity(custosClientProvider, callUser.getTenantId(),
                     parentId, type, entityId,
@@ -426,24 +429,27 @@ public class ResourceServiceHandler extends 
ResourceServiceGrpc.ResourceServiceI
             }
 
             List keyList = new ArrayList();
-            if (!resourceSearchQueries.isEmpty()) {
-
-                keyList = new ArrayList();
-                Map<String, Map<String, String>> searchParameterMap = new 
HashMap<>();
-
-                for (ResourceSearchQuery qry : resourceSearchQueries) {
-                    if (qry.getField().equals("storageId")) {
-                        storageList.clear();
-                        storageList.add(qry.getValue());
-                    } else if (qry.getField().equals("sharedBy")) {
-                        searchParameterMap.computeIfAbsent("sharedBy", map -> 
new HashMap<>()).put("username", qry.getValue());
-                    } else if (qry.getField().equals("sharedWith")) {
-                        searchParameterMap.computeIfAbsent("sharedWith", map 
-> new HashMap<>()).put("username", qry.getValue());
-                    } else {
-                        searchParameterMap.computeIfAbsent("searchParams", map 
-> new HashMap<>()).put(qry.getField(), qry.getValue());
-                    }
+
+            keyList = new ArrayList();
+            Map<String, Map<String, String>> searchParameterMap = new 
HashMap<>();
+            boolean propertySearchEnabled = false;
+            for (ResourceSearchQuery qry : resourceSearchQueries) {
+                if (qry.getField().equals("storageId")) {
+                    storageList.clear();
+                    storageList.add(qry.getValue());
+                } else if (qry.getField().equals("sharedBy")) {
+                    searchParameterMap.computeIfAbsent("sharedBy", map -> new 
HashMap<>()).put("username", qry.getValue());
+                    propertySearchEnabled = true;
+                } else if (qry.getField().equals("sharedWith")) {
+                    searchParameterMap.computeIfAbsent("sharedWith", map -> 
new HashMap<>()).put("username", qry.getValue());
+                    propertySearchEnabled = true;
+                } else {
+                    searchParameterMap.computeIfAbsent("searchParams", map -> 
new HashMap<>()).put(qry.getField(), qry.getValue());
+                    propertySearchEnabled = true;
                 }
+            }
 
+            if (propertySearchEnabled) {
                 if (searchParameterMap.containsKey("sharedBy") &&
                         (!searchParameterMap.containsKey("searchParams") || 
searchParameterMap.get("searchParams").isEmpty())) {
                     String val = 
searchParameterMap.get("sharedBy").get("username");
@@ -488,32 +494,15 @@ public class ResourceServiceHandler extends 
ResourceServiceGrpc.ResourceServiceI
                 //TODO: replace with proper neo4j query
 
 
-                    if (searchParameterMap.containsKey("sharedBy") && 
(searchParameterMap.containsKey("searchParams")
-                            && 
!searchParameterMap.get("searchParams").isEmpty())) {
-                        String username = 
searchParameterMap.get("sharedBy").get("username");
-                        searchParameterMap.get("searchParams").forEach((key, 
val) -> {
-                            try {
-                                for (String strId : storageList) {
-                                    List<GenericResource> genericResourceList 
= Utils
-                                            
.getMetadataSearchQueryForSharedByMe(value, key, val, strId, username, 
callUser.getTenantId(), neo4JConnector);
-                                    genericResourceList.forEach(res -> {
-                                        try {
-                                            if 
(hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), 
res.getResourceId(), "COLLECTION")) {
-                                                allowedResourceList.add(res);
-                                            }
-                                        } catch (Exception exception) {
-                                            logger.error("Errored while 
searching generic resources");
-                                            responseObserver
-                                                    
.onError(Status.INTERNAL.withDescription("Errored while searching generic 
resources ")
-                                                            
.asRuntimeException());
-                                            return;
-                                        }
-                                    });
-                                }
-
-                                List<GenericResource> genericResources = Utils
-                                        
.getPropertySearchQueryForSharedByMe(value, key, val, username, 
callUser.getTenantId(), neo4JConnector);
-                                genericResources.forEach(res -> {
+                if (searchParameterMap.containsKey("sharedBy") && 
(searchParameterMap.containsKey("searchParams")
+                        && !searchParameterMap.get("searchParams").isEmpty())) 
{
+                    String username = 
searchParameterMap.get("sharedBy").get("username");
+                    searchParameterMap.get("searchParams").forEach((key, val) 
-> {
+                        try {
+                            for (String strId : storageList) {
+                                List<GenericResource> genericResourceList = 
Utils
+                                        
.getMetadataSearchQueryForSharedByMe(value, key, val, strId, username, 
callUser.getTenantId(), neo4JConnector);
+                                genericResourceList.forEach(res -> {
                                     try {
                                         if 
(hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), 
res.getResourceId(), "COLLECTION")) {
                                             allowedResourceList.add(res);
@@ -526,41 +515,41 @@ public class ResourceServiceHandler extends 
ResourceServiceGrpc.ResourceServiceI
                                         return;
                                     }
                                 });
-
-                            } catch (Exception exception) {
-                                logger.error("Errored while searching generic 
resources");
-                                responseObserver
-                                        
.onError(Status.INTERNAL.withDescription("Errored while searching generic 
resources ")
-                                                .asRuntimeException());
-                                return;
                             }
-                        });
-                    } else if (searchParameterMap.containsKey("sharedWith") && 
(searchParameterMap.containsKey("searchParams")
-                            && 
!searchParameterMap.get("searchParams").isEmpty())) {
-                        String username = 
searchParameterMap.get("sharedWith").get("username");
-                        searchParameterMap.get("searchParams").forEach((key, 
val) -> {
-                            try {
-                                for (String strId : storageList) {
-                                    List<GenericResource> genericResourceList 
= Utils
-                                            
.getMetadataSearchQueryForSharedWithMe(value, key, val, strId, username, 
callUser.getTenantId(), neo4JConnector);
-                                    genericResourceList.forEach(res -> {
-                                        try {
-                                            if 
(hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), 
res.getResourceId(), "COLLECTION")) {
-                                                allowedResourceList.add(res);
-                                            }
-                                        } catch (Exception exception) {
-                                            logger.error("Errored while 
searching generic resources");
-                                            responseObserver
-                                                    
.onError(Status.INTERNAL.withDescription("Errored while searching generic 
resources ")
-                                                            
.asRuntimeException());
-                                            return;
-                                        }
-                                    });
+
+                            List<GenericResource> genericResources = Utils
+                                    
.getPropertySearchQueryForSharedByMe(value, key, val, username, 
callUser.getTenantId(), neo4JConnector);
+                            genericResources.forEach(res -> {
+                                try {
+                                    if 
(hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), 
res.getResourceId(), "COLLECTION")) {
+                                        allowedResourceList.add(res);
+                                    }
+                                } catch (Exception exception) {
+                                    logger.error("Errored while searching 
generic resources");
+                                    responseObserver
+                                            
.onError(Status.INTERNAL.withDescription("Errored while searching generic 
resources ")
+                                                    .asRuntimeException());
+                                    return;
                                 }
+                            });
 
-                                List<GenericResource> genericResources = Utils
-                                        
.getPropertySearchQueryForSharedWithMe(value, key, val,  username, 
callUser.getTenantId(), neo4JConnector);
-                                genericResources.forEach(res -> {
+                        } catch (Exception exception) {
+                            logger.error("Errored while searching generic 
resources");
+                            responseObserver
+                                    
.onError(Status.INTERNAL.withDescription("Errored while searching generic 
resources ")
+                                            .asRuntimeException());
+                            return;
+                        }
+                    });
+                } else if (searchParameterMap.containsKey("sharedWith") && 
(searchParameterMap.containsKey("searchParams")
+                        && !searchParameterMap.get("searchParams").isEmpty())) 
{
+                    String username = 
searchParameterMap.get("sharedWith").get("username");
+                    searchParameterMap.get("searchParams").forEach((key, val) 
-> {
+                        try {
+                            for (String strId : storageList) {
+                                List<GenericResource> genericResourceList = 
Utils
+                                        
.getMetadataSearchQueryForSharedWithMe(value, key, val, strId, username, 
callUser.getTenantId(), neo4JConnector);
+                                genericResourceList.forEach(res -> {
                                     try {
                                         if 
(hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), 
res.getResourceId(), "COLLECTION")) {
                                             allowedResourceList.add(res);
@@ -573,17 +562,34 @@ public class ResourceServiceHandler extends 
ResourceServiceGrpc.ResourceServiceI
                                         return;
                                     }
                                 });
-                            } catch (Exception exception) {
-                                logger.error("Errored while searching generic 
resources");
-                                responseObserver
-                                        
.onError(Status.INTERNAL.withDescription("Errored while searching generic 
resources ")
-                                                .asRuntimeException());
-                                return;
                             }
-                        });
 
-                    } else {
-                        for (String strId : storageList) {
+                            List<GenericResource> genericResources = Utils
+                                    
.getPropertySearchQueryForSharedWithMe(value, key, val, username, 
callUser.getTenantId(), neo4JConnector);
+                            genericResources.forEach(res -> {
+                                try {
+                                    if 
(hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), 
res.getResourceId(), "COLLECTION")) {
+                                        allowedResourceList.add(res);
+                                    }
+                                } catch (Exception exception) {
+                                    logger.error("Errored while searching 
generic resources");
+                                    responseObserver
+                                            
.onError(Status.INTERNAL.withDescription("Errored while searching generic 
resources ")
+                                                    .asRuntimeException());
+                                    return;
+                                }
+                            });
+                        } catch (Exception exception) {
+                            logger.error("Errored while searching generic 
resources");
+                            responseObserver
+                                    
.onError(Status.INTERNAL.withDescription("Errored while searching generic 
resources ")
+                                            .asRuntimeException());
+                            return;
+                        }
+                    });
+
+                } else {
+                    for (String strId : storageList) {
                         Optional<String> metadataSearchQueryOP = 
Utils.getMetadataSearchQuery(resourceSearchQueries, value, strId);
                         Optional<String> ownPropertySearchQuery = 
Utils.getPropertySearchQuery(resourceSearchQueries, value, strId);
                         if (metadataSearchQueryOP.isPresent()) {

Reply via email to