diff options
-rwxr-xr-x | utils/generate_config.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/utils/generate_config.py b/utils/generate_config.py index b65bf7f..353cd47 100755 --- a/utils/generate_config.py +++ b/utils/generate_config.py @@ -1,6 +1,7 @@ #!/usr/bin/python """This module does blah blah.""" import argparse +import ipaddress import yaml from jinja2 import Environment, FileSystemLoader @@ -9,8 +10,19 @@ PARSER.add_argument("--yaml", "-y", type=str, required=True) PARSER.add_argument("--jinja2", "-j", type=str, required=True) ARGS = PARSER.parse_args() +# Custom filter to allow simple IP address operations returning +# a new address from an upper or lower (negative) index +def ipaddr_index(base_address, index): + """Return IP address in given network at given index""" + try: + base_address_str = unicode(base_address) + #pylint: disable=unused-variable + except NameError as ex: + base_address_str = str(base_address) + return ipaddress.ip_address(base_address_str) + int(index) ENV = Environment(loader=FileSystemLoader('./')) +ENV.filters['ipaddr_index'] = ipaddr_index with open(ARGS.yaml) as _: DICT = yaml.safe_load(_) @@ -20,4 +32,5 @@ with open(ARGS.yaml) as _: # Render template and print generated conf to console TEMPLATE = ENV.get_template(ARGS.jinja2) +#pylint: disable=superfluous-parens print(TEMPLATE.render(conf=DICT)) |