You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by is...@apache.org on 2022/09/21 02:05:15 UTC
[airavata-data-lake] branch master updated: Fix key based search
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 9f7b678 Fix key based search
new 0b31881 Merge pull request #182 from isururanawaka/mysql_conversion
9f7b678 is described below
commit 9f7b6783cff1f26f122c6385ecc954a7b988f776
Author: Isuru Ranawaka <ir...@gmail.com>
AuthorDate: Tue Sep 20 22:04:42 2022 -0400
Fix key based search
---
.../drms/api/handlers/ResourceServiceHandler.java | 22 +++++++++++++++++++---
.../repository/ResourcePropertyRepository.java | 2 ++
2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java b/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
index ef1ed8d..d65e84a 100644
--- a/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
+++ b/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
@@ -280,6 +280,7 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
SearchRequest.Builder searchRequestBuilder = SearchRequest.newBuilder();
+ Map<String, String> searchMap = new HashMap<>();
for (ResourceSearchQuery searchQuery : resourceSearchQueries) {
@@ -290,6 +291,8 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
.setValue(searchQuery.getValue()).build();
searchRequestBuilder = searchRequestBuilder.addSearchCriteria(searchCriteria);
+ } else {
+ searchMap.put(searchQuery.getField(), searchQuery.getValue());
}
}
@@ -329,9 +332,22 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
Entities entities = sharingManagementClient.searchEntities(callUser.getTenantId(), searchRequest);
List<GenericResource> metadataList = new ArrayList<>();
entities.getEntityArrayList().forEach(shrMetadata -> {
- Optional<Resource> resourceOptional = resourceRepository.findById(shrMetadata.getId());
- if (resourceOptional.isPresent()) {
- metadataList.add(ResourceMapper.map(resourceOptional.get(), shrMetadata));
+
+ if (!searchMap.isEmpty()) {
+ searchMap.forEach((key, val) -> {
+ List<ResourceProperty> resourceProperties = resourcePropertyRepository
+ .findByPropertyKeyAndPropertyValueAndResourceId(key, val, shrMetadata.getId());
+ resourceProperties.forEach(rp -> {
+ metadataList.add(ResourceMapper.map(rp.getResource(), shrMetadata));
+ });
+ });
+ } else {
+
+
+ Optional<Resource> resourceOptional = resourceRepository.findById(shrMetadata.getId());
+ if (resourceOptional.isPresent()) {
+ metadataList.add(ResourceMapper.map(resourceOptional.get(), shrMetadata));
+ }
}
});
diff --git a/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/persistance/repository/ResourcePropertyRepository.java b/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/persistance/repository/ResourcePropertyRepository.java
index 43638d3..9dbb20b 100644
--- a/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/persistance/repository/ResourcePropertyRepository.java
+++ b/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/persistance/repository/ResourcePropertyRepository.java
@@ -10,6 +10,8 @@ public interface ResourcePropertyRepository extends JpaRepository<ResourceProper
List<ResourceProperty> findByPropertyKeyAndResourceId(String key, String resourceId);
+ List<ResourceProperty> findByPropertyKeyAndPropertyValueAndResourceId(String key,String value, String resourceId);
+
List<ResourceProperty> findAllByResourceId(String resourceId);
void deleteAllByPropertyKeyAndResourceId(String propertyKey, String resourceId);