24 lines
583 B
Python
Executable file
24 lines
583 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.Mapping):
|
|
rule['matches'] = input_rules[rule_name]
|
|
else:
|
|
rule.update(input_rules[rule_name])
|
|
rules.append(rule)
|
|
return rules
|