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

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit aca7932eed59bae354957e7659cb9ee05660b345
Author: Andrea Cosentino <[email protected]>
AuthorDate: Tue Feb 22 11:28:17 2022 +0100

    CAMEL-17691 - Camel Google Secret Manager: Add more operations - 
deleteSecret
---
 .../manager/GoogleSecretManagerProducer.java       | 24 +++++++++++++---------
 .../manager/integration/GoogleSecretManagerIT.java | 17 +++++++++++++++
 2 files changed, 31 insertions(+), 10 deletions(-)

diff --git 
a/components/camel-google/camel-google-secrets-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerProducer.java
 
b/components/camel-google/camel-google-secrets-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerProducer.java
index 3f5b5f5..9bc631e 100644
--- 
a/components/camel-google/camel-google-secrets-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerProducer.java
+++ 
b/components/camel-google/camel-google-secrets-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerProducer.java
@@ -16,16 +16,7 @@
  */
 package org.apache.camel.component.google.secret.manager;
 
-import com.google.cloud.secretmanager.v1.AccessSecretVersionRequest;
-import com.google.cloud.secretmanager.v1.AccessSecretVersionResponse;
-import com.google.cloud.secretmanager.v1.AddSecretVersionRequest;
-import com.google.cloud.secretmanager.v1.ProjectName;
-import com.google.cloud.secretmanager.v1.Replication;
-import com.google.cloud.secretmanager.v1.Secret;
-import com.google.cloud.secretmanager.v1.SecretManagerServiceClient;
-import com.google.cloud.secretmanager.v1.SecretPayload;
-import com.google.cloud.secretmanager.v1.SecretVersion;
-import com.google.cloud.secretmanager.v1.SecretVersionName;
+import com.google.cloud.secretmanager.v1.*;
 import com.google.protobuf.ByteString;
 import org.apache.camel.Exchange;
 import org.apache.camel.InvalidPayloadException;
@@ -56,6 +47,9 @@ public class GoogleSecretManagerProducer extends 
DefaultProducer {
             case getSecretVersion:
                 getSecretVersion(endpoint.getClient(), exchange);
                 break;
+            case deleteSecret:
+                deleteSecret(endpoint.getClient(), exchange);
+                break;
             default:
                 throw new IllegalArgumentException("Unsupported operation");
         }
@@ -103,6 +97,16 @@ public class GoogleSecretManagerProducer extends 
DefaultProducer {
         message.setBody(response.getPayload().getData().toStringUtf8());
     }
 
+    private void deleteSecret(SecretManagerServiceClient client, Exchange 
exchange) throws InvalidPayloadException {
+        if (getConfiguration().isPojoRequest()) {
+            DeleteSecretRequest request = 
exchange.getIn().getMandatoryBody(DeleteSecretRequest.class);
+            client.deleteSecret(request);
+        } else {
+            String secretId = 
exchange.getMessage().getHeader(GoogleSecretManagerConstants.SECRET_ID, 
String.class);
+            client.deleteSecret(SecretName.of(getConfiguration().getProject(), 
secretId));
+        }
+    }
+
     private GoogleSecretManagerOperations determineOperation(Exchange 
exchange) {
         GoogleSecretManagerOperations operation = 
exchange.getIn().getHeader(GoogleSecretManagerConstants.OPERATION,
                 GoogleSecretManagerOperations.class);
diff --git 
a/components/camel-google/camel-google-secrets-manager/src/test/java/org/apache/camel/component/google/secret/manager/integration/GoogleSecretManagerIT.java
 
b/components/camel-google/camel-google-secrets-manager/src/test/java/org/apache/camel/component/google/secret/manager/integration/GoogleSecretManagerIT.java
index 0530675..55a6ef4 100644
--- 
a/components/camel-google/camel-google-secrets-manager/src/test/java/org/apache/camel/component/google/secret/manager/integration/GoogleSecretManagerIT.java
+++ 
b/components/camel-google/camel-google-secrets-manager/src/test/java/org/apache/camel/component/google/secret/manager/integration/GoogleSecretManagerIT.java
@@ -27,6 +27,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 @EnabledIfEnvironmentVariable(named = "GOOGLE_APPLICATION_CREDENTIALS", 
matches = ".*",
                               disabledReason = "Application credentials were 
not provided")
@@ -39,6 +40,8 @@ public class GoogleSecretManagerIT extends CamelTestSupport {
     private MockEndpoint mockSecret;
     @EndpointInject("mock:getSecret")
     private MockEndpoint mockGetSecret;
+    @EndpointInject("mock:deleteSecret")
+    private MockEndpoint mockDeleteSecret;
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
@@ -55,6 +58,10 @@ public class GoogleSecretManagerIT extends CamelTestSupport {
                                                    + serviceAccountKeyFile + 
"&operation=getSecretVersion")
                         .to("mock:getSecret");
 
+                from("direct:deleteSecret").to("google-secret-manager://" + 
project + "?serviceAccountKey="
+                                + serviceAccountKeyFile + 
"&operation=deleteSecret")
+                        .to("mock:deleteSecret");
+
             }
         };
     }
@@ -64,6 +71,7 @@ public class GoogleSecretManagerIT extends CamelTestSupport {
 
         mockSecret.expectedMessageCount(1);
         mockGetSecret.expectedMessageCount(1);
+        mockDeleteSecret.expectedMessageCount(1);
 
         template.send("direct:createSecret", new Processor() {
 
@@ -91,6 +99,15 @@ public class GoogleSecretManagerIT extends CamelTestSupport {
         });
 
         assertEquals("Hello", ex.getMessage().getBody());
+
+        ex = template.request("direct:deleteSecret", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                
exchange.getMessage().setHeader(GoogleSecretManagerConstants.SECRET_ID, 
"test123");
+            }
+        });
+
+        assertNotNull(ex.getMessage());
     }
 
 }

Reply via email to