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 2021/07/08 00:36:44 UTC
[airavata-data-lake] branch master updated: Add resourcePath,
storage for fetch resource backend
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 a5ed5e1 Add resourcePath, storage for fetch resource backend
new 07909e5 Merge pull request #18 from isururanawaka/workflow_invocation
a5ed5e1 is described below
commit a5ed5e13734afaffb4b1e4d4caedcc9ddb7e4894
Author: Isuru Ranawaka <ir...@gmail.com>
AuthorDate: Wed Jul 7 20:35:36 2021 -0400
Add resourcePath, storage for fetch resource backend
---
.../drms/api/handlers/ResourceServiceHandler.java | 24 +++++++++++++++++++++-
.../deserializer/GenericResourceDeserializer.java | 3 +++
2 files changed, 26 insertions(+), 1 deletion(-)
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 9201ead..b2f2ccb 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
@@ -30,6 +30,7 @@ import org.apache.airavata.drms.api.utils.Utils;
import org.apache.airavata.drms.core.Neo4JConnector;
import org.apache.airavata.drms.core.constants.StoragePreferenceConstants;
import org.apache.airavata.drms.core.deserializer.GenericResourceDeserializer;
+import org.apache.airavata.drms.core.deserializer.TransferMappingDeserializer;
import org.apache.airavata.drms.core.serializer.GenericResourceSerializer;
import org.apache.custos.clients.CustosClientProvider;
import org.apache.custos.sharing.service.Entity;
@@ -89,7 +90,28 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
List<GenericResource> genericResourceList = GenericResourceDeserializer.deserializeList(records);
ResourceFetchResponse.Builder builder = ResourceFetchResponse.newBuilder();
if (!genericResourceList.isEmpty()) {
- builder.setResource(genericResourceList.get(0));
+ // TODO: Move to Storage
+ String searchQuery = "Match (srcStr:Storage)<-[:CHILD_OF]-" +
+ "(srcSp:StoragePreference)-[:TRANSFER_OUT]->(t:TransferMapping" +
+ "{scope:'GLOBAL', tenantId:$tenantId})-[:TRANSFER_IN]->(dstSp:StoragePreference)-[:CHILD_OF]->(dstStr:Storage)" +
+ " return srcStr, srcSp, dstStr, dstSp, t";
+
+ List<Record> globalRecords = this.neo4JConnector.searchNodes(userProps, searchQuery);
+
+ if (!globalRecords.isEmpty()) {
+ List<TransferMapping> transferMappings = TransferMappingDeserializer.deserializeList(globalRecords);
+ if (!transferMappings.isEmpty()) {
+ AnyStoragePreference anyStoragePreference = transferMappings.get(0)
+ .getSourceStoragePreference();
+ GenericResource resource = genericResourceList.get(0)
+ .toBuilder()
+ .setSshPreference(anyStoragePreference.getSshStoragePreference())
+ .build();
+ builder.setResource(resource);
+ } else {
+ builder.setResource(genericResourceList.get(0));
+ }
+ }
}
responseObserver.onNext(builder.build());
responseObserver.onCompleted();
diff --git a/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java
index c8d8e05..265f0a4 100644
--- a/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java
+++ b/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java
@@ -69,6 +69,9 @@ public class GenericResourceDeserializer {
if (field.equals("resourceName") || field.equals("name")) {
genericResourceBuilder.setResourceName(String.valueOf(node.asMap().get(field)));
}
+ if (field.equals("resourcePath")) {
+ genericResourceBuilder.setResourcePath(String.valueOf(node.asMap().get(field)));
+ }
}
return genericResourceBuilder.build();
}).collect(Collectors.toList());