diff --git a/inventory_provider/tasks/data.py b/inventory_provider/tasks/data.py index 4f01fb37139df58fde6eeff789fcf2374c494baf..4c8cd82c0507db4c7eba13c524b4ddb0960e602e 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(f'unexpected 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'],