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 0f5b0d50f29dc108a6fa8b7e81c9e846bed9f600 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Fri Sep 25 11:13:37 2020 +0200 CAMEL-15561 - Camel-AWS2-Eventbridge: More producer operations - describeRule --- .../aws2/eventbridge/EventbridgeOperations.java | 1 + .../aws2/eventbridge/EventbridgeProducer.java | 39 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeOperations.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeOperations.java index 38b86bc..9c923c6 100644 --- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeOperations.java +++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeOperations.java @@ -24,5 +24,6 @@ public enum EventbridgeOperations { deleteRule, enableRule, disableRule, + describeRule, listRules } diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java index 1f6c2f1..5511c14 100644 --- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java +++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java @@ -36,6 +36,8 @@ import software.amazon.awssdk.awscore.exception.AwsServiceException; import software.amazon.awssdk.services.eventbridge.EventBridgeClient; import software.amazon.awssdk.services.eventbridge.model.DeleteRuleRequest; import software.amazon.awssdk.services.eventbridge.model.DeleteRuleResponse; +import software.amazon.awssdk.services.eventbridge.model.DescribeRuleRequest; +import software.amazon.awssdk.services.eventbridge.model.DescribeRuleResponse; import software.amazon.awssdk.services.eventbridge.model.DisableRuleRequest; import software.amazon.awssdk.services.eventbridge.model.DisableRuleResponse; import software.amazon.awssdk.services.eventbridge.model.EnableRuleRequest; @@ -88,6 +90,9 @@ public class EventbridgeProducer extends DefaultProducer { case listRules: listRules(getEndpoint().getEventbridgeClient(), exchange); break; + case describeRule: + describeRule(getEndpoint().getEventbridgeClient(), exchange); + break; default: throw new IllegalArgumentException("Unsupported operation"); } @@ -365,6 +370,40 @@ public class EventbridgeProducer extends DefaultProducer { message.setBody(result); } } + + + private void describeRule(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException { + if (getConfiguration().isPojoRequest()) { + Object payload = exchange.getIn().getMandatoryBody(); + if (payload instanceof DescribeRuleRequest) { + DescribeRuleResponse result; + try { + result = eventbridgeClient.describeRule((DescribeRuleRequest) payload); + } catch (AwsServiceException ase) { + LOG.trace("Describe Rule command returned the error code {}", ase.awsErrorDetails().errorCode()); + throw ase; + } + Message message = getMessageForResponse(exchange); + message.setBody(result); + } + } else { + DescribeRuleRequest.Builder builder = DescribeRuleRequest.builder(); + if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME))) { + String ruleName = exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME, String.class); + builder.name(ruleName); + } + builder.eventBusName(getConfiguration().getEventbusName()); + DescribeRuleResponse result; + try { + result = eventbridgeClient.describeRule(builder.build()); + } catch (AwsServiceException ase) { + LOG.trace("Describe Rule command returned the error code {}", ase.awsErrorDetails().errorCode()); + throw ase; + } + Message message = getMessageForResponse(exchange); + message.setBody(result); + } + } @Override public EventbridgeEndpoint getEndpoint() {