diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index a3b96c6d9691b3b58cf15a5cf45ae7ac3e360ec0..5bf37c27067b3a543bfd3d1d1f3c314f50a6311b 100644 --- a/inventory_provider/tasks/worker.py +++ b/inventory_provider/tasks/worker.py @@ -691,11 +691,22 @@ def snmp_refresh_peerings_chorded( update_callback(f'snmp peering info loaded from {hostname}') +def cache_extracted_ims_data(extracted_data, use_current=False): + if use_current: + r = get_current_redis(InventoryTask.config) + else: + r = get_next_redis(InventoryTask.config) + + for k, v in extracted_data.items(): + r.set(f'ims:cache:{k}', json.dumps(v)) + + @app.task(base=InventoryTask, bind=True, name='ims_task') @log_task_entry_and_exit def ims_task(self, use_current=False): try: extracted_data = extract_ims_data() + cache_extracted_ims_data(extracted_data) transformed_data = transform_ims_data(extracted_data) transformed_data['locations'] = extracted_data['locations'] transformed_data['lg_routers'] = extracted_data['lg_routers']