

def _call(self):
    traverser = create_digest_traverser(trail_arn=self.trail_arn, cloudtrail_client=self.cloudtrail_client, trail_source_region=self._source_region, s3_client_provider=self.s3_client_provider, bucket=self.s3_bucket, prefix=self.s3_prefix, on_missing=self._on_missing_digest, on_invalid=self._on_invalid_digest, on_gap=self._on_digest_gap)
    self._write_startup_text()
    digests = traverser.traverse(self.start_time, self.end_time)
    for digest in digests:
        self._track_found_times(digest)
        self._valid_digests += 1
        self._write_status(('Digest file\ts3://%s/%s\tvalid' % (digest['digestS3Bucket'], digest['digestS3Object'])))
        if (not digest['logFiles']):
            continue
        for log in traverser['logFiles']:
            self._download_log(log)
    self._write_summary_text()

dataset/ETHPy150Open aws/aws-cli/awscli/customizations/cloudtrail/validation.py CloudTrailValidateLogs._call/VarMisuse@148/236 `digest`->`traverser`