Ejemplo n.º 1
0
def select(log_dir, filter_assumed_role_arn, use_cloudtrail_api, from_s, to_s):
    """Finds all CloudTrail records matching the given filters and prints them."""
    log_dir = os.path.expanduser(log_dir)
    from_date = time_utils.parse_human_readable_time(from_s)
    to_date = time_utils.parse_human_readable_time(to_s)

    if use_cloudtrail_api:
        records = load_from_api(from_date, to_date)
    else:
        records = load_from_dir(log_dir, from_date, to_date)

    filtered_records = filter_records(records, filter_assumed_role_arn, from_date, to_date)

    filtered_records_as_json = [record.raw_source for record in filtered_records]

    click.echo(json.dumps({"Records": filtered_records_as_json}))
Ejemplo n.º 2
0
def test_should_filter_for_event_time():
    records = [
        Record("autoscaling.amazonaws.com",
               "DescribeLaunchConfigurations",
               event_time=datetime.datetime(2017, 1, 1)),
        Record("sts.amazonaws.com",
               "AssumeRole",
               event_time=datetime.datetime(2017, 6, 6))
    ]

    assert filter_records(records,
                                        from_date=datetime.datetime(2017, 1, 1),
                                        to_date=datetime.datetime(2017, 3, 1)) == \
           [
               Record("autoscaling.amazonaws.com", "DescribeLaunchConfigurations",
                      event_time=datetime.datetime(2017, 1, 1)),
           ]
Ejemplo n.º 3
0
def test_should_warn_if_records_passed_but_filtered_away(caplog):
    records = [
        Record("autoscaling.amazonaws.com",
               "DescribeLaunchConfigurations",
               event_time=datetime.datetime(2017, 1, 1)),
        Record("sts.amazonaws.com",
               "AssumeRole",
               event_time=datetime.datetime(2017, 6, 6))
    ]

    assert filter_records(records,
                          from_date=datetime.datetime(2010, 1, 1),
                          to_date=datetime.datetime(2010, 1, 2)) == []

    assert caplog.record_tuples == [
        ('root', logging.WARNING, cloudtrail.ALL_RECORDS_FILTERED),
    ]