From 5dd7444aefca744d169104a827ca682e84fd7487 Mon Sep 17 00:00:00 2001
From: Erik Reid <erik.reid@geant.org>
Date: Wed, 10 Aug 2022 16:22:07 +0200
Subject: [PATCH] specify lru_cache maxsize

---
 inventory_provider/db/ims_data.py  |  2 +-
 inventory_provider/routes/msr.py   |  4 ++--
 inventory_provider/tasks/worker.py | 12 ++++++++++--
 3 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/inventory_provider/db/ims_data.py b/inventory_provider/db/ims_data.py
index 308ba5a8..c0bd7a7b 100644
--- a/inventory_provider/db/ims_data.py
+++ b/inventory_provider/db/ims_data.py
@@ -170,7 +170,7 @@ def get_port_id_services(ds: IMS):
             c['circuit_type'] = _get_circuit_type(c)
             yield c
 
-    circuits = _get_circuits()
+    circuits = list(_get_circuits())
 
     # order of preference
     # internalports (first and last sequencenumbers)
diff --git a/inventory_provider/routes/msr.py b/inventory_provider/routes/msr.py
index cbacaa97..a1828a20 100644
--- a/inventory_provider/routes/msr.py
+++ b/inventory_provider/routes/msr.py
@@ -883,7 +883,7 @@ def get_peering_services():
 
 
 # TODO: @functools.cache is only available in py3.9
-@functools.lru_cache
+@functools.lru_cache(maxsize=None)
 def _load_all_interfaces():
     """
     loads all ip interfaces in the network and returns as a dict
@@ -911,7 +911,7 @@ def _load_all_interfaces():
 
 
 # TODO: @functools.cache is only available in py3.9
-@functools.lru_cache
+@functools.lru_cache(maxsize=None)
 def _load_redundant_access_peers():
     """
     load all peers that should be considered
diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py
index 3517bb03..76a8bfb3 100644
--- a/inventory_provider/tasks/worker.py
+++ b/inventory_provider/tasks/worker.py
@@ -722,11 +722,17 @@ def ims_task(self, use_current=False):
 
 
 def extract_ims_data():
-
     c = InventoryTask.config["ims"]
+    return _extract_ims_data(
+        ims_api_url=c['api'],
+        ims_username=c['username'],
+        ims_password=c['password'])
+
+
+def _extract_ims_data(ims_api_url, ims_username, ims_password):
 
     def _ds() -> IMS:
-        return IMS(c['api'], c['username'], c['password'])
+        return IMS(ims_api_url, ims_username, ims_password)
 
     locations = {}
     lg_routers = []
@@ -1062,6 +1068,8 @@ def transform_ims_data(data):
                         if sid_info not in sid_services[sid]:
                             sid_services[sid].append(sid_info)
 
+        if k.startswith('MX1.LON.UK:XE-1/0/0'):
+            print('here')
         interface_services[k].extend(circuits)
 
     return {
-- 
GitLab