def events_handler_put_events(self): entries = self._get_param('Entries') events = list( map(lambda event: {'event': event, 'uuid': str(uuid.uuid4())}, entries) ) _create_and_register_temp_dir() _dump_events_to_files(events) for event in events: event = event['event'] event_bus = event.get('EventBusName') or DEFAULT_EVENT_BUS_NAME rules = EVENT_RULES.get(event_bus, []) targets = [] for rule in rules: targets.extend(self.events_backend.list_targets_by_rule(rule)['Targets']) # process event process_events(event, targets) content = { 'Entries': list(map(lambda event: {'EventId': event['uuid']}, events)) } self.response_headers.update({ 'Content-Type': APPLICATION_AMZ_JSON_1_1, 'x-amzn-RequestId': short_uid() }) return json.dumps(content), self.response_headers
def events_handler_put_events(self): entries = self._get_param("Entries") events = list( map(lambda event: { "event": event, "uuid": str(uuid.uuid4()) }, entries)) _create_and_register_temp_dir() _dump_events_to_files(events) event_rules = EventsBackend.get().event_rules for event_envelope in events: event = event_envelope["event"] event_bus = event.get("EventBusName") or DEFAULT_EVENT_BUS_NAME rules = event_rules.get(event_bus, []) formatted_event = { "version": "0", "id": event_envelope["uuid"], "detail-type": event.get("DetailType"), "source": event.get("Source"), "account": TEST_AWS_ACCOUNT_ID, "time": datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ"), "region": self.region, "resources": event.get("Resources", []), "detail": json.loads(event.get("Detail", "{}")), } targets = [] for rule in rules: if filter_event_based_on_event_format(self, rule, formatted_event): targets.extend( self.events_backend.list_targets_by_rule(rule) ["Targets"]) # process event process_events(formatted_event, targets) content = { "Entries": list(map(lambda event: {"EventId": event["uuid"]}, events)) } self.response_headers.update({ "Content-Type": APPLICATION_AMZ_JSON_1_1, "x-amzn-RequestId": short_uid() }) return json.dumps(content), self.response_headers
def events_handler_put_events(self): entries = self._get_param('Entries') events = list( map(lambda event: { 'event': event, 'uuid': str(uuid.uuid4()) }, entries)) _create_and_register_temp_dir() _dump_events_to_files(events) event_rules = EventsBackend.get().event_rules for event_envelope in events: event = event_envelope['event'] event_bus = event.get('EventBusName') or DEFAULT_EVENT_BUS_NAME rules = event_rules.get(event_bus, []) formatted_event = { 'version': '0', 'id': event_envelope['uuid'], 'detail-type': event.get('DetailType'), 'source': event.get('Source'), 'account': TEST_AWS_ACCOUNT_ID, 'time': datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ'), 'region': self.region, 'resources': event.get('Resources', []), 'detail': json.loads(event.get('Detail', '{}')), } targets = [] for rule in rules: if filter_event_based_on_event_format(self, rule, formatted_event): targets.extend( self.events_backend.list_targets_by_rule(rule) ['Targets']) # process event process_events(formatted_event, targets) content = { 'Entries': list(map(lambda event: {'EventId': event['uuid']}, events)) } self.response_headers.update({ 'Content-Type': APPLICATION_AMZ_JSON_1_1, 'x-amzn-RequestId': short_uid() }) return json.dumps(content), self.response_headers