From 5374ec9cfac082e544572f6769ce336e950d9c29 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Fri, 19 Jul 2019 12:25:07 +0200 Subject: [PATCH] use 'subnets:*' to lookup peer addresses --- inventory_provider/routes/classifier.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/inventory_provider/routes/classifier.py b/inventory_provider/routes/classifier.py index 01e9edb0..2e84b964 100644 --- a/inventory_provider/routes/classifier.py +++ b/inventory_provider/routes/classifier.py @@ -193,12 +193,16 @@ def find_interfaces(address): :return: """ r = common.get_current_redis() - for k in r.keys('reverse_interface_addresses:*'): - info = r.get(k.decode('utf-8')).decode('utf-8') - info = json.loads(info) - interface = ipaddress.ip_interface(info['interface address']) + for k in r.keys('subnets:*'): + k = k.decode('utf-8') + m = re.match(r'^subnets:(.*)$', k) + assert m, 'sanity failure: redis returned an invalid key name' + interface = ipaddress.ip_interface(m.group(1)) if address in interface.network: - yield info + info = r.get(k).decode('utf-8') + info = json.loads(info) + for ifc in info: + yield ifc def find_interfaces_and_services(address_str): -- GitLab