From e19d48c8285dbacaf9903c8f9a768b5cade28a76 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Sun, 3 Mar 2019 17:02:49 +0100 Subject: [PATCH] added peer-cache cleanup --- inventory_provider/tasks/worker.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index 59eb170d..4e1351c6 100644 --- a/inventory_provider/tasks/worker.py +++ b/inventory_provider/tasks/worker.py @@ -260,7 +260,17 @@ def clear_cached_classifier_responses(hostname): r = get_redis(InventoryTask.config) for k in r.keys('classifier:cache:%s:*' % hostname): r.delete(k) - # TODO: remove peer-cache (after adding hostname to query) + + # TODO: very inefficient ... but logically simplest at this point + for k in r.keys('classifier:peer-cache:*'): + value = r.get(k.decode('utf-8')) + if not value: + # deleted in another thread + continue + value = json.loads(value.decode('utf-8')) + interfaces = value.get('interfaces', []) + if hostname in [i['interface']['router'] for i in interfaces]: + r.delete(k) def _refresh_peers(hostname, key_base, peers): -- GitLab