From 8547da584e1c96408163999cf93b2dcebe0b0715 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Thu, 13 Aug 2020 11:25:01 +0200 Subject: [PATCH] remove assumption that interface name doesn't contain ':' --- inventory_provider/tasks/data.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/inventory_provider/tasks/data.py b/inventory_provider/tasks/data.py index 4f01fb37..15527bdb 100644 --- a/inventory_provider/tasks/data.py +++ b/inventory_provider/tasks/data.py @@ -18,12 +18,17 @@ def build_service_interface_user_list(config): r = get_next_redis(config) for k in r.scan_iter('netconf-interfaces:*'): k = k.decode('utf-8') - (_, router_name, ifc_name) = k.split(':') + m = re.match('^netconf-interfaces:([^:]+):(.+)$', k) + if not m: + logger.error('invalid redis key: "{k}"') + continue # skip, rather than fail the entire update + router_name = m.group(1) + ifc_name = m.group(2) info = r.get(k).decode('utf-8') info = json.loads(info) - assert ifc_name == info['name'] + assert ifc_name == info['name'] # sanity yield { 'router': router_name, 'interface': info['name'], -- GitLab