This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 044053ca28dfb41b2a4681e562e71e633822d552 Author: Andrea Cosentino <[email protected]> AuthorDate: Mon Apr 6 15:47:20 2020 +0200 CAMEL-14850 - Camel-AWS2-*: Improve the verifiers to check if a particular service works on a specified region, DynamoDBStreams --- .../ddbstream/Ddb2StreamComponentVerifierExtension.java | 6 ++++++ .../DdbStreamComponentVerifierExtensionTest.java | 15 +++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/components/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamComponentVerifierExtension.java b/components/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamComponentVerifierExtension.java index 3fd07e5..01c22a1 100644 --- a/components/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamComponentVerifierExtension.java +++ b/components/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamComponentVerifierExtension.java @@ -18,6 +18,7 @@ package org.apache.camel.component.aws2.ddbstream; import java.util.Map; +import org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError; import org.apache.camel.component.extension.verifier.DefaultComponentVerifierExtension; import org.apache.camel.component.extension.verifier.ResultBuilder; import org.apache.camel.component.extension.verifier.ResultErrorBuilder; @@ -26,6 +27,7 @@ import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient; import software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClientBuilder; @@ -66,6 +68,10 @@ public class Ddb2StreamComponentVerifierExtension extends DefaultComponentVerifi try { Ddb2StreamConfiguration configuration = setProperties(new Ddb2StreamConfiguration(), parameters); + if (!DynamoDbStreamsClient.serviceMetadata().regions().contains(Region.of(configuration.getRegion()))) { + ResultErrorBuilder errorBuilder = ResultErrorBuilder.withCodeAndDescription(VerificationError.StandardCode.ILLEGAL_PARAMETER, "The service is not supported in this region"); + return builder.error(errorBuilder.build()).build(); + } AwsBasicCredentials cred = AwsBasicCredentials.create(configuration.getAccessKey(), configuration.getSecretKey()); DynamoDbStreamsClientBuilder clientBuilder = DynamoDbStreamsClient.builder(); DynamoDbStreamsClient client = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred)).region(Region.of(configuration.getRegion())).build(); diff --git a/components/camel-aws2-ddb/src/test/java/org/apache/camel/component/aws2/ddbstream/DdbStreamComponentVerifierExtensionTest.java b/components/camel-aws2-ddb/src/test/java/org/apache/camel/component/aws2/ddbstream/DdbStreamComponentVerifierExtensionTest.java index 1ab2513..a01b7b3 100644 --- a/components/camel-aws2-ddb/src/test/java/org/apache/camel/component/aws2/ddbstream/DdbStreamComponentVerifierExtensionTest.java +++ b/components/camel-aws2-ddb/src/test/java/org/apache/camel/component/aws2/ddbstream/DdbStreamComponentVerifierExtensionTest.java @@ -69,4 +69,19 @@ public class DdbStreamComponentVerifierExtensionTest extends CamelTestSupport { assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus()); } + @Test + public void testConnectivityAndRegion() throws Exception { + Component component = context().getComponent("aws2-ddbstream"); + ComponentVerifierExtension verifier = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new); + + Map<String, Object> parameters = new HashMap<>(); + parameters.put("secretKey", "l"); + parameters.put("accessKey", "k"); + parameters.put("region", "l"); + parameters.put("tableName", "test"); + + ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters); + + assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus()); + } }
