Exemple #1
0
def known_iam_actions(prefix):
    """Return known IAM actions for a prefix, e.g. all ec2 actions"""
    # This could be memoized for performance improvements
    knowledge = pipe(all_known_iam_permissions(), mapz(_parse_action),
                     groupbyz(lambda x: x.prefix))

    return knowledge.get(prefix, [])
Exemple #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))