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 <[email protected]>
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());