Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 036b8ba

Browse files
committed
fix support for alternate event buses
1 parent 998e1a5 commit 036b8ba

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

‎localstack/services/events/provider.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,22 +74,25 @@ def get_store() -> EventsStore:
7474
def get_scheduled_rule_func(rule_name: RuleName, event_bus_name: Optional[EventBusNameOrArn]):
7575
def func(*args, **kwargs):
7676
client = aws_stack.connect_to_service("events")
77-
targets = client.list_targets_by_rule(Rule=rule_name, EventBusName=event_bus_name)[
78-
"Targets"
79-
]
77+
targets_args = {"Rule": rule_name}
78+
if event_bus_name:
79+
targets_args["EventBusName"] = event_bus_name
80+
targets = client.list_targets_by_rule(**targets_args)["Targets"]
8081
if targets:
8182
LOG.debug(
8283
"Notifying %s targets in response to triggered Events rule %s",
8384
len(targets),
8485
rule_name,
8586
)
86-
rule_arn = client.describe_rule(Name=rule_name, EventBusName=event_bus_name)["Arn"]
87+
targets_args.update({"Name": targets_args.pop("Rule")})
88+
rule_arn = client.describe_rule(**targets_args)["Arn"]
8789
for target in targets:
8890
arn = target.get("Arn")
8991
# TODO generate event matching aws in case no Input has been specified
9092
event_str = target.get("Input") or "{}"
9193
event = json.loads(event_str)
9294
attr = pick_attributes(target, ["$.SqsParameters", "$.KinesisParameters"])
95+
9396
try:
9497
send_event_to_target(
9598
arn,
@@ -131,8 +134,8 @@ def convert_schedule_to_cron(schedule):
131134
def put_rule_job_scheduler(
132135
name: Optional[RuleName],
133136
state: Optional[RuleState],
134-
event_bus_name: Optional[EventBusNameOrArn],
135137
schedule_expression: Optional[ScheduleExpression],
138+
event_bus_name: Optional[EventBusNameOrArn],
136139
):
137140
enabled = state != "DISABLED"
138141
if schedule_expression:
@@ -156,7 +159,7 @@ def put_rule(
156159
tags: TagList = None,
157160
event_bus_name: EventBusNameOrArn = None,
158161
) -> PutRuleResponse:
159-
self.put_rule_job_scheduler(name, state, schedule_expression)
162+
self.put_rule_job_scheduler(name, state, schedule_expression, event_bus_name)
160163
return call_moto(context)
161164

162165
def delete_rule(

0 commit comments

Comments
 (0)