diff --git a/inventory_provider/storage/external_inventory.py b/inventory_provider/storage/external_inventory.py index a32fed4a0eba4c5582c69a8f070468ada68b686d..e31e43bbdaca8024293a2c586c7afb7aac792ef4 100644 --- a/inventory_provider/storage/external_inventory.py +++ b/inventory_provider/storage/external_inventory.py @@ -1,4 +1,5 @@ import json +from collections import defaultdict from inventory_provider import db @@ -20,14 +21,17 @@ def update_services_to_monitor(services): def update_interfaces_to_services(services): r = db.get_redis() - mapped_interfaces = {} + mapped_interfaces = defaultdict(list) r.delete(interfaces_key) for service in services: key = "{}::{}".format( service['equipment'], service['interface_name'] ) - r.hset(interfaces_key, key, json.dumps(mapped_interfaces[key])) + mapped_interfaces[key].append(service) + + for key, value in mapped_interfaces.items(): + r.hset(interfaces_key, key, json.dumps(value)) def update_service_hierarchy(records):