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 2e3f564 initia search by key
new 3d328f7 Merge pull request #175 from isururanawaka/mysql_conversion
2e3f564 is described below
commit 2e3f564b2549a996b19f4be1db5b0c0445b9f0cd
Author: Isuru Ranawaka <[email protected]>
AuthorDate: Tue Sep 20 16:07:30 2022 -0400
initia search by key
---
.../drms/api/handlers/ResourceServiceHandler.java | 48 ++++++++++++++--------
.../repository/ResourcePropertyRepository.java | 2 +-
2 files changed, 32 insertions(+), 18 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 d34ace3..1233359 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
@@ -473,12 +473,16 @@ public class ResourceServiceHandler extends
ResourceServiceGrpc.ResourceServiceI
Resource resource = optionalResource.get();
Set<ResourceProperty> resourcePropertySet =
mergeProperties(resource, map);
- Optional<ResourceProperty> property =
resourcePropertyRepository.
+ List<ResourceProperty> properties =
resourcePropertyRepository.
findByPropertyKeyAndResourceId("metadata",
resource.getId());
- if (property.isPresent()) {
-
resourcePropertyRepository.deleteById(property.get().getId());
- }
+ properties.forEach(property -> {
+
+
resourcePropertyRepository.deleteById(property.getId());
+
+ }
+ );
+
ResourceProperty resourceProperty = new ResourceProperty();
resourceProperty.setPropertyKey("metadata");
@@ -519,10 +523,10 @@ public class ResourceServiceHandler extends
ResourceServiceGrpc.ResourceServiceI
if (resourceOptional.isPresent()) {
- Optional<ResourceProperty> resourceProperty =
resourcePropertyRepository
+ List<ResourceProperty> resourceProperty =
resourcePropertyRepository
.findByPropertyKeyAndResourceId("metadata",
resourceOptional.get().getId());
- if (resourceProperty.isPresent()) {
- String message =
resourceProperty.get().getPropertyValue();
+ if (!resourceProperty.isEmpty()) {
+ String message =
resourceProperty.get(0).getPropertyValue();
Struct.Builder structBuilder = Struct.newBuilder();
JsonFormat.parser().merge(message, structBuilder);
builder.addMetadata(structBuilder.build());
@@ -560,14 +564,16 @@ public class ResourceServiceHandler extends
ResourceServiceGrpc.ResourceServiceI
Set<ResourceProperty> resourcePropertySet = new HashSet<>();
for (String key : values.keySet()) {
-
-
resourcePropertyRepository.deleteAllByPropertyKeyAndResourceId(key,resource.getId());
-
+ List<ResourceProperty> propertyList =
resourcePropertyRepository.findByPropertyKeyAndResourceId(key,
resource.getId());
if (values.get(key) instanceof Map) {
//TODO: Implement MAP
} else if (values.get(key) instanceof List) {
ArrayList arrayList = (ArrayList) values.get(key);
-
+ if (!propertyList.isEmpty()) {
+ propertyList.forEach(prop -> {
+ resourcePropertyRepository.delete(prop);
+ });
+ }
arrayList.forEach(val -> {
ResourceProperty resourceProperty = new ResourceProperty();
resourceProperty.setPropertyKey(key);
@@ -575,13 +581,21 @@ public class ResourceServiceHandler extends
ResourceServiceGrpc.ResourceServiceI
resourceProperty.setResource(resource);
resourcePropertySet.add(resourceProperty);
});
+
} else {
- String value = String.valueOf(values.get(key));
- ResourceProperty resourceProperty = new ResourceProperty();
- resourceProperty.setPropertyKey(key);
- resourceProperty.setPropertyValue(value);
- resourceProperty.setResource(resource);
- resourcePropertySet.add(resourceProperty);
+ if (!propertyList.isEmpty()) {
+ propertyList.forEach(prop -> {
+ prop.setPropertyValue((String) values.get(key));
+ resourcePropertyRepository.save(prop);
+ });
+ } else {
+ String value = String.valueOf(values.get(key));
+ ResourceProperty resourceProperty = new ResourceProperty();
+ resourceProperty.setPropertyKey(key);
+ resourceProperty.setPropertyValue(value);
+ resourceProperty.setResource(resource);
+ resourcePropertySet.add(resourceProperty);
+ }
}
}
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 ef1cdae..43638d3 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
@@ -8,7 +8,7 @@ import java.util.Optional;
public interface ResourcePropertyRepository extends
JpaRepository<ResourceProperty, Long> {
- Optional<ResourceProperty> findByPropertyKeyAndResourceId(String key,
String resourceId);
+ List<ResourceProperty> findByPropertyKeyAndResourceId(String key, String
resourceId);
List<ResourceProperty> findAllByResourceId(String resourceId);