From f4bfd281d85c9af31d0577845dadfb9c98526268 Mon Sep 17 00:00:00 2001
From: Erik Reid <erik.reid@geant.org>
Date: Tue, 24 Aug 2021 10:39:13 +0200
Subject: [PATCH] POL1-492: erase sensu cache before each update

---
 brian_polling_manager/main.py  | 6 ++++--
 brian_polling_manager/sensu.py | 5 +++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/brian_polling_manager/main.py b/brian_polling_manager/main.py
index ab837be..a753961 100644
--- a/brian_polling_manager/main.py
+++ b/brian_polling_manager/main.py
@@ -29,8 +29,8 @@ import click
 import jsonschema
 from statsd import StatsClient
 
-from brian_polling_manager \
-    import inventory, configuration, interfaces, gws_direct, gws_indirect
+from brian_polling_manager import inventory, configuration, \
+    interfaces, gws_direct, gws_indirect, sensu
 
 logger = logging.getLogger(__name__)
 
@@ -74,6 +74,8 @@ def refresh(config, force=False):
     :param force: if True, reload inventory data even if timestamp is same
     :return: a dict, formatted as above
     """
+    sensu.clear_cached_values()
+
     state = configuration.State(config['statedir'])
     last = inventory.last_update_timestamp(config['inventory'])
     if force or not last or last != state.last:
diff --git a/brian_polling_manager/sensu.py b/brian_polling_manager/sensu.py
index b03ec13..1ac0bf7 100644
--- a/brian_polling_manager/sensu.py
+++ b/brian_polling_manager/sensu.py
@@ -12,6 +12,11 @@ logger = logging.getLogger(__name__)
 _cached_checks = None  # not using lru_cache, since params is a dict
 
 
+def clear_cached_values():
+    global _cached_checks
+    _cached_checks = None
+
+
 def load_all_checks(params, namespace='default'):
     global _cached_checks
     if _cached_checks is not None:
-- 
GitLab