diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index 59eb170da64012382d7224bda778d00db2fe6399..4e1351c6974b7db511a12f0b65107167f5a8b1bd 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):