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
commit 9fe66b6555796945e47dcd6a9268b7246817feda Author: Isuru Ranawaka <[email protected]> AuthorDate: Tue May 11 16:11:04 2021 -0400 Add working version for EMC to search data --- airavata-data-lake.iws | 140 ++++++++++++++++++--- .../java/org/apache/airavata/drms/api/Client.java | 34 ++++- .../drms/api/handlers/ResourceServiceHandler.java | 35 ++---- .../handlers/StoragePreferenceServiceHandler.java | 14 --- .../drms/api/handlers/StorageServiceHandler.java | 25 +--- .../drms/api/interceptors/Authenticator.java | 14 ++- .../src/main/resources/application.properties | 4 +- .../deserializer/GenericResourceDeserializer.java | 61 +++++---- .../drms-rest-proxy/src/main/resources/drms.pb | Bin 101906 -> 102693 bytes .../src/main/resources => drms-stubs}/drms.pb | Bin 101906 -> 102693 bytes .../src/main/proto/resource/DRMSResource.proto | 2 + .../airavata/datalake/metadata/clients/Test.java | 26 ++-- .../neo4j/curd/operators/GenericService.java | 5 +- .../backend/neo4j/curd/operators/Service.java | 5 +- .../metadata/backend/neo4j/model/nodes/Entity.java | 13 +- .../metadata/backend/neo4j/model/nodes/Group.java | 106 ++++++++-------- .../backend/neo4j/model/nodes/Resource.java | 83 ++++++------ .../metadata/backend/neo4j/model/nodes/User.java | 36 +++--- 18 files changed, 355 insertions(+), 248 deletions(-) diff --git a/airavata-data-lake.iws b/airavata-data-lake.iws index b0c58e9..16dcad0 100644 --- a/airavata-data-lake.iws +++ b/airavata-data-lake.iws @@ -6,6 +6,22 @@ <component name="ChangeListManager"> <list default="true" id="1d1ef003-bfaa-49fa-837e-dc14d1daa977" name="Default Changelist" comment=""> <change beforePath="$PROJECT_DIR$/airavata-data-lake.iws" beforeDir="false" afterPath="$PROJECT_DIR$/airavata-data-lake.iws" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/resources/application.properties" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResource.proto" beforeDir="false" afterPath="$PROJECT_DIR$/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResource.proto" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/Service.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/Service.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Entity.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Entity.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Resource.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Resource.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/User.java" beforeDir="false" afterPath="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/User.java" afterDir="false" /> </list> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> @@ -259,11 +275,12 @@ <property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> <property name="WebServerToolWindowFactoryState" value="false" /> <property name="aspect.path.notification.shown" value="true" /> - <property name="last_opened_file_path" value="$PROJECT_DIR$/commons/src/main/java/org/apache/airavata/datalake/commons" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources" /> <property name="nodejs_package_manager_path" value="npm" /> </component> <component name="RecentsManager"> <key name="CopyFile.RECENT_KEYS"> + <recent name="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources" /> <recent name="$PROJECT_DIR$/commons/src/main/java/org/apache/airavata/datalake/commons" /> <recent name="$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/interceptors" /> <recent name="$PROJECT_DIR$/metadata-service" /> @@ -273,7 +290,7 @@ <recent name="$PROJECT_DIR$/data-resource-management-service/drms-rest-proxy/src/main/resources" /> </key> </component> - <component name="RunManager" selected="Application.Test"> + <component name="RunManager" selected="Application.Client"> <configuration selected="false" default="true" type="Applet" factoryName="Applet"> <module name="" /> <option name="MAIN_CLASS_NAME" /> @@ -368,10 +385,10 @@ </configuration> <recent_temporary> <list> + <item itemvalue="Application.Client" /> + <item itemvalue="Spring Boot.DRMSApiRunner" /> <item itemvalue="Application.Test" /> <item itemvalue="Spring Boot.Neo4JServiceInitializer" /> - <item itemvalue="Spring Boot.DRMSApiRunner" /> - <item itemvalue="Application.Client" /> </list> </recent_temporary> </component> @@ -419,7 +436,9 @@ <workItem from="1616955618046" duration="1487000" /> <workItem from="1616977751983" duration="68000" /> <workItem from="1617213356776" duration="28852000" /> - <workItem from="1617717367883" duration="12574000" /> + <workItem from="1617717367883" duration="16718000" /> + <workItem from="1619528905307" duration="115000" /> + <workItem from="1620245029118" duration="11436000" /> </task> <servers /> </component> @@ -558,17 +577,12 @@ </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java</url> - <line>78</line> + <line>107</line> <option name="timeStamp" value="19" /> </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java</url> - <line>77</line> - <option name="timeStamp" value="20" /> - </line-breakpoint> - <line-breakpoint enabled="true" type="java-line"> - <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java</url> - <line>73</line> + <line>103</line> <option name="timeStamp" value="22" /> </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> @@ -578,7 +592,7 @@ </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java</url> - <line>68</line> + <line>47</line> <option name="timeStamp" value="25" /> </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> @@ -633,17 +647,17 @@ </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java</url> - <line>57</line> + <line>58</line> <option name="timeStamp" value="45" /> </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java</url> - <line>60</line> + <line>61</line> <option name="timeStamp" value="46" /> </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java</url> - <line>65</line> + <line>66</line> <option name="timeStamp" value="48" /> </line-breakpoint> <line-breakpoint enabled="true" type="java-line"> @@ -671,6 +685,100 @@ <line>18</line> <option name="timeStamp" value="57" /> </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java</url> + <line>129</line> + <option name="timeStamp" value="58" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java</url> + <option name="timeStamp" value="59" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java</url> + <line>108</line> + <option name="timeStamp" value="60" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java</url> + <line>28</line> + <option name="timeStamp" value="62" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java</url> + <line>37</line> + <option name="timeStamp" value="63" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java</url> + <line>132</line> + <option name="timeStamp" value="64" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java</url> + <line>90</line> + <option name="timeStamp" value="65" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java</url> + <line>98</line> + <option name="timeStamp" value="66" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java</url> + <line>103</line> + <option name="timeStamp" value="67" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url> + <line>43</line> + <option name="timeStamp" value="69" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url> + <line>44</line> + <option name="timeStamp" value="71" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url> + <line>51</line> + <option name="timeStamp" value="74" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url> + <line>46</line> + <option name="timeStamp" value="75" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url> + <line>48</line> + <option name="timeStamp" value="77" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url> + <line>55</line> + <option name="timeStamp" value="78" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url> + <line>80</line> + <option name="timeStamp" value="79" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-core/src/main/java/org/apache/airavata/drms/core/deserializer/GenericResourceDeserializer.java</url> + <line>83</line> + <option name="timeStamp" value="80" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java</url> + <line>104</line> + <option name="timeStamp" value="81" /> + </line-breakpoint> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java</url> + <line>89</line> + <option name="timeStamp" value="82" /> + </line-breakpoint> </breakpoints> </breakpoint-manager> </component> diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java index af5e740..184d83a 100644 --- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java +++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/Client.java @@ -16,9 +16,25 @@ */ package org.apache.airavata.drms.api; +import io.grpc.ManagedChannel; +import io.grpc.ManagedChannelBuilder; +import org.apache.airavata.datalake.drms.DRMSServiceAuthToken; +import org.apache.airavata.datalake.drms.groups.*; +import org.apache.airavata.datalake.drms.resource.GenericResource; +import org.apache.airavata.datalake.drms.storage.*; +import org.apache.custos.clients.CustosClientProvider; +import org.apache.custos.clients.core.ClientUtils; +import org.apache.custos.user.management.client.UserManagementClient; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.logging.Logger; + public class Client { public static void main(String ar[]) { -// + // DRMSServiceAuthToken token1 = DRMSServiceAuthToken.newBuilder().setAccessToken("Token-1").build(); // DRMSServiceAuthToken token2 = DRMSServiceAuthToken.newBuilder().setAccessToken("Token-2").build(); // @@ -61,6 +77,20 @@ public class Client { // .setValue("02/15/2021") // .build()); + + ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 6565).usePlaintext().build(); + ResourceServiceGrpc.ResourceServiceBlockingStub resourceClient = ResourceServiceGrpc.newBlockingStub(channel); + + DRMSServiceAuthToken authToken = DRMSServiceAuthToken.newBuilder(). + setAccessToken("eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4bTBuMk91R1hLckxMREZ3S0lBQ2J4T2JMYzUtY0MzRnFkT3M2akdLaGQ4In0.eyJqdGkiOiIwNWI5ZWY0ZS1lYzRkLTQyMWUtOWQ4Zi1lNmQ0NzEyMjczMWEiLCJleHAiOjE2MjA3NDkzODEsIm5iZiI6MCwiaWF0IjoxNjIwNzQ3NTgxLCJpc3MiOiJodHRwczovL2tleWNsb2FrLmN1c3Rvcy5zY2lnYXAub3JnOjMxMDAwL2F1dGgvcmVhbG1zLzEwMDAwNzAyIiwiYXVkIjpbInJlYWxtLW1hbmFnZW1lbnQiLCJhY2NvdW50Il0sInN1YiI6ImU4NzE2NjkzLWE5MzYtNDcwNy1hYjhhLWM2ZGMxYjNiOTcxMSIsInR5cCI6IkJlYXJlciIsImF6cCI6 [...] + .build(); + ResourceSearchRequest request = ResourceSearchRequest.newBuilder().setAuthToken(authToken).build(); + + ResourceSearchResponse response = resourceClient.searchResource(request); + for (GenericResource resource: response.getResourcesList()) { + System.out.println(resource.getType()); + } + // try { // InputStream inputStream = ClientUtils.getServerCertificate("custos.scigap.org", // "custos-2zuomcugra3ebgsqtzmf-10000514", "mupUhF4JL0S3IFHBjfhiTfLJS1NgSWfvkCj3l6c7"); @@ -76,7 +106,7 @@ public class Client { // .setClientId("custos-2zuomcugra3ebgsqtzmf-10000514") // .setClientSec("mupUhF4JL0S3IFHBjfhiTfLJS1NgSWfvkCj3l6c7").build(); // UserManagementClient userManagementClient = custosClientProvider.getUserManagementClient(); -// userManagementClient.getUser("testuser123", "custos-2zuomcugra3ebgsqtzmf-10000514"); +// userManagementClient.getUser("testuser", "custos-cmcdclbywlxmc2ktzv0d-10000702"); // // } catch (Exception ex) { // 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 75ee2a9..ff77b68 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 @@ -17,15 +17,8 @@ package org.apache.airavata.drms.api.handlers; import com.google.protobuf.Empty; -import io.grpc.ManagedChannel; -import io.grpc.ManagedChannelBuilder; import io.grpc.stub.StreamObserver; import org.apache.airavata.datalake.drms.AuthenticatedUser; -import org.apache.airavata.datalake.drms.DRMSServiceAuthToken; -import org.apache.airavata.datalake.drms.groups.FetchCurrentUserRequest; -import org.apache.airavata.datalake.drms.groups.FetchCurrentUserResponse; -import org.apache.airavata.datalake.drms.groups.GroupServiceGrpc; -import org.apache.airavata.datalake.drms.groups.User; import org.apache.airavata.datalake.drms.resource.GenericResource; import org.apache.airavata.datalake.drms.storage.*; import org.apache.airavata.drms.core.Neo4JConnector; @@ -48,20 +41,6 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI @Autowired private Neo4JConnector neo4JConnector; - @org.springframework.beans.factory.annotation.Value("${group.service.host}") - private String groupServiceHost; - - @org.springframework.beans.factory.annotation.Value("${group.service.port}") - private int groupServicePort; - - private User getUser(DRMSServiceAuthToken authToken) { - ManagedChannel channel = ManagedChannelBuilder.forAddress(groupServiceHost, groupServicePort).usePlaintext().build(); - GroupServiceGrpc.GroupServiceBlockingStub groupClient = GroupServiceGrpc.newBlockingStub(channel); - FetchCurrentUserResponse userResponse = groupClient.fetchCurrentUser( - FetchCurrentUserRequest.newBuilder().setAuthToken(authToken).build()); - return userResponse.getUser(); - } - @Override public void fetchResource(ResourceFetchRequest request, StreamObserver<ResourceFetchResponse> responseObserver) { // User callUser = getUser(request.getAuthToken()); @@ -81,7 +60,6 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI responseObserver.onNext(ResourceFetchResponse.newBuilder().setResource(genericResourceList.get(0)).build()); responseObserver.onCompleted(); } catch (Exception e) { - logger.error("Errored while fetching resource with id {}", request.getResourceId(), e); responseObserver.onError(new Exception("Errored while fetching resource with id " + request.getResourceId() + ". Msg " + e.getMessage())); @@ -113,10 +91,15 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser(); // TODO review (u)-[r4:MEMBER_OF]->(g2:Group)<-[r5:SHARED_WITH]-(sp), - List<Record> records = this.neo4JConnector.searchNodes( - "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage)-[r3:HAS_PREFERENCE]->(sp:StoragePreference)-[r6:HAS_RESOURCE]->(res:Resource), " + - "(u)-[r7:MEMBER_OF]->(g3:Group)<-[r8:SHARED_WITH]-(res) " + - "where u.userId = '" + callUser.getUsername() + "' return distinct res, sp, s"); +// List<Record> records = this.neo4JConnector.searchNodes( +// "MATCH (u:User)-[r1:MEMBER_OF]->(g:Group)<-[r2:SHARED_WITH]-(s:Storage)-[r3:HAS_PREFERENCE]->(sp:StoragePreference)-[r6:HAS_RESOURCE]->(res:Resource), " + +// "(u)-[r7:MEMBER_OF]->(g3:Group)<-[r8:SHARED_WITH]-(res) " + +// "where u.userId = '" + callUser.getUsername() + "' return distinct res, sp, s"); + + List<Record> records = this.neo4JConnector.searchNodes("match (u:User)-[:HAS_PERMISSION]->(r) where u.username='" + callUser.getUsername() + "'optional match (u)-[:MEMBER_OF]->(g)-[:HAS_PERMISSION]->(m)<-[:CHILD_OF]-(p) " + + "return distinct r, m,p"); + + try { List<GenericResource> genericResourceList = GenericResourceDeserializer.deserializeList(records); ResourceSearchResponse.Builder builder = ResourceSearchResponse.newBuilder(); diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java index 1a68e6a..0886533 100644 --- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java +++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StoragePreferenceServiceHandler.java @@ -46,20 +46,6 @@ public class StoragePreferenceServiceHandler extends StoragePreferenceServiceGrp @Autowired private Neo4JConnector neo4JConnector; - @org.springframework.beans.factory.annotation.Value("${group.service.host}") - private String groupServiceHost; - - @org.springframework.beans.factory.annotation.Value("${group.service.port}") - private int groupServicePort; - - - private User getUser(DRMSServiceAuthToken authToken) { - ManagedChannel channel = ManagedChannelBuilder.forAddress(groupServiceHost, groupServicePort).usePlaintext().build(); - GroupServiceGrpc.GroupServiceBlockingStub groupClient = GroupServiceGrpc.newBlockingStub(channel); - FetchCurrentUserResponse userResponse = groupClient.fetchCurrentUser( - FetchCurrentUserRequest.newBuilder().setAuthToken(authToken).build()); - return userResponse.getUser(); - } @Override public void fetchStoragePreference(StoragePreferenceFetchRequest request, StreamObserver<StoragePreferenceFetchResponse> responseObserver) { diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java index b078944..40a0e77 100644 --- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java +++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/StorageServiceHandler.java @@ -17,15 +17,8 @@ package org.apache.airavata.drms.api.handlers; import com.google.protobuf.Empty; -import io.grpc.ManagedChannel; -import io.grpc.ManagedChannelBuilder; import io.grpc.stub.StreamObserver; import org.apache.airavata.datalake.drms.AuthenticatedUser; -import org.apache.airavata.datalake.drms.DRMSServiceAuthToken; -import org.apache.airavata.datalake.drms.groups.FetchCurrentUserRequest; -import org.apache.airavata.datalake.drms.groups.FetchCurrentUserResponse; -import org.apache.airavata.datalake.drms.groups.GroupServiceGrpc; -import org.apache.airavata.datalake.drms.groups.User; import org.apache.airavata.datalake.drms.storage.*; import org.apache.airavata.drms.core.Neo4JConnector; import org.apache.airavata.drms.core.constants.StorageConstants; @@ -48,20 +41,6 @@ public class StorageServiceHandler extends StorageServiceGrpc.StorageServiceImpl @Autowired private Neo4JConnector neo4JConnector; - @org.springframework.beans.factory.annotation.Value("${group.service.host}") - private String groupServiceHost; - - @org.springframework.beans.factory.annotation.Value("${group.service.port}") - private int groupServicePort; - - - private User getUser(DRMSServiceAuthToken authToken) { - ManagedChannel channel = ManagedChannelBuilder.forAddress(groupServiceHost, groupServicePort).usePlaintext().build(); - GroupServiceGrpc.GroupServiceBlockingStub groupClient = GroupServiceGrpc.newBlockingStub(channel); - FetchCurrentUserResponse userResponse = groupClient.fetchCurrentUser( - FetchCurrentUserRequest.newBuilder().setAuthToken(authToken).build()); - return userResponse.getUser(); - } @Override public void fetchStorage(StorageFetchRequest request, StreamObserver<StorageFetchResponse> responseObserver) { @@ -92,10 +71,10 @@ public class StorageServiceHandler extends StorageServiceGrpc.StorageServiceImpl @Override public void createStorage(StorageCreateRequest request, StreamObserver<StorageCreateResponse> responseObserver) { - User user = getUser(request.getAuthToken()); + AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser(); AnyStorage storage = request.getStorage(); Map<String, Object> serializedMap = AnyStorageSerializer.serializeToMap(storage); - this.neo4JConnector.createNode(serializedMap, StorageConstants.STORAGE_LABEL, user.getUserId()); + this.neo4JConnector.createNode(serializedMap, StorageConstants.STORAGE_LABEL, callUser.getUsername()); } @Override diff --git a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java index 8476f44..476ec96 100644 --- a/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java +++ b/data-resource-management-service/drms-api/src/main/java/org/apache/airavata/drms/api/interceptors/Authenticator.java @@ -40,6 +40,7 @@ public class Authenticator implements ServiceInterceptor { } + // TODO : replace with security context private Optional<String> getAccessToken(Object msg) { if (msg instanceof StorageCreateRequest) { @@ -104,8 +105,6 @@ public class Authenticator implements ServiceInterceptor { } else if (msg instanceof ResourceDeleteRequest) { - } else if (msg instanceof ResourceSearchRequest) { - } else if (msg instanceof AddResourceMetadataRequest) { } else if (msg instanceof FetchResourceMetadataRequest) { @@ -130,6 +129,17 @@ public class Authenticator implements ServiceInterceptor { } else if (msg instanceof StoragePreferenceSearchRequest) { + }else if (msg instanceof ResourceSearchRequest) { + DRMSServiceAuthToken drmsServiceAuthToken = ((ResourceSearchRequest) msg) + .getAuthToken(); + drmsServiceAuthToken = drmsServiceAuthToken + .toBuilder() + .setAuthenticatedUser(user) + .build(); + + return ((ResourceSearchRequest) msg) + .toBuilder() + .setAuthToken(drmsServiceAuthToken).build(); } return Optional.empty(); } diff --git a/data-resource-management-service/drms-api/src/main/resources/application.properties b/data-resource-management-service/drms-api/src/main/resources/application.properties index d891249..1e261be 100644 --- a/data-resource-management-service/drms-api/src/main/resources/application.properties +++ b/data-resource-management-service/drms-api/src/main/resources/application.properties @@ -16,9 +16,9 @@ # limitations under the License. # -neo4j.server.uri=bolt://192.168.0.14:7687 +neo4j.server.uri=bolt://149.165.156.173:7687 neo4j.server.user=neo4j -neo4j.server.password=123456 +neo4j.server.password=blastcovid19 group.service.host=localhost group.service.port=6565 custos.id=custos-2zuomcugra3ebgsqtzmf-10000514 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 c4f4d97..b5458cb 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 @@ -18,49 +18,42 @@ package org.apache.airavata.drms.core.deserializer; import org.apache.airavata.datalake.drms.resource.GenericResource; -import org.apache.airavata.datalake.drms.storage.AnyStorage; import org.apache.airavata.datalake.drms.storage.AnyStoragePreference; -import org.apache.airavata.drms.core.constants.ResourceConstants; -import org.apache.airavata.drms.core.constants.StorageConstants; -import org.apache.airavata.drms.core.constants.StoragePreferenceConstants; +import org.apache.commons.collections.map.HashedMap; import org.neo4j.driver.Record; import org.neo4j.driver.Value; import org.neo4j.driver.internal.InternalRecord; import org.neo4j.driver.types.Node; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.BeanWrapper; import org.springframework.beans.PropertyAccessorFactory; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; public class GenericResourceDeserializer { + public static final Logger LOGGER = LoggerFactory.getLogger(GenericResourceDeserializer.class); public static List<GenericResource> deserializeList(List<Record> neo4jRecords) throws Exception { - List<GenericResource> resourceList = new ArrayList<>(); + Map<Long, Node> nodeMap = new HashedMap(); for (Record record : neo4jRecords) { InternalRecord internalRecord = (InternalRecord) record; List<Value> values = internalRecord.values(); - if (values.size() == 3) { - Value resourceValue = values.get(0); - Value prfValue = values.get(1); - Value stoValue = values.get(2); - Node resourceNode = resourceValue.asNode(); - Node prefNode = prfValue.asNode(); - Node stoNode = stoValue.asNode(); - if (resourceNode.hasLabel(ResourceConstants.RESOURCE_LABEL) && - prefNode.hasLabel(StoragePreferenceConstants.STORAGE_PREFERENCE_LABEL) && - stoNode.hasLabel(StorageConstants.STORAGE_LABEL)) { - - AnyStorage storage = AnyStorageDeserializer.deriveStorageFromMap(stoNode.asMap()); - AnyStoragePreference preference = AnyStoragePreferenceDeserializer.deriveStoragePrefFromMap( - prefNode.asMap(), storage); - GenericResource genericResource = deriveGenericResourceFromMap(resourceNode.asMap(), preference); - resourceList.add(genericResource); - } + + if (values.size() > 0) { + Map<Long, Node> longNodeMap = values.stream().filter(val -> + val.toString().equals("NULL") ? false : true + ).collect(Collectors.toMap(val -> val.asNode().id(), + Value::asNode,(existing, replacement) -> existing)); + nodeMap.putAll(longNodeMap); } } - return resourceList; + + return deriveGenericResourceFromMap(nodeMap); } public static GenericResource deriveGenericResourceFromMap(Map<String, Object> fixedMap, @@ -68,7 +61,7 @@ public class GenericResourceDeserializer { GenericResource.Builder genericResourceBuilder = GenericResource.newBuilder(); setObjectFieldsUsingMap(genericResourceBuilder, fixedMap); - switch (preference.getStorageCase()){ + switch (preference.getStorageCase()) { case S3STORAGEPREFERENCE: genericResourceBuilder.setS3Preference(preference.getS3StoragePreference()); break; @@ -80,10 +73,28 @@ public class GenericResourceDeserializer { return genericResourceBuilder.build(); } + public static List<GenericResource> deriveGenericResourceFromMap(Map<Long, Node> nodeMap) throws Exception { + return nodeMap.values().stream().map(node -> { + GenericResource.Builder genericResourceBuilder = GenericResource.newBuilder(); + Iterator<String> iterator = node.labels().iterator(); + while (iterator.hasNext()) { + genericResourceBuilder.setType(iterator.next()); + } + for (String field : node.asMap().keySet()) { + genericResourceBuilder.putProperties(field, String.valueOf(node.asMap().get(field))); + } + return genericResourceBuilder.build(); + }).collect(Collectors.toList()); + + } + + private static void setObjectFieldsUsingMap(Object target, Map<String, Object> values) { - for (String field :values.keySet()) { + for (String field : values.keySet()) { BeanWrapper beanWrapper = PropertyAccessorFactory.forBeanPropertyAccess(target); beanWrapper.setPropertyValue(field, values.get(field)); } } + + } diff --git a/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb b/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb index bb14862..528ff35 100644 Binary files a/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb and b/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb differ diff --git a/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb b/data-resource-management-service/drms-stubs/drms.pb similarity index 98% copy from data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb copy to data-resource-management-service/drms-stubs/drms.pb index bb14862..528ff35 100644 Binary files a/data-resource-management-service/drms-rest-proxy/src/main/resources/drms.pb and b/data-resource-management-service/drms-stubs/drms.pb differ diff --git a/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResource.proto b/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResource.proto index adf1231..fb95271 100644 --- a/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResource.proto +++ b/data-resource-management-service/drms-stubs/src/main/proto/resource/DRMSResource.proto @@ -31,4 +31,6 @@ message GenericResource { org.apache.airavata.datalake.drms.storage.preference.s3.S3StoragePreference s3Preference = 3; org.apache.airavata.datalake.drms.storage.preference.ssh.SSHStoragePreference sshPreference = 4; } + map<string, string> properties = 5; + string type=6; } \ No newline at end of file diff --git a/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java b/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java index 4ddd116..4f0155b 100644 --- a/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java +++ b/metadata-service/db-service/client/src/main/java/org/apache/airavata/datalake/metadata/clients/Test.java @@ -297,20 +297,20 @@ public class Test { .setTenant(tenant) .build(); -// stub.createTenant(request); -// + stub.createTenant(request); -// ResourceMetadataServiceGrpc.ResourceMetadataServiceBlockingStub resourceMetadataServiceBlockingStub = serviceClient.resource(); -// -// ResourcePermissionRequest permissionRequest = ResourcePermissionRequest -// .newBuilder() -// .setPermissionType("READ") -// .setUsername("testuser") -// .setResourceName("FileA") -// .setTenantId("custos-cmcdclbywlxmc2ktzv0d-10000702") -// .build(); -// ResourcePermissionResponse response = resourceMetadataServiceBlockingStub.hasAccess(permissionRequest); -// System.out.println(response.getAccessible()); + + ResourceMetadataServiceGrpc.ResourceMetadataServiceBlockingStub resourceMetadataServiceBlockingStub = serviceClient.resource(); + + ResourcePermissionRequest permissionRequest = ResourcePermissionRequest + .newBuilder() + .setPermissionType("READ") + .setUsername("testuser") + .setResourceName("FileA") + .setTenantId("custos-cmcdclbywlxmc2ktzv0d-10000702") + .build(); + ResourcePermissionResponse response = resourceMetadataServiceBlockingStub.hasAccess(permissionRequest); + System.out.println(response.getAccessible()); // TenantMetadataAPIRequest tenantMetadataAPIRequest = TenantMetadataAPIRequest diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java index 389277e..2352bcc 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/GenericService.java @@ -14,6 +14,7 @@ import java.io.IOException; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.UUID; import java.util.concurrent.atomic.AtomicReference; @@ -40,12 +41,12 @@ public abstract class GenericService<T> implements Service<T>, Closeable { } @Override - public T find(Long id) { + public T find(UUID id) { return session.load(getEntityType(), id, DEPTH_ENTITY); } @Override - public void delete(Long id) { + public void delete(UUID id) { session.delete(session.load(getEntityType(), id)); } diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/Service.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/Service.java index e1fecb7..008c086 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/Service.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/curd/operators/Service.java @@ -7,14 +7,15 @@ import org.neo4j.ogm.cypher.query.SortOrder; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.UUID; public interface Service<T> { Iterable<T> findAll(); - T find(Long id); + T find(UUID id); - void delete(Long id); + void delete(UUID id); Collection<T> search(List<SearchOperator> searchOperatorList); diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Entity.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Entity.java index c1a2bcc..0ebec8d 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Entity.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Entity.java @@ -3,14 +3,19 @@ package org.apache.airavata.datalake.metadata.backend.neo4j.model.nodes; import org.apache.airavata.datalake.metadata.backend.neo4j.model.relationships.Has; import org.apache.airavata.datalake.metadata.parsers.ExecutionContext; import org.neo4j.ogm.annotation.*; +import org.neo4j.ogm.annotation.typeconversion.Convert; +import org.neo4j.ogm.id.UuidStrategy; +import org.neo4j.ogm.typeconversion.UuidStringConverter; import java.util.HashMap; import java.util.Map; +import java.util.UUID; public abstract class Entity { @Id - @GeneratedValue - private Long id; + @GeneratedValue(strategy = UuidStrategy.class ) + @Convert(UuidStringConverter.class) + private UUID id; @Properties(prefix = "external_id") private Map<String,String > externalIds = new HashMap<>(); @@ -41,7 +46,7 @@ public abstract class Entity { - public Long getId() { + public UUID getId() { return id; } @@ -109,7 +114,7 @@ public abstract class Entity { this.tenantId = tenantId; } - public void setId(Long id) { + public void setId(UUID id) { this.id = id; } diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java index 9b735ec..1841e43 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Group.java @@ -24,15 +24,15 @@ public class Group extends Entity { @Relationship(type = "HAS_CHILD_GROUP", direction = Relationship.INCOMING) private HasChildGroup childGroupInPointers; +// +// @Relationship(type = "HAS_CHILD_USER") +// private Set<HasChildUser> childUsers = new HashSet<>(); - @Relationship(type = "HAS_CHILD_USER") - private Set<HasChildUser> childUsers = new HashSet<>(); - - @Relationship(type = "HAS_PARENT_GROUP", direction = Relationship.INCOMING) - private final Set<HasParentGroup> parentGroupInPointers = new HashSet<>(); - - @Relationship(type = "HAS_PARENT_GROUP") - private HasParentGroup parent; +// @Relationship(type = "HAS_PARENT_GROUP", direction = Relationship.INCOMING) +// private final Set<HasParentGroup> parentGroupInPointers = new HashSet<>(); +// +// @Relationship(type = "HAS_PARENT_GROUP") +// private HasParentGroup parent; @Relationship(type = "MEMBER_OF", direction = Relationship.INCOMING) private Set<MemberOf> memberUsersInPointers = new HashSet<>(); @@ -40,8 +40,8 @@ public class Group extends Entity { @Relationship(type = "SHARED_WITH", direction = Relationship.INCOMING) private final Set<SharedWith> sharedResourcesInPointers = new HashSet<>(); - @Relationship(type = "HAS_ACCESS") - private final Set<HasAccess> accessibleResources = new HashSet<>(); +// @Relationship(type = "HAS_ACCESS") +// private final Set<HasAccess> accessibleResources = new HashSet<>(); public Group() { @@ -73,13 +73,13 @@ public class Group extends Entity { this.childGroups.add(childGroup); } - public Set<HasChildUser> getChildUsers() { - return childUsers; - } - - public void addChildUser(HasChildUser childUser) { - this.childUsers.add(childUser); - } +// public Set<HasChildUser> getChildUsers() { +// return childUsers; +// } +// +// public void addChildUser(HasChildUser childUser) { +// this.childUsers.add(childUser); +// } public Set<MemberOf> getMemberUsersInPointers() { @@ -98,13 +98,13 @@ public class Group extends Entity { this.sharedResourcesInPointers.add(sharedResourcesInPointer); } - public Set<HasAccess> getAccessibleResources() { - return accessibleResources; - } - - public void addAccessibleResources(HasAccess accessibleResources) { - this.accessibleResources.add(accessibleResources); - } +// public Set<HasAccess> getAccessibleResources() { +// return accessibleResources; +// } +// +// public void addAccessibleResources(HasAccess accessibleResources) { +// this.accessibleResources.add(accessibleResources); +// } public void setChildGroups(Set<HasChildGroup> childGroups) { this.childGroups = childGroups; @@ -118,25 +118,25 @@ public class Group extends Entity { this.childGroupInPointers = childGroupInPointers; } - public void setChildUsers(Set<HasChildUser> childUsers) { - this.childUsers = childUsers; - } - - public Set<HasParentGroup> getParentGroupInPointers() { - return parentGroupInPointers; - } - - private void addParentGroupInPointer(HasParentGroup parentGroup) { - this.parentGroupInPointers.add(parentGroup); - } - - public HasParentGroup getParent() { - return parent; - } - - public void setParent(HasParentGroup parent) { - this.parent = parent; - } +// public void setChildUsers(Set<HasChildUser> childUsers) { +// this.childUsers = childUsers; +// } + +// public Set<HasParentGroup> getParentGroupInPointers() { +// return parentGroupInPointers; +// } +// +// private void addParentGroupInPointer(HasParentGroup parentGroup) { +// this.parentGroupInPointers.add(parentGroup); +// } +// +// public HasParentGroup getParent() { +// return parent; +// } +// +// public void setParent(HasParentGroup parent) { +// this.parent = parent; +// } public void setMemberUsersInPointers(Set<MemberOf> memberUsersInPointers) { this.memberUsersInPointers = memberUsersInPointers; @@ -160,8 +160,8 @@ public class Group extends Entity { childUser.setUserType(membership); childUser.setStartEntity(this); childUser.setEndEntity(user); - user.addGroup(childUser); - this.addChildUser(childUser); +// user.addGroup(childUser); +// this.addChildUser(childUser); if (relationshipCreatedAt != 0) { memberOf.setCreatedAt(relationshipCreatedAt); @@ -188,22 +188,22 @@ public class Group extends Entity { this.addChildGroup(hasChildGroup); group.setChildGroupInPointers(hasChildGroup); - HasParentGroup hasParentGroup = new HasParentGroup(); - hasParentGroup.setStartEntity(group); - hasParentGroup.setEndEntity(this); - group.setParent(hasParentGroup); - this.addParentGroupInPointer(hasParentGroup); +// HasParentGroup hasParentGroup = new HasParentGroup(); +// hasParentGroup.setStartEntity(group); +// hasParentGroup.setEndEntity(this); +// group.setParent(hasParentGroup); +// this.addParentGroupInPointer(hasParentGroup); if (relationShipCreatedAt != 0) { - hasParentGroup.setCreatedAt(relationShipCreatedAt); +// hasParentGroup.setCreatedAt(relationShipCreatedAt); hasChildGroup.setCreatedAt(relationShipCreatedAt); } if (relationShipModifiedAt != 0) { - hasParentGroup.setLastModifiedAt(relationShipModifiedAt); +// hasParentGroup.setLastModifiedAt(relationShipModifiedAt); hasChildGroup.setLastModifiedAt(relationShipModifiedAt); } if (relationshipProperties != null) { - hasParentGroup.setProperties(relationshipProperties); +// hasParentGroup.setProperties(relationshipProperties); hasChildGroup.setProperties(relationshipProperties); } diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Resource.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Resource.java index a61848b..aea5eba 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Resource.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/Resource.java @@ -7,13 +7,12 @@ import org.neo4j.ogm.annotation.*; import java.util.HashSet; import java.util.Map; import java.util.Set; +import java.util.UUID; @NodeEntity public class Resource extends Entity { - @Id - @GeneratedValue - private Long id; + @Property(name = "name") private String name; @@ -27,17 +26,17 @@ public class Resource extends Entity { @Relationship(type = "HAS_CHILD_RESOURCE", direction = Relationship.INCOMING) private HasChildResource parentInPointer; - @Relationship(type = "HAS_PARENT_RESOURCE", direction = Relationship.INCOMING) - private final Set<HasParentResource> childInPointers = new HashSet<>(); - - @Relationship(type = "HAS_PARENT_RESOURCE") - private HasParentResource parent; +// @Relationship(type = "HAS_PARENT_RESOURCE", direction = Relationship.INCOMING) +// private final Set<HasParentResource> childInPointers = new HashSet<>(); +// +// @Relationship(type = "HAS_PARENT_RESOURCE") +// private HasParentResource parent; @Relationship(type = "SHARED_WITH") private final Set<SharedWith> shares = new HashSet<>(); - @Relationship(type = "HAS_ACCESS", direction = Relationship.INCOMING) - private final Set<HasAccess> accesses = new HashSet<>(); +// @Relationship(type = "HAS_ACCESS", direction = Relationship.INCOMING) +// private final Set<HasAccess> accesses = new HashSet<>(); public Resource() { } @@ -59,21 +58,21 @@ public class Resource extends Entity { this.childResourceSet.add(childResource); } - public Set<HasParentResource> getChildInPointers() { - return childInPointers; - } - - public void addChildInPointers(HasParentResource childInPointers) { - this.childInPointers.add(childInPointers); - } - - public HasParentResource getParent() { - return parent; - } - - public void setParent(HasParentResource parent) { - this.parent = parent; - } +// public Set<HasParentResource> getChildInPointers() { +// return childInPointers; +// } +// +// public void addChildInPointers(HasParentResource childInPointers) { +// this.childInPointers.add(childInPointers); +// } +// +// public HasParentResource getParent() { +// return parent; +// } +// +// public void setParent(HasParentResource parent) { +// this.parent = parent; +// } public HasChildResource getParentInPointer() { return parentInPointer; @@ -99,28 +98,20 @@ public class Resource extends Entity { this.shares.add(share); } - public Set<HasAccess> getAccesses() { - return accesses; - } - - public void addAccess(HasAccess access) { - this.accesses.add(access); - } +// public Set<HasAccess> getAccesses() { +// return accesses; +// } +// +// public void addAccess(HasAccess access) { +// this.accesses.add(access); +// } @Override public String getSearchableId() { return this.getName()+"@"+this.getTenantId(); } - @Override - public Long getId() { - return id; - } - @Override - public void setId(Long id) { - this.id = id; - } public void addChildResource(Resource resource, long createdAt, long lastModifiedAt, Map<String, String> properties) { @@ -133,8 +124,8 @@ public class Resource extends Entity { HasParentResource hasParentResource = new HasParentResource(); hasParentResource.setStartEntity(resource); hasParentResource.setEndEntity(this); - resource.setParent(hasParentResource); - this.addChildInPointers(hasParentResource); +// resource.setParent(hasParentResource); +// this.addChildInPointers(hasParentResource); if (createdAt != 0) { hasParentResource.setCreatedAt(createdAt); @@ -165,8 +156,8 @@ public class Resource extends Entity { hasAccess.setStartEntity(user); hasAccess.setEndEntity(this); hasAccess.setPermissionType(permission); - this.addAccess(hasAccess); - user.addAccessibleResources(hasAccess); +// this.addAccess(hasAccess); +// user.addAccessibleResources(hasAccess); if (createdAt != 0) { sharedWith.setCreatedAt(createdAt); @@ -197,8 +188,8 @@ public class Resource extends Entity { hasAccess.setStartEntity(group); hasAccess.setEndEntity(this); hasAccess.setPermissionType(permission); - this.addAccess(hasAccess); - group.addAccessibleResources(hasAccess); +// this.addAccess(hasAccess); +// group.addAccessibleResources(hasAccess); if (relationshipCreatedAt != 0) { sharedWith.setCreatedAt(relationshipCreatedAt); diff --git a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/User.java b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/User.java index 10a00ff..326d11d 100644 --- a/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/User.java +++ b/metadata-service/db-service/server/src/main/java/org/apache/airavata/datalake/metadata/backend/neo4j/model/nodes/User.java @@ -30,14 +30,14 @@ public class User extends Entity { @Relationship(type = "MEMBER_OF") private final Set<MemberOf> memberGroups = new HashSet<>(); - @Relationship(type = "HAS_CHILD_USER", direction = Relationship.INCOMING) - private final Set<HasChildUser> groups = new HashSet<>(); +// @Relationship(type = "HAS_CHILD_USER", direction = Relationship.INCOMING) +// private final Set<HasChildUser> groups = new HashSet<>(); @Relationship(type = "SHARED_WITH", direction = Relationship.INCOMING) private final Set<SharedWith> sharedResources = new HashSet<>(); - @Relationship(type = "HAS_ACCESS") - private final Set<HasAccess> accessibleResources = new HashSet<>(); +// @Relationship(type = "HAS_ACCESS") +// private final Set<HasAccess> accessibleResources = new HashSet<>(); public User() { } @@ -106,13 +106,13 @@ public class User extends Entity { this.memberGroups.add(memberGroup); } - public Set<HasChildUser> getGroups() { - return groups; - } - - public void addGroup(HasChildUser hasChildUser) { - this.groups.add(hasChildUser); - } +// public Set<HasChildUser> getGroups() { +// return groups; +// } +// +// public void addGroup(HasChildUser hasChildUser) { +// this.groups.add(hasChildUser); +// } public Set<SharedWith> getSharedResources() { return sharedResources; @@ -122,13 +122,13 @@ public class User extends Entity { this.sharedResources.add(sharedResource); } - public Set<HasAccess> getAccessibleResources() { - return accessibleResources; - } - - public void addAccessibleResources(HasAccess accessibleResources) { - this.accessibleResources.add(accessibleResources); - } +// public Set<HasAccess> getAccessibleResources() { +// return accessibleResources; +// } +// +// public void addAccessibleResources(HasAccess accessibleResources) { +// this.accessibleResources.add(accessibleResources); +// } @Override public String getSearchableId() {
