示例#1
0
def filter_records(records,
                   arns_to_filter_for=None,
                   from_date=datetime.datetime(1970, 1, 1, tzinfo=pytz.utc),
                   to_date=datetime.datetime.now(tz=pytz.utc)):
    """Filter records so they match the given condition"""
    result = list(pipe(records, filterz(_by_timeframe(from_date, to_date)), filterz(_by_role_arns(arns_to_filter_for))))
    if not result and records:
        logging.warning(ALL_RECORDS_FILTERED)

    return result
示例#2
0
def generate_policy(selected_records):
    """Generates a policy from a set of records"""
    statements = pipe(
        selected_records, mapz(Record.to_statement),
        filterz(lambda statement: statement is not None),
        _combine_statements_by(lambda statement: statement.Resource),
        _combine_statements_by(lambda statement: statement.Action), sortedz())

    return PolicyDocument(
        Version="2012-10-17",
        Statement=statements,
    )
    def _valid_log_files(self):
        def _valid_or_warn(log_file):
            if log_file.has_valid_filename():
                return True

            logging.warning("Invalid filename: %s", log_file.filename())
            return False

        def _to_paths(triple):
            root, _, files_in_dir = triple
            return [
                os.path.join(root, file_in_dir) for file_in_dir in files_in_dir
            ]

        return pipe(os.walk(self._log_dir), mapcatz(_to_paths), mapz(LogFile),
                    filterz(_valid_or_warn))