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
The following commit(s) were added to refs/heads/main by this push:
new c32775b29b5 CAMEL-21323 - Camel-AWS-Secrets-Manager: Add a
PutSecretValue operation to producer (#15866)
c32775b29b5 is described below
commit c32775b29b546e45a52d21879299e3db3f12c3d3
Author: Andrea Cosentino <[email protected]>
AuthorDate: Mon Oct 7 13:54:19 2024 +0200
CAMEL-21323 - Camel-AWS-Secrets-Manager: Add a PutSecretValue operation to
producer (#15866)
Signed-off-by: Andrea Cosentino <[email protected]>
---
.../catalog/components/aws-secrets-manager.json | 4 +-
.../aws/secretsmanager/aws-secrets-manager.json | 4 +-
.../secretsmanager/SecretsManagerOperations.java | 3 +-
.../aws/secretsmanager/SecretsManagerProducer.java | 58 ++++++++++++++--------
...ManagerPutSecretValueProducerLocalstackIT.java} | 26 +++++-----
...etsManagerUpdateSecretProducerLocalstackIT.java | 12 ++---
6 files changed, 60 insertions(+), 47 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-secrets-manager.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-secrets-manager.json
index 9c7d8c9103c..0e565b44391 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-secrets-manager.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-secrets-manager.json
@@ -28,7 +28,7 @@
"binaryPayload": { "index": 0, "kind": "property", "displayName": "Binary
Payload", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "Set if the secret is
binary or not" },
"configuration": { "index": 1, "kind": "property", "displayName":
"Configuration", "group": "producer", "label": "", "required": false, "type":
"object", "javaType":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"deprecated": false, "autowired": false, "secret": false, "description":
"Component configuration" },
"lazyStartProducer": { "index": 2, "kind": "property", "displayName":
"Lazy Start Producer", "group": "producer", "label": "producer", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": false, "description":
"Whether the producer should be started lazy (on the first message). By
starting lazy you can use this to allow CamelContext and routes to startup in
situations where a producer may otherwise fail [...]
- "operation": { "index": 3, "kind": "property", "displayName": "Operation",
"group": "producer", "label": "", "required": true, "type": "object",
"javaType":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations",
"enum": [ "listSecrets", "createSecret", "getSecret", "batchGetSecret",
"describeSecret", "deleteSecret", "rotateSecret", "updateSecret",
"restoreSecret", "replicateSecretToRegions" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret" [...]
+ "operation": { "index": 3, "kind": "property", "displayName": "Operation",
"group": "producer", "label": "", "required": true, "type": "object",
"javaType":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations",
"enum": [ "listSecrets", "createSecret", "getSecret", "batchGetSecret",
"describeSecret", "deleteSecret", "rotateSecret", "updateSecret",
"restoreSecret", "replicateSecretToRegions", "putSecretValue" ], "deprecated":
false, "deprecationNote": "", "autowired [...]
"overrideEndpoint": { "index": 4, "kind": "property", "displayName":
"Override Endpoint", "group": "producer", "label": "", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "Set the need for
overriding the endpoint. This option needs to be us [...]
"pojoRequest": { "index": 5, "kind": "property", "displayName": "Pojo
Request", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "If we want to use a POJO
request as body or not" },
"profileCredentialsName": { "index": 6, "kind": "property", "displayName":
"Profile Credentials Name", "group": "producer", "label": "", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "If using a profile
credentials provider, this parameter will set the p [...]
@@ -64,7 +64,7 @@
"properties": {
"label": { "index": 0, "kind": "path", "displayName": "Label", "group":
"producer", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "Logical name" },
"binaryPayload": { "index": 1, "kind": "parameter", "displayName": "Binary
Payload", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "Set if the secret is
binary or not" },
- "operation": { "index": 2, "kind": "parameter", "displayName":
"Operation", "group": "producer", "label": "", "required": true, "type":
"object", "javaType":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations",
"enum": [ "listSecrets", "createSecret", "getSecret", "batchGetSecret",
"describeSecret", "deleteSecret", "rotateSecret", "updateSecret",
"restoreSecret", "replicateSecretToRegions" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret [...]
+ "operation": { "index": 2, "kind": "parameter", "displayName":
"Operation", "group": "producer", "label": "", "required": true, "type":
"object", "javaType":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations",
"enum": [ "listSecrets", "createSecret", "getSecret", "batchGetSecret",
"describeSecret", "deleteSecret", "rotateSecret", "updateSecret",
"restoreSecret", "replicateSecretToRegions", "putSecretValue" ], "deprecated":
false, "deprecationNote": "", "autowire [...]
"overrideEndpoint": { "index": 3, "kind": "parameter", "displayName":
"Override Endpoint", "group": "producer", "label": "", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "Set the need for
overriding the endpoint. This option needs to be u [...]
"pojoRequest": { "index": 4, "kind": "parameter", "displayName": "Pojo
Request", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "If we want to use a POJO
request as body or not" },
"profileCredentialsName": { "index": 5, "kind": "parameter",
"displayName": "Profile Credentials Name", "group": "producer", "label": "",
"required": false, "type": "string", "javaType": "java.lang.String",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "If using a profile
credentials provider, this parameter will set the [...]
diff --git
a/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/component/aws/secretsmanager/aws-secrets-manager.json
b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/component/aws/secretsmanager/aws-secrets-manager.json
index 9c7d8c9103c..0e565b44391 100644
---
a/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/component/aws/secretsmanager/aws-secrets-manager.json
+++
b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/component/aws/secretsmanager/aws-secrets-manager.json
@@ -28,7 +28,7 @@
"binaryPayload": { "index": 0, "kind": "property", "displayName": "Binary
Payload", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "Set if the secret is
binary or not" },
"configuration": { "index": 1, "kind": "property", "displayName":
"Configuration", "group": "producer", "label": "", "required": false, "type":
"object", "javaType":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"deprecated": false, "autowired": false, "secret": false, "description":
"Component configuration" },
"lazyStartProducer": { "index": 2, "kind": "property", "displayName":
"Lazy Start Producer", "group": "producer", "label": "producer", "required":
false, "type": "boolean", "javaType": "boolean", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": false, "description":
"Whether the producer should be started lazy (on the first message). By
starting lazy you can use this to allow CamelContext and routes to startup in
situations where a producer may otherwise fail [...]
- "operation": { "index": 3, "kind": "property", "displayName": "Operation",
"group": "producer", "label": "", "required": true, "type": "object",
"javaType":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations",
"enum": [ "listSecrets", "createSecret", "getSecret", "batchGetSecret",
"describeSecret", "deleteSecret", "rotateSecret", "updateSecret",
"restoreSecret", "replicateSecretToRegions" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret" [...]
+ "operation": { "index": 3, "kind": "property", "displayName": "Operation",
"group": "producer", "label": "", "required": true, "type": "object",
"javaType":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations",
"enum": [ "listSecrets", "createSecret", "getSecret", "batchGetSecret",
"describeSecret", "deleteSecret", "rotateSecret", "updateSecret",
"restoreSecret", "replicateSecretToRegions", "putSecretValue" ], "deprecated":
false, "deprecationNote": "", "autowired [...]
"overrideEndpoint": { "index": 4, "kind": "property", "displayName":
"Override Endpoint", "group": "producer", "label": "", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "Set the need for
overriding the endpoint. This option needs to be us [...]
"pojoRequest": { "index": 5, "kind": "property", "displayName": "Pojo
Request", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "If we want to use a POJO
request as body or not" },
"profileCredentialsName": { "index": 6, "kind": "property", "displayName":
"Profile Credentials Name", "group": "producer", "label": "", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "If using a profile
credentials provider, this parameter will set the p [...]
@@ -64,7 +64,7 @@
"properties": {
"label": { "index": 0, "kind": "path", "displayName": "Label", "group":
"producer", "label": "", "required": true, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "Logical name" },
"binaryPayload": { "index": 1, "kind": "parameter", "displayName": "Binary
Payload", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "Set if the secret is
binary or not" },
- "operation": { "index": 2, "kind": "parameter", "displayName":
"Operation", "group": "producer", "label": "", "required": true, "type":
"object", "javaType":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations",
"enum": [ "listSecrets", "createSecret", "getSecret", "batchGetSecret",
"describeSecret", "deleteSecret", "rotateSecret", "updateSecret",
"restoreSecret", "replicateSecretToRegions" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret [...]
+ "operation": { "index": 2, "kind": "parameter", "displayName":
"Operation", "group": "producer", "label": "", "required": true, "type":
"object", "javaType":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations",
"enum": [ "listSecrets", "createSecret", "getSecret", "batchGetSecret",
"describeSecret", "deleteSecret", "rotateSecret", "updateSecret",
"restoreSecret", "replicateSecretToRegions", "putSecretValue" ], "deprecated":
false, "deprecationNote": "", "autowire [...]
"overrideEndpoint": { "index": 3, "kind": "parameter", "displayName":
"Override Endpoint", "group": "producer", "label": "", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "Set the need for
overriding the endpoint. This option needs to be u [...]
"pojoRequest": { "index": 4, "kind": "parameter", "displayName": "Pojo
Request", "group": "producer", "label": "", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "If we want to use a POJO
request as body or not" },
"profileCredentialsName": { "index": 5, "kind": "parameter",
"displayName": "Profile Credentials Name", "group": "producer", "label": "",
"required": false, "type": "string", "javaType": "java.lang.String",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
"configurationField": "configuration", "description": "If using a profile
credentials provider, this parameter will set the [...]
diff --git
a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerOperations.java
b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerOperations.java
index a4c6e51b627..b0c5c34741d 100644
---
a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerOperations.java
+++
b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerOperations.java
@@ -27,5 +27,6 @@ public enum SecretsManagerOperations {
rotateSecret,
updateSecret,
restoreSecret,
- replicateSecretToRegions
+ replicateSecretToRegions,
+ putSecretValue
}
diff --git
a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerProducer.java
b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerProducer.java
index c691804ed1f..b5db8dcc888 100644
---
a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerProducer.java
+++
b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerProducer.java
@@ -36,29 +36,8 @@ import org.slf4j.LoggerFactory;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.core.SdkBytes;
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
-import
software.amazon.awssdk.services.secretsmanager.model.BatchGetSecretValueRequest;
-import
software.amazon.awssdk.services.secretsmanager.model.BatchGetSecretValueResponse;
-import
software.amazon.awssdk.services.secretsmanager.model.CreateSecretRequest;
-import
software.amazon.awssdk.services.secretsmanager.model.CreateSecretResponse;
-import
software.amazon.awssdk.services.secretsmanager.model.DeleteSecretRequest;
-import
software.amazon.awssdk.services.secretsmanager.model.DeleteSecretResponse;
-import
software.amazon.awssdk.services.secretsmanager.model.DescribeSecretRequest;
-import
software.amazon.awssdk.services.secretsmanager.model.DescribeSecretResponse;
-import
software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
-import
software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
-import software.amazon.awssdk.services.secretsmanager.model.ListSecretsRequest;
+import software.amazon.awssdk.services.secretsmanager.model.*;
import
software.amazon.awssdk.services.secretsmanager.model.ListSecretsRequest.Builder;
-import
software.amazon.awssdk.services.secretsmanager.model.ListSecretsResponse;
-import software.amazon.awssdk.services.secretsmanager.model.ReplicaRegionType;
-import
software.amazon.awssdk.services.secretsmanager.model.ReplicateSecretToRegionsRequest;
-import
software.amazon.awssdk.services.secretsmanager.model.ReplicateSecretToRegionsResponse;
-import
software.amazon.awssdk.services.secretsmanager.model.RestoreSecretRequest;
-import
software.amazon.awssdk.services.secretsmanager.model.RestoreSecretResponse;
-import
software.amazon.awssdk.services.secretsmanager.model.RotateSecretRequest;
-import
software.amazon.awssdk.services.secretsmanager.model.RotateSecretResponse;
-import software.amazon.awssdk.services.secretsmanager.model.SecretValueEntry;
-import
software.amazon.awssdk.services.secretsmanager.model.UpdateSecretRequest;
-import
software.amazon.awssdk.services.secretsmanager.model.UpdateSecretResponse;
/**
* A Producer which sends messages to the Amazon Secrets Manager Service SDK v2
@@ -109,6 +88,9 @@ public class SecretsManagerProducer extends DefaultProducer {
case restoreSecret:
restoreSecret(getEndpoint().getSecretsManagerClient(),
exchange);
break;
+ case putSecretValue:
+ putSecretValue(getEndpoint().getSecretsManagerClient(),
exchange);
+ break;
default:
throw new IllegalArgumentException("Unsupported operation");
}
@@ -469,6 +451,38 @@ public class SecretsManagerProducer extends
DefaultProducer {
exchange.getMessage().setHeader(SecretsManagerConstants.SECRET_VERSION_IDS,
versionIds);
}
+ private void putSecretValue(SecretsManagerClient secretsManagerClient,
Exchange exchange)
+ throws InvalidPayloadException {
+ PutSecretValueRequest request = null;
+ PutSecretValueResponse result;
+ if (getConfiguration().isPojoRequest()) {
+ request =
exchange.getIn().getMandatoryBody(PutSecretValueRequest.class);
+ } else {
+ PutSecretValueRequest.Builder builder =
PutSecretValueRequest.builder();
+ String payload = exchange.getIn().getMandatoryBody(String.class);
+ if
(ObjectHelper.isNotEmpty(exchange.getIn().getHeader(SecretsManagerConstants.SECRET_ID)))
{
+ String secretId =
exchange.getIn().getHeader(SecretsManagerConstants.SECRET_ID, String.class);
+ builder.secretId(secretId);
+ } else {
+ throw new IllegalArgumentException("Secret Id must be
specified");
+ }
+ if (getConfiguration().isBinaryPayload()) {
+
builder.secretBinary(SdkBytes.fromUtf8String(Base64.getEncoder().encodeToString(payload.getBytes())));
+ } else {
+ builder.secretString(payload);
+ }
+ request = builder.build();
+ }
+ try {
+ result = secretsManagerClient.putSecretValue(request);
+ } catch (AwsServiceException ase) {
+ LOG.trace("Put Secret Value command returned the error code {}",
ase.awsErrorDetails().errorCode());
+ throw ase;
+ }
+ Message message = getMessageForResponse(exchange);
+ message.setBody(result);
+ }
+
public static Message getMessageForResponse(final Exchange exchange) {
return exchange.getMessage();
}
diff --git
a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerUpdateSecretProducerLocalstackIT.java
b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerPutSecretValueProducerLocalstackIT.java
similarity index 79%
copy from
components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerUpdateSecretProducerLocalstackIT.java
copy to
components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerPutSecretValueProducerLocalstackIT.java
index e95452d3679..182b54e21de 100644
---
a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerUpdateSecretProducerLocalstackIT.java
+++
b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerPutSecretValueProducerLocalstackIT.java
@@ -26,14 +26,12 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import
software.amazon.awssdk.services.secretsmanager.model.CreateSecretResponse;
-import
software.amazon.awssdk.services.secretsmanager.model.UpdateSecretResponse;
+import
software.amazon.awssdk.services.secretsmanager.model.PutSecretValueResponse;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.*;
@DisabledIfSystemProperty(named = "ci.env.name", matches = "github.com",
disabledReason = "Flaky on GitHub Actions")
-public class SecretsManagerUpdateSecretProducerLocalstackIT extends
AwsSecretsManagerBaseTest {
+public class SecretsManagerPutSecretValueProducerLocalstackIT extends
AwsSecretsManagerBaseTest {
@EndpointInject("mock:result")
private MockEndpoint mock;
@@ -45,7 +43,7 @@ public class SecretsManagerUpdateSecretProducerLocalstackIT
extends AwsSecretsMa
Exchange exchange = template.request("direct:createSecret", new
Processor() {
@Override
public void process(Exchange exchange) {
-
exchange.getIn().setHeader(SecretsManagerConstants.SECRET_NAME, "TestSecret4");
+
exchange.getIn().setHeader(SecretsManagerConstants.SECRET_NAME, "TestSecret10");
exchange.getIn().setBody("Body");
}
});
@@ -53,18 +51,18 @@ public class SecretsManagerUpdateSecretProducerLocalstackIT
extends AwsSecretsMa
CreateSecretResponse resultGet = (CreateSecretResponse)
exchange.getIn().getBody();
assertNotNull(resultGet);
- exchange = template.request("direct:updateSecret", new Processor() {
+ exchange = template.request("direct:putSecretValue", new Processor() {
@Override
public void process(Exchange exchange) {
exchange.getIn().setHeader(SecretsManagerConstants.SECRET_ID,
resultGet.arn());
- exchange.getIn().setBody("Binary Body");
+ exchange.getIn().setBody("Test New Value");
}
});
Assertions.assertNotNull(exchange);
- UpdateSecretResponse resultUpdate = (UpdateSecretResponse)
exchange.getIn().getBody();
+ PutSecretValueResponse resultUpdate = (PutSecretValueResponse)
exchange.getIn().getBody();
assertTrue(resultUpdate.sdkHttpResponse().isSuccessful());
- assertEquals("TestSecret4", resultUpdate.name());
+ assertEquals("TestSecret10", resultUpdate.name());
exchange = template.request("direct:getSecret", new Processor() {
@Override
@@ -75,7 +73,7 @@ public class SecretsManagerUpdateSecretProducerLocalstackIT
extends AwsSecretsMa
Assertions.assertNotNull(exchange);
String secret = exchange.getIn().getBody(String.class);
- assertEquals("Binary Body", secret);
+ assertEquals("Test New Value", secret);
}
@Override
@@ -86,11 +84,11 @@ public class SecretsManagerUpdateSecretProducerLocalstackIT
extends AwsSecretsMa
from("direct:createSecret")
.to("aws-secrets-manager://test?operation=createSecret");
- from("direct:updateSecret")
-
.to("aws-secrets-manager://test?operation=updateSecret&binaryPayload=true");
+ from("direct:putSecretValue")
+
.to("aws-secrets-manager://test?operation=putSecretValue");
from("direct:getSecret")
-
.to("aws-secrets-manager://test?operation=getSecret&binaryPayload=true")
+ .to("aws-secrets-manager://test?operation=getSecret")
.to("mock:result");
}
};
diff --git
a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerUpdateSecretProducerLocalstackIT.java
b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerUpdateSecretProducerLocalstackIT.java
index e95452d3679..20a4b949f54 100644
---
a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerUpdateSecretProducerLocalstackIT.java
+++
b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerUpdateSecretProducerLocalstackIT.java
@@ -39,9 +39,10 @@ public class SecretsManagerUpdateSecretProducerLocalstackIT
extends AwsSecretsMa
private MockEndpoint mock;
@Test
- public void createSecretTest() {
+ public void createSecretTest() throws InterruptedException {
mock.expectedMessageCount(1);
+ mock.expectedBodiesReceived("Test Body");
Exchange exchange = template.request("direct:createSecret", new
Processor() {
@Override
public void process(Exchange exchange) {
@@ -57,7 +58,7 @@ public class SecretsManagerUpdateSecretProducerLocalstackIT
extends AwsSecretsMa
@Override
public void process(Exchange exchange) {
exchange.getIn().setHeader(SecretsManagerConstants.SECRET_ID,
resultGet.arn());
- exchange.getIn().setBody("Binary Body");
+ exchange.getIn().setBody("Test Body");
}
});
Assertions.assertNotNull(exchange);
@@ -74,8 +75,7 @@ public class SecretsManagerUpdateSecretProducerLocalstackIT
extends AwsSecretsMa
});
Assertions.assertNotNull(exchange);
- String secret = exchange.getIn().getBody(String.class);
- assertEquals("Binary Body", secret);
+ mock.assertIsSatisfied();
}
@Override
@@ -87,10 +87,10 @@ public class SecretsManagerUpdateSecretProducerLocalstackIT
extends AwsSecretsMa
.to("aws-secrets-manager://test?operation=createSecret");
from("direct:updateSecret")
-
.to("aws-secrets-manager://test?operation=updateSecret&binaryPayload=true");
+
.to("aws-secrets-manager://test?operation=updateSecret");
from("direct:getSecret")
-
.to("aws-secrets-manager://test?operation=getSecret&binaryPayload=true")
+ .to("aws-secrets-manager://test?operation=getSecret")
.to("mock:result");
}
};