Fix: defer cos-prometheus for bootstrap

If a COS prometheus changed event is processed but bootstrap hasn't
completed yet, we need to retry the event at a later time.

Closes-bug: #2042891

Change-Id: I3d274c09522f9d7ef56bc66f68d8488150c125d8
This commit is contained in:
Peter Sabaini 2024-03-01 09:57:09 +01:00
parent 35f9af8c96
commit 762ad83c19
1 changed files with 16 additions and 9 deletions

View File

@ -61,15 +61,22 @@ class CephMetricsEndpointProvider(prometheus_scrape.MetricsEndpointProvider):
def _on_relation_changed(self, event):
"""Enable prometheus on relation change"""
if self._charm.unit.is_leader() and ceph_utils.is_bootstrapped():
logger.debug(
"is_leader and is_bootstrapped, running rel changed: %s", event
)
mgr_config_set_rbd_stats_pools()
ceph_utils.mgr_enable_module("prometheus")
logger.debug("module_enabled")
self.update_alert_rules()
super()._on_relation_changed(event)
if not self._charm.unit.is_leader():
return
if not ceph_utils.is_bootstrapped():
logger.debug("not bootstrapped, defer rel changed: %s", event)
event.defer()
return
logger.debug(
"is_leader and is_bootstrapped, running rel changed: %s", event
)
mgr_config_set_rbd_stats_pools()
ceph_utils.mgr_enable_module("prometheus")
logger.debug("module_enabled")
self.update_alert_rules()
super()._on_relation_changed(event)
def _on_relation_departed(self, event):
"""Disable prometheus on depart of relation"""