From 767574cb4428cef8422dfc1e2732b5bc5576145d Mon Sep 17 00:00:00 2001 From: Reid 'arrdem' McKenzie Date: Thu, 12 Aug 2021 14:28:57 -0600 Subject: [PATCH] Get the updater zapping nicely --- projects/gandi/BUILD | 2 +- projects/public-dns/BUILD | 5 ++++- .../src/python/arrdem/updater/__main__.py | 13 +++++++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/projects/gandi/BUILD b/projects/gandi/BUILD index 62beb01..936b3c7 100644 --- a/projects/gandi/BUILD +++ b/projects/gandi/BUILD @@ -4,7 +4,7 @@ py_library( name = "gandi", srcs = glob(["src/python/gandi/client.py"]), imports = [ - "src/python" + "src/python", ], deps = [ py_requirement("requests"), diff --git a/projects/public-dns/BUILD b/projects/public-dns/BUILD index ac7e79e..06bf1bf 100644 --- a/projects/public-dns/BUILD +++ b/projects/public-dns/BUILD @@ -1,6 +1,9 @@ -py_binary( +zapp_binary( name = "updater", main = "src/python/arrdem/updater/__main__.py", + imports = [ + "src/python", + ], deps = [ "//projects/gandi", py_requirement("jinja2"), diff --git a/projects/public-dns/src/python/arrdem/updater/__main__.py b/projects/public-dns/src/python/arrdem/updater/__main__.py index de5e10b..2d03421 100644 --- a/projects/public-dns/src/python/arrdem/updater/__main__.py +++ b/projects/public-dns/src/python/arrdem/updater/__main__.py @@ -9,9 +9,6 @@ import re import sys -for e in sys.path: - print(e) - from gandi.client import GandiAPI import jinja2 import meraki @@ -30,8 +27,10 @@ RECORD_LINE_PATTERN = re.compile( def update(m, k, f, *args, **kwargs): """clojure.core/update for Python's stateful maps.""" + if k in m: m[k] = f(m[k], *args, **kwargs) + return m @@ -70,8 +69,8 @@ def template_and_parse_zone(template_file, template_bindings): assert template_file is not None assert template_bindings is not None - with open(template_file) as f: - dat = jinja2.Template(f.read()).render(**template_bindings) + with open(template_file) as fp: + dat = jinja2.Template(fp.read()).render(**template_bindings) uncommitted_records = [] for line in dat.splitlines(): @@ -138,7 +137,9 @@ parser.add_argument("--dry-run", dest="dry", action="store_true", default=False) def main(): args = parser.parse_args() - config = yaml.safe_load(open(args.config_file, "r")) + + with open(args.config_file, "r") as fp: + config = yaml.safe_load(fp) dashboard = meraki.DashboardAPI(config["meraki"]["key"], output_log=False) org = config["meraki"]["organization"]