Beispiel #1
0
def expand_rule(group, rule):
    """
    Given a group and a rule, return a list of expanded rules, with a rule for
    each distinct source or port in a list of ports.
    """
    if rule.from_port == rule.to_port:
        ports_or_types = int(rule.from_port)
    else:
        ports_or_types = (int(rule.from_port), int(rule.to_port))
    return expand_sources(rule_dict(parse_grants(rule.grants),
                                    group.name,
                                    rule.ip_protocol,
                                    ports_or_types))
Beispiel #2
0
def expand_rule(rule):
    """
    Given a RULE (as a dict), return a list of rules that RULE expands to.
    """
    return reduce(concat, [expand_spec(expanded)
                           for expanded in expand_sources(rule)])