You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/04/07 12:18:35 UTC

[camel] 01/02: CAMEL-14850 - Camel-AWS2-*: Improve the verifiers to check if a particular service works on a specified region, KMS

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 4650b83bc7479a2d1ef1f836e4d87730fa71ca13
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Apr 7 14:16:45 2020 +0200

    CAMEL-14850 - Camel-AWS2-*: Improve the verifiers to check if a particular service works on a specified region, KMS
---
 .../aws2/kms/KMS2ComponentVerifierExtension.java         |  5 +++++
 .../aws2/kms/KMSComponentVerifierExtensionTest.java      | 16 ++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/components/camel-aws2-kms/src/main/java/org/apache/camel/component/aws2/kms/KMS2ComponentVerifierExtension.java b/components/camel-aws2-kms/src/main/java/org/apache/camel/component/aws2/kms/KMS2ComponentVerifierExtension.java
index f24c88c..c60bd8d 100644
--- a/components/camel-aws2-kms/src/main/java/org/apache/camel/component/aws2/kms/KMS2ComponentVerifierExtension.java
+++ b/components/camel-aws2-kms/src/main/java/org/apache/camel/component/aws2/kms/KMS2ComponentVerifierExtension.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.aws2.kms;
 
 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;
@@ -66,6 +67,10 @@ public class KMS2ComponentVerifierExtension extends DefaultComponentVerifierExte
 
         try {
             KMS2Configuration configuration = setProperties(new KMS2Configuration(), parameters);
+            if (!KmsClient.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());
             KmsClientBuilder clientBuilder = KmsClient.builder();
             KmsClient client = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred)).region(Region.of(configuration.getRegion())).build();
diff --git a/components/camel-aws2-kms/src/test/java/org/apache/camel/component/aws2/kms/KMSComponentVerifierExtensionTest.java b/components/camel-aws2-kms/src/test/java/org/apache/camel/component/aws2/kms/KMSComponentVerifierExtensionTest.java
index 1fc3e34..1783e01 100644
--- a/components/camel-aws2-kms/src/test/java/org/apache/camel/component/aws2/kms/KMSComponentVerifierExtensionTest.java
+++ b/components/camel-aws2-kms/src/test/java/org/apache/camel/component/aws2/kms/KMSComponentVerifierExtensionTest.java
@@ -71,4 +71,20 @@ public class KMSComponentVerifierExtensionTest extends CamelTestSupport {
         assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
     }
 
+    @Test
+    public void testConnectivityAndRegion() throws Exception {
+        Component component = context().getComponent("aws2-kms");
+        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("label", "test");
+        parameters.put("operation", KMS2Operations.listKeys);
+
+        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters);
+
+        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
+    }
 }