diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index c6057747dfb24b55f1f938d92ed680a68762768f..4ff03b013d6b846f30a3f2c466a28c55c148cc62 100644 --- a/inventory_provider/tasks/worker.py +++ b/inventory_provider/tasks/worker.py @@ -294,6 +294,7 @@ def _build_juniper_peering_db(update_callback=lambda s: None): peerings_per_logical_system = {} peerings_per_group = {} peerings_per_routing_instance = {} + all_peerings = [] # scan with bigger batches, to mitigate network latency effects key_prefix = 'juniper-peerings:hosts:' @@ -321,6 +322,7 @@ def _build_juniper_peering_db(update_callback=lambda s: None): if routing_instance: peerings_per_routing_instance.setdefault( routing_instance, []).append(p) + all_peerings.append(p) # sort ix peerings by group ix_groups = {} @@ -331,6 +333,8 @@ def _build_juniper_peering_db(update_callback=lambda s: None): rp = r.pipeline() + rp.set(f'juniper-peerings:all', json.dumps(all_peerings)) + # create peering entries, keyed by remote addresses update_callback(f'saving {len(peerings_per_address)} remote peers') for k, v in peerings_per_address.items():