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))
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)])