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 2023/12/01 10:14:00 UTC
(camel) 03/04: Camel-AWS-Config: Add a Delete Conformance Pack Operation to Producer
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch conformace-pack
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 208235bdd21d72e263628e934172c87aef72fb65
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Dec 1 11:08:01 2023 +0100
Camel-AWS-Config: Add a Delete Conformance Pack Operation to Producer
Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
.../component/aws/config/AWSConfigOperations.java | 3 +-
.../component/aws/config/AWSConfigProducer.java | 39 ++++++++++++++++++++++
2 files changed, 41 insertions(+), 1 deletion(-)
diff --git a/components/camel-aws/camel-aws-config/src/main/java/org/apache/camel/component/aws/config/AWSConfigOperations.java b/components/camel-aws/camel-aws-config/src/main/java/org/apache/camel/component/aws/config/AWSConfigOperations.java
index 7c215d10b4e..3abe50adffe 100644
--- a/components/camel-aws/camel-aws-config/src/main/java/org/apache/camel/component/aws/config/AWSConfigOperations.java
+++ b/components/camel-aws/camel-aws-config/src/main/java/org/apache/camel/component/aws/config/AWSConfigOperations.java
@@ -21,6 +21,7 @@ public enum AWSConfigOperations {
putConfigRule,
removeConfigRule,
describeRuleCompliance,
- putConformancePack
+ putConformancePack,
+ removeConformancePack
}
diff --git a/components/camel-aws/camel-aws-config/src/main/java/org/apache/camel/component/aws/config/AWSConfigProducer.java b/components/camel-aws/camel-aws-config/src/main/java/org/apache/camel/component/aws/config/AWSConfigProducer.java
index f59031c940f..317be5b3bf6 100644
--- a/components/camel-aws/camel-aws-config/src/main/java/org/apache/camel/component/aws/config/AWSConfigProducer.java
+++ b/components/camel-aws/camel-aws-config/src/main/java/org/apache/camel/component/aws/config/AWSConfigProducer.java
@@ -63,6 +63,9 @@ public class AWSConfigProducer extends DefaultProducer {
case putConformancePack:
putConformancePack(getEndpoint().getConfigClient(), exchange);
break;
+ case removeConformancePack:
+ removeConformancePack(getEndpoint().getConfigClient(), exchange);
+ break;
default:
throw new IllegalArgumentException("Unsupported operation");
}
@@ -263,6 +266,42 @@ public class AWSConfigProducer extends DefaultProducer {
}
}
+ private void removeConformancePack(ConfigClient configClient, Exchange exchange) throws InvalidPayloadException {
+ if (getConfiguration().isPojoRequest()) {
+ Object payload = exchange.getIn().getMandatoryBody();
+ if (payload instanceof DeleteConformancePackRequest) {
+ DeleteConformancePackResponse result;
+ try {
+ DeleteConformancePackRequest request = (DeleteConformancePackRequest) payload;
+ result = configClient.deleteConformancePack(request);
+ } catch (AwsServiceException ase) {
+ LOG.trace("Remove Conformance Pack rule command returned the error code {}", ase.awsErrorDetails().errorCode());
+ throw ase;
+ }
+ Message message = getMessageForResponse(exchange);
+ message.setBody(result);
+ }
+ } else {
+ DeleteConformancePackRequest.Builder builder = DeleteConformancePackRequest.builder();
+ if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(AWSConfigConstants.CONFORMACE_PACK_NAME))) {
+ String conformancePackName = exchange.getIn().getHeader(AWSConfigConstants.RULE_NAME, String.class);
+ builder.conformancePackName(conformancePackName);
+ } else {
+ throw new IllegalArgumentException("Conformance Pack Name must be specified");
+ }
+ DeleteConformancePackResponse result;
+ try {
+ DeleteConformancePackRequest request = builder.build();
+ result = configClient.deleteConformancePack(request);
+ } catch (AwsServiceException ase) {
+ LOG.trace("Remove Conformance Pack 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();
}