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/09/28 07:30:45 UTC
[camel] 01/06: CAMEL-15561 - Camel-AWS2-Eventbridge: More producer
operations - listRuleNamesByTarget
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 e69f14779edabd5f446dc556c086b3a8105939b1
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Sep 28 09:03:14 2020 +0200
CAMEL-15561 - Camel-AWS2-Eventbridge: More producer operations - listRuleNamesByTarget
---
.../aws2/eventbridge/EventbridgeConstants.java | 1 +
.../aws2/eventbridge/EventbridgeOperations.java | 3 +-
.../aws2/eventbridge/EventbridgeProducer.java | 38 ++++++++++++++++++++++
3 files changed, 41 insertions(+), 1 deletion(-)
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java
index bf7bcfd..deb3df4 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java
@@ -26,4 +26,5 @@ public interface EventbridgeConstants {
String EVENT_PATTERN = "CamelAwsEventbridgeEventPattern";
String TARGETS = "CamelAwsEventbridgeTargets";
String TARGETS_IDS = "CamelAwsEventbridgeTargetsIds";
+ String TARGET_ARN = "CamelAwsEventbridgeTargetArn";
}
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 ae2b6da..0b42b9f 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
@@ -26,5 +26,6 @@ public enum EventbridgeOperations {
disableRule,
describeRule,
listRules,
- listTargetsByRule
+ listTargetsByRule,
+ listRuleNamesByTarget
}
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 055647c..208c017 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
@@ -42,6 +42,8 @@ import software.amazon.awssdk.services.eventbridge.model.DisableRuleRequest;
import software.amazon.awssdk.services.eventbridge.model.DisableRuleResponse;
import software.amazon.awssdk.services.eventbridge.model.EnableRuleRequest;
import software.amazon.awssdk.services.eventbridge.model.EnableRuleResponse;
+import software.amazon.awssdk.services.eventbridge.model.ListRuleNamesByTargetRequest;
+import software.amazon.awssdk.services.eventbridge.model.ListRuleNamesByTargetResponse;
import software.amazon.awssdk.services.eventbridge.model.ListRulesRequest;
import software.amazon.awssdk.services.eventbridge.model.ListRulesResponse;
import software.amazon.awssdk.services.eventbridge.model.ListTargetsByRuleRequest;
@@ -98,6 +100,9 @@ public class EventbridgeProducer extends DefaultProducer {
case listTargetsByRule:
listTargetsByRule(getEndpoint().getEventbridgeClient(), exchange);
break;
+ case listRuleNamesByTarget:
+ listRuleNamesByTarget(getEndpoint().getEventbridgeClient(), exchange);
+ break;
default:
throw new IllegalArgumentException("Unsupported operation");
}
@@ -441,6 +446,39 @@ public class EventbridgeProducer extends DefaultProducer {
message.setBody(result);
}
}
+
+ private void listRuleNamesByTarget(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException {
+ if (getConfiguration().isPojoRequest()) {
+ Object payload = exchange.getIn().getMandatoryBody();
+ if (payload instanceof ListRuleNamesByTargetRequest) {
+ ListRuleNamesByTargetResponse result;
+ try {
+ result = eventbridgeClient.listRuleNamesByTarget((ListRuleNamesByTargetRequest) payload);
+ } catch (AwsServiceException ase) {
+ LOG.trace("List Rule Name by Targets command returned the error code {}", ase.awsErrorDetails().errorCode());
+ throw ase;
+ }
+ Message message = getMessageForResponse(exchange);
+ message.setBody(result);
+ }
+ } else {
+ ListRuleNamesByTargetRequest.Builder builder = ListRuleNamesByTargetRequest.builder();
+ if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.TARGET_ARN))) {
+ String targetArn = exchange.getIn().getHeader(EventbridgeConstants.TARGET_ARN, String.class);
+ builder.targetArn(targetArn);
+ }
+ builder.eventBusName(getConfiguration().getEventbusName());
+ ListRuleNamesByTargetResponse result;
+ try {
+ result = eventbridgeClient.listRuleNamesByTarget(builder.build());
+ } catch (AwsServiceException ase) {
+ LOG.trace("List Rule by Target command returned the error code {}", ase.awsErrorDetails().errorCode());
+ throw ase;
+ }
+ Message message = getMessageForResponse(exchange);
+ message.setBody(result);
+ }
+ }
@Override
public EventbridgeEndpoint getEndpoint() {