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 2022/09/20 07:59:39 UTC
[camel] 02/03: Fixing the health check to using default credentials provider or passing a custom client instance
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 38807619aed345f41c8126b2bd6655b1b4f3c8f3
Author: Rhuan Rocha <rh...@gmail.com>
AuthorDate: Mon Sep 19 15:59:08 2022 -0300
Fixing the health check to using default credentials provider or passing a custom client instance
Signed-off-by: Rhuan Rocha <rh...@gmail.com>
---
.../aws2/athena/Athena2ClientHealthCheck.java | 21 ++++++++++++++++-----
...> Athena2ClientHealthCheckCustomClientTest.java} | 15 ++++++++-------
...> Athena2ClientHealthCheckProfileCredsTest.java} | 6 +++---
...=> Athena2ClientHealthCheckStaticCredsTest.java} | 12 ++++++------
4 files changed, 33 insertions(+), 21 deletions(-)
diff --git a/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheck.java b/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheck.java
index e80214f3379..24390c939bc 100644
--- a/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheck.java
+++ b/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheck.java
@@ -21,6 +21,7 @@ import java.util.Map;
import org.apache.camel.health.HealthCheckResultBuilder;
import org.apache.camel.impl.health.AbstractHealthCheck;
+import org.apache.camel.util.ObjectHelper;
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
@@ -54,11 +55,21 @@ public class Athena2ClientHealthCheck extends AbstractHealthCheck {
builder.down();
return;
}
- AwsBasicCredentials cred = AwsBasicCredentials.create(athena2Endpoint.getConfiguration().getAccessKey(),
- athena2Endpoint.getConfiguration().getSecretKey());
- AthenaClientBuilder clientBuilder = AthenaClient.builder();
- AthenaClient client = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred))
- .region(Region.of(athena2Endpoint.getConfiguration().getRegion())).build();
+ AthenaClient client;
+ if(!athena2Endpoint.getConfiguration().isUseDefaultCredentialsProvider()){
+ AwsBasicCredentials cred = AwsBasicCredentials.create(athena2Endpoint.getConfiguration().getAccessKey(),
+ athena2Endpoint.getConfiguration().getSecretKey());
+ AthenaClientBuilder clientBuilder = AthenaClient.builder();
+ client = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred))
+ .region(Region.of(athena2Endpoint.getConfiguration().getRegion())).build();
+ }
+ else if(ObjectHelper.isNotEmpty(athena2Endpoint.getConfiguration().getAmazonAthenaClient())){
+ client = athena2Endpoint.getConfiguration().getAmazonAthenaClient();
+ }
+ else{
+ AthenaClientBuilder clientBuilder = AthenaClient.builder();
+ client = clientBuilder.region(Region.of(athena2Endpoint.getConfiguration().getRegion())).build();
+ }
client.listQueryExecutions();
} catch (AwsServiceException e) {
builder.message(e.getMessage());
diff --git a/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java b/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckCustomClientTest.java
similarity index 91%
copy from components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java
copy to components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckCustomClientTest.java
index 915edf9bf90..de65e4a9bb5 100644
--- a/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java
+++ b/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckCustomClientTest.java
@@ -17,9 +17,6 @@
package org.apache.camel.component.aws2.athena;
-import java.util.Collection;
-import java.util.concurrent.TimeUnit;
-
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.health.HealthCheck;
@@ -32,11 +29,14 @@ import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.Collection;
+import java.util.concurrent.TimeUnit;
+
import static org.testcontainers.shaded.org.awaitility.Awaitility.await;
-public class Athena2ClientHealthCheckTest extends CamelTestSupport {
+public class Athena2ClientHealthCheckCustomClientTest extends CamelTestSupport {
- private static final Logger LOG = LoggerFactory.getLogger(Athena2ClientHealthCheckTest.class);
+ private static final Logger LOG = LoggerFactory.getLogger(Athena2ClientHealthCheckCustomClientTest.class);
CamelContext context;
@@ -44,7 +44,8 @@ public class Athena2ClientHealthCheckTest extends CamelTestSupport {
protected CamelContext createCamelContext() throws Exception {
context = super.createCamelContext();
context.getPropertiesComponent().setLocation("ref:prop");
-
+ AmazonAthenaClientMock clientMock = new AmazonAthenaClientMock();
+ context.getRegistry().bind("amazonAthenaClient", clientMock);
// install health check manually (yes a bit cumbersome)
HealthCheckRegistry registry = new DefaultHealthCheckRegistry();
registry.setCamelContext(context);
@@ -66,7 +67,7 @@ public class Athena2ClientHealthCheckTest extends CamelTestSupport {
@Override
public void configure() {
from("direct:getQueryExecution")
- .to("aws2-athena://label?accessKey=xxx&secretKey=yyy®ion=l");
+ .to("aws2-athena://label?region=l");
}
};
}
diff --git a/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java b/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckProfileCredsTest.java
similarity index 94%
copy from components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java
copy to components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckProfileCredsTest.java
index 915edf9bf90..63b7a825398 100644
--- a/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java
+++ b/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckProfileCredsTest.java
@@ -34,9 +34,9 @@ import org.slf4j.LoggerFactory;
import static org.testcontainers.shaded.org.awaitility.Awaitility.await;
-public class Athena2ClientHealthCheckTest extends CamelTestSupport {
+public class Athena2ClientHealthCheckProfileCredsTest extends CamelTestSupport {
- private static final Logger LOG = LoggerFactory.getLogger(Athena2ClientHealthCheckTest.class);
+ private static final Logger LOG = LoggerFactory.getLogger(Athena2ClientHealthCheckProfileCredsTest.class);
CamelContext context;
@@ -66,7 +66,7 @@ public class Athena2ClientHealthCheckTest extends CamelTestSupport {
@Override
public void configure() {
from("direct:getQueryExecution")
- .to("aws2-athena://label?accessKey=xxx&secretKey=yyy®ion=l");
+ .to("aws2-athena://label?region=l&useDefaultCredentialsProvider=true");
}
};
}
diff --git a/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java b/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckStaticCredsTest.java
similarity index 94%
rename from components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java
rename to components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckStaticCredsTest.java
index 915edf9bf90..81746543e84 100644
--- a/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java
+++ b/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckStaticCredsTest.java
@@ -17,9 +17,6 @@
package org.apache.camel.component.aws2.athena;
-import java.util.Collection;
-import java.util.concurrent.TimeUnit;
-
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.health.HealthCheck;
@@ -32,11 +29,14 @@ import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.Collection;
+import java.util.concurrent.TimeUnit;
+
import static org.testcontainers.shaded.org.awaitility.Awaitility.await;
-public class Athena2ClientHealthCheckTest extends CamelTestSupport {
+public class Athena2ClientHealthCheckStaticCredsTest extends CamelTestSupport {
- private static final Logger LOG = LoggerFactory.getLogger(Athena2ClientHealthCheckTest.class);
+ private static final Logger LOG = LoggerFactory.getLogger(Athena2ClientHealthCheckStaticCredsTest.class);
CamelContext context;
@@ -66,7 +66,7 @@ public class Athena2ClientHealthCheckTest extends CamelTestSupport {
@Override
public void configure() {
from("direct:getQueryExecution")
- .to("aws2-athena://label?accessKey=xxx&secretKey=yyy®ion=l");
+ .to("aws2-athena://label?region=l&secretKey=l&accessKey=k");
}
};
}