def check_group(self, client, group): streams = self.manager.retry(client.describe_log_streams, logGroupName=group['logGroupName'], orderBy='LastEventTime', descending=True, limit=3).get('logStreams') group['streams'] = streams if not streams: last_timestamp = group['creationTime'] elif 'lastIngestionTime' in streams[0]: last_timestamp = streams[0]['lastIngestionTime'] else: last_timestamp = streams[0]['creationTime'] last_write = parse_date(last_timestamp) group['lastWrite'] = last_write return self.date_threshold > last_write
def process(self, resources, event=None): client = local_session(self.manager.session_factory).client('logs') self.date_threshold = parse_date( datetime.utcnow()) - timedelta(days=self.data['days']) return [r for r in resources if self.check_group(client, r)]