Merge "Fix trusted dashboard relation" into main

This commit is contained in:
Zuul
2025-07-22 09:52:22 +00:00
committed by Gerrit Code Review
3 changed files with 6 additions and 11 deletions

View File

@@ -308,7 +308,6 @@ class TrustedDashboardRequirer(Object):
"""Handle relation broken event."""
logger.info("Relation broken, clearing federated providers.")
event.relation.data[event.app].clear()
self.on.dashboard_changed.emit(trusted_dashboard="")
def get_trusted_dashboard(self, relation_id: Optional[int] = None) -> Optional[str]:

View File

@@ -214,14 +214,8 @@ class HorizonOperatorCharm(sunbeam_charm.OSBaseOperatorAPICharm):
if not self.model.unit.is_leader():
return
fid_providers = event.fid_providers
if not fid_providers:
logger.debug("No FID providers found, skipping update.")
return
logger.debug(
"Setting trusted dashboard provider info: %s", fid_providers
)
# Set the trusted dashboard URL regardless of whether or not the
# requirer sets FID providers.
self.trusted_dashboard.set_provider_info(
trusted_dashboard=self._websso_url
)
@@ -299,6 +293,9 @@ class HorizonOperatorCharm(sunbeam_charm.OSBaseOperatorAPICharm):
"""Configure charm services."""
super().configure_charm(event)
if self.bootstrapped():
# Handle the case where TLS is enabled/external hostname is changed
# and we need to update the trusted dashboard URL in keystone.
self._on_trusted_dashboard_providers_changed(event)
self.status.set(ops.model.ActiveStatus(""))
if self.model.unit.is_leader():
if self.ingress_public.url:

View File

@@ -673,8 +673,7 @@ class TrustedDashboardRequiresHandler(sunbeam_rhandlers.RelationHandler):
)
def _on_trusted_dashboard(self, event):
if self.interface.get_trusted_dashboard():
self.callback_f(event)
self.callback_f(event)
def context(self):
"""Configuration context."""