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,7 +61,14 @@ 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():
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
)