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