#!/usr/bin/env python3 import collections class FilterModule(object): def filters(self): return { 'expand_nft_rules': self.expand_nft_rules } def expand_nft_rules(self, input_rules, rule_defaults): rules = [] for rule_name in input_rules: rule = { 'name': rule_name, 'comment': rule_name, } for override in rule_defaults: rule.update(override) if not isinstance(input_rules[rule_name], collections.Mapping): rule['matches'] = input_rules[rule_name] else: rule.update(input_rules[rule_name]) rules.append(rule) return rules