ansible-role-firewall/filter_plugins/filters.py
2021-12-16 06:41:51 +01:00

24 lines
587 B
Python
Executable file

#!/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.abc.Mapping):
rule['matches'] = input_rules[rule_name]
else:
rule.update(input_rules[rule_name])
rules.append(rule)
return rules