You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by di...@apache.org on 2020/04/24 17:53:54 UTC

[airavata-mft] 06/11: Adding proto files and relevant stub function in secret-service for Dropbox transport implementation.

This is an automated email from the ASF dual-hosted git repository.

dimuthuupe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-mft.git

commit a0dc79619b73ede94941c7609363e144f0f444cc
Author: Akshay <ak...@gmail.com>
AuthorDate: Thu Apr 23 15:34:53 2020 -0400

    Adding proto files and relevant stub function in secret-service for Dropbox transport implementation.
---
 .../mft/secret/server/backend/SecretBackend.java   |  5 ++
 .../backend/airavata/AiravataSecretBackend.java    | 20 ++++++++
 .../backend/file/FileBasedSecretBackend.java       | 20 ++++++++
 .../server/backend/sql/SQLSecretBackend.java       | 20 ++++++++
 .../server/handler/SecretServiceHandler.java       | 58 ++++++++++++++++++++++
 .../main/resources/distribution/conf/secrets.json  |  5 ++
 .../server/src/main/resources/secrets.json         |  5 ++
 .../stub/src/main/proto/SecretService.proto        | 55 ++++++++++++++++++++
 8 files changed, 188 insertions(+)

diff --git a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/SecretBackend.java b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/SecretBackend.java
index ecf30bb..248f45b 100644
--- a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/SecretBackend.java
+++ b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/SecretBackend.java
@@ -50,4 +50,9 @@ public interface SecretBackend {
     public GCSSecret createGCSSecret(GCSSecretCreateRequest request) throws Exception;
     public boolean updateGCSSecret(GCSSecretUpdateRequest request) throws Exception;
     public boolean deleteGCSSecret(GCSSecretDeleteRequest request) throws Exception;
+
+    public Optional<DropboxSecret> getDropboxSecret(DropboxSecretGetRequest request) throws Exception;
+    public DropboxSecret createDropboxSecret(DropboxSecretCreateRequest request) throws Exception;
+    public boolean updateDropboxSecret(DropboxSecretUpdateRequest request) throws Exception;
+    public boolean deleteDropboxSecret(DropboxSecretDeleteRequest request) throws Exception;
 }
diff --git a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/airavata/AiravataSecretBackend.java b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/airavata/AiravataSecretBackend.java
index 3cd725d..83e8147 100644
--- a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/airavata/AiravataSecretBackend.java
+++ b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/airavata/AiravataSecretBackend.java
@@ -160,5 +160,25 @@ public class AiravataSecretBackend implements SecretBackend {
         throw new UnsupportedOperationException("Operation is not supported in backend");
     }
 
+    @Override
+    public Optional<DropboxSecret> getDropboxSecret(DropboxSecretGetRequest request) throws Exception {
+        throw new UnsupportedOperationException("Operation is not supported in backend");
+    }
+
+    @Override
+    public DropboxSecret createDropboxSecret(DropboxSecretCreateRequest request) throws Exception {
+        throw new UnsupportedOperationException("Operation is not supported in backend");
+    }
+
+    @Override
+    public boolean updateDropboxSecret(DropboxSecretUpdateRequest request) throws Exception {
+        throw new UnsupportedOperationException("Operation is not supported in backend");
+    }
+
+    @Override
+    public boolean deleteDropboxSecret(DropboxSecretDeleteRequest request) throws Exception {
+        throw new UnsupportedOperationException("Operation is not supported in backend");
+    }
+
 
 }
diff --git a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/file/FileBasedSecretBackend.java b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/file/FileBasedSecretBackend.java
index 7861e4f..3e1d6fa 100644
--- a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/file/FileBasedSecretBackend.java
+++ b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/file/FileBasedSecretBackend.java
@@ -253,5 +253,25 @@ public class FileBasedSecretBackend implements SecretBackend {
         throw new UnsupportedOperationException("Operation is not supported in backend");
     }
 
+    @Override
+    public Optional<DropboxSecret> getDropboxSecret(DropboxSecretGetRequest request) throws Exception {
+        throw new UnsupportedOperationException("Operation is not supported in backend");
+    }
+
+    @Override
+    public DropboxSecret createDropboxSecret(DropboxSecretCreateRequest request) throws Exception {
+        throw new UnsupportedOperationException("Operation is not supported in backend");
+    }
+
+    @Override
+    public boolean updateDropboxSecret(DropboxSecretUpdateRequest request) throws Exception {
+        throw new UnsupportedOperationException("Operation is not supported in backend");
+    }
+
+    @Override
+    public boolean deleteDropboxSecret(DropboxSecretDeleteRequest request) throws Exception {
+        throw new UnsupportedOperationException("Operation is not supported in backend");
+    }
+
 
 }
diff --git a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/sql/SQLSecretBackend.java b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/sql/SQLSecretBackend.java
index a962e0b..f642f7c 100644
--- a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/sql/SQLSecretBackend.java
+++ b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/sql/SQLSecretBackend.java
@@ -151,4 +151,24 @@ public class SQLSecretBackend implements SecretBackend {
         throw new UnsupportedOperationException("Operation is not supported in backend");
     }
 
+    @Override
+    public Optional<DropboxSecret> getDropboxSecret(DropboxSecretGetRequest request) throws Exception {
+        throw new UnsupportedOperationException("Operation is not supported in backend");
+    }
+
+    @Override
+    public DropboxSecret createDropboxSecret(DropboxSecretCreateRequest request) throws Exception {
+        throw new UnsupportedOperationException("Operation is not supported in backend");
+    }
+
+    @Override
+    public boolean updateDropboxSecret(DropboxSecretUpdateRequest request) throws Exception {
+        throw new UnsupportedOperationException("Operation is not supported in backend");
+    }
+
+    @Override
+    public boolean deleteDropboxSecret(DropboxSecretDeleteRequest request) throws Exception {
+        throw new UnsupportedOperationException("Operation is not supported in backend");
+    }
+
 }
diff --git a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/handler/SecretServiceHandler.java b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/handler/SecretServiceHandler.java
index 79e6cba..3345db7 100644
--- a/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/handler/SecretServiceHandler.java
+++ b/services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/handler/SecretServiceHandler.java
@@ -307,5 +307,63 @@ public class SecretServiceHandler extends SecretServiceGrpc.SecretServiceImplBas
         }
     }
 
+    // Dropbox
+
+    @Override
+    public void getDropboxSecret(DropboxSecretGetRequest request, StreamObserver<DropboxSecret> responseObserver) {
+        try {
+            this.backend.getDropboxSecret(request).ifPresentOrElse(secret -> {
+                responseObserver.onNext(secret);
+                responseObserver.onCompleted();
+            }, () -> {
+                responseObserver.onError(Status.INTERNAL
+                        .withDescription("No Dropbox Secret with id " + request.getSecretId())
+                        .asRuntimeException());
+            });
+
+        } catch (Exception e) {
+            logger.error("Error in retrieving Dropbox Secret with id " + request.getSecretId(), e);
+            responseObserver.onError(Status.INTERNAL.withCause(e)
+                    .withDescription("Error in retrieving Dropbox Secret with id " + request.getSecretId())
+                    .asRuntimeException());
+        }
+    }
+
+    @Override
+    public void createDropboxSecret(DropboxSecretCreateRequest request, StreamObserver<DropboxSecret> responseObserver) {
+        try {
+            this.backend.createDropboxSecret(request);
+        } catch (Exception e) {
+            logger.error("Error in creating Dropbox Secret", e);
+            responseObserver.onError(Status.INTERNAL.withCause(e)
+                    .withDescription("Error in creating Dropbox Secret")
+                    .asRuntimeException());
+        }
+    }
+
+    @Override
+    public void updateDropboxSecret(DropboxSecretUpdateRequest request, StreamObserver<Empty> responseObserver) {
+        try {
+            this.backend.updateDropboxSecret(request);
+        } catch (Exception e) {
+            logger.error("Error in updating Dropbox Secret with id {}", request.getSecretId(), e);
+            responseObserver.onError(Status.INTERNAL.withCause(e)
+                    .withDescription("Error in updating Dropbox Secret with id " + request.getSecretId())
+                    .asRuntimeException());
+        }
+    }
+
+    @Override
+    public void deleteDropboxSecret(DropboxSecretDeleteRequest request, StreamObserver<Empty> responseObserver) {
+        try {
+            this.backend.deleteDropboxSecret(request);
+        } catch (Exception e) {
+            logger.error("Error in deleting Dropbox Secret with id {}", request.getSecretId(), e);
+            responseObserver.onError(Status.INTERNAL.withCause(e)
+                    .withDescription("Error in deleting Dropbox Secret with id " + request.getSecretId())
+                    .asRuntimeException());
+        }
+    }
+
 
 }
diff --git a/services/secret-service/server/src/main/resources/distribution/conf/secrets.json b/services/secret-service/server/src/main/resources/distribution/conf/secrets.json
index 39c10ea..3e9435f 100644
--- a/services/secret-service/server/src/main/resources/distribution/conf/secrets.json
+++ b/services/secret-service/server/src/main/resources/distribution/conf/secrets.json
@@ -26,5 +26,10 @@
     "type": "GCS",
     "secretId": "gcs-cred",
     "credentialsJson": ""
+  },
+  {
+    "type": "DROPBOX",
+    "secretId": "dropbox-cred",
+    "accessToken": ""
   }
 ]
\ No newline at end of file
diff --git a/services/secret-service/server/src/main/resources/secrets.json b/services/secret-service/server/src/main/resources/secrets.json
index 6350628..210ae85 100644
--- a/services/secret-service/server/src/main/resources/secrets.json
+++ b/services/secret-service/server/src/main/resources/secrets.json
@@ -27,5 +27,10 @@
     "type": "GCS",
     "secretId": "gcs-cred",
     "credentialsJson": ""
+  },
+  {
+    "type": "DROPBOX",
+    "secretId": "dropbox-cred",
+    "accessToken": ""
   }
 ]
\ No newline at end of file
diff --git a/services/secret-service/stub/src/main/proto/SecretService.proto b/services/secret-service/stub/src/main/proto/SecretService.proto
index f59fd8a..fd7e897 100644
--- a/services/secret-service/stub/src/main/proto/SecretService.proto
+++ b/services/secret-service/stub/src/main/proto/SecretService.proto
@@ -171,6 +171,35 @@ message BoxSecretDeleteRequest {
     string secretId = 1;
     AuthToken authzToken = 2;
 }
+
+// DropBox
+
+message DropboxSecret {
+    string secretId = 1;
+    string accessToken = 2;
+}
+
+message DropboxSecretGetRequest {
+    string secretId = 1;
+    AuthToken authzToken = 2;
+}
+
+message DropboxSecretCreateRequest {
+    string accessToken = 1;
+    AuthToken authzToken = 2;
+}
+
+message DropboxSecretUpdateRequest {
+    string secretId = 1;
+    string accessToken = 2;
+    AuthToken authzToken = 3;
+}
+
+message DropboxSecretDeleteRequest {
+    string secretId = 1;
+    AuthToken authzToken = 2;
+}
+
 service  SecretService {
     rpc getSCPSecret (SCPSecretGetRequest) returns (SCPSecret) {
         option (google.api.http) = {
@@ -296,4 +325,30 @@ service  SecretService {
         };
     }
 
+    // Dropbox
+
+    rpc getDropboxSecret (DropboxSecretGetRequest) returns (DropboxSecret) {
+        option (google.api.http) = {
+            get: "/v1.0/secret/dropbox"
+        };
+    }
+
+    rpc createDropboxSecret (DropboxSecretCreateRequest) returns (DropboxSecret) {
+        option (google.api.http) = {
+            post: "/v1.0/secret/dropbox"
+        };
+    }
+
+    rpc updateDropboxSecret (DropboxSecretUpdateRequest) returns (google.protobuf.Empty) {
+        option (google.api.http) = {
+            put: "/v1.0/secret/dropbox"
+        };
+    }
+
+    rpc deleteDropboxSecret (DropboxSecretDeleteRequest) returns (google.protobuf.Empty) {
+        option (google.api.http) = {
+            delete: "/v1.0/secret/dropbox"
+        };
+    }
+
 }
\ No newline at end of file