Merge "Fix trusted dashboard relation" into main
This commit is contained in:
@@ -308,7 +308,6 @@ class TrustedDashboardRequirer(Object):
|
|||||||
"""Handle relation broken event."""
|
"""Handle relation broken event."""
|
||||||
|
|
||||||
logger.info("Relation broken, clearing federated providers.")
|
logger.info("Relation broken, clearing federated providers.")
|
||||||
event.relation.data[event.app].clear()
|
|
||||||
self.on.dashboard_changed.emit(trusted_dashboard="")
|
self.on.dashboard_changed.emit(trusted_dashboard="")
|
||||||
|
|
||||||
def get_trusted_dashboard(self, relation_id: Optional[int] = None) -> Optional[str]:
|
def get_trusted_dashboard(self, relation_id: Optional[int] = None) -> Optional[str]:
|
||||||
|
|||||||
@@ -214,14 +214,8 @@ class HorizonOperatorCharm(sunbeam_charm.OSBaseOperatorAPICharm):
|
|||||||
if not self.model.unit.is_leader():
|
if not self.model.unit.is_leader():
|
||||||
return
|
return
|
||||||
|
|
||||||
fid_providers = event.fid_providers
|
# Set the trusted dashboard URL regardless of whether or not the
|
||||||
if not fid_providers:
|
# requirer sets FID providers.
|
||||||
logger.debug("No FID providers found, skipping update.")
|
|
||||||
return
|
|
||||||
|
|
||||||
logger.debug(
|
|
||||||
"Setting trusted dashboard provider info: %s", fid_providers
|
|
||||||
)
|
|
||||||
self.trusted_dashboard.set_provider_info(
|
self.trusted_dashboard.set_provider_info(
|
||||||
trusted_dashboard=self._websso_url
|
trusted_dashboard=self._websso_url
|
||||||
)
|
)
|
||||||
@@ -299,6 +293,9 @@ class HorizonOperatorCharm(sunbeam_charm.OSBaseOperatorAPICharm):
|
|||||||
"""Configure charm services."""
|
"""Configure charm services."""
|
||||||
super().configure_charm(event)
|
super().configure_charm(event)
|
||||||
if self.bootstrapped():
|
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(""))
|
self.status.set(ops.model.ActiveStatus(""))
|
||||||
if self.model.unit.is_leader():
|
if self.model.unit.is_leader():
|
||||||
if self.ingress_public.url:
|
if self.ingress_public.url:
|
||||||
|
|||||||
@@ -673,8 +673,7 @@ class TrustedDashboardRequiresHandler(sunbeam_rhandlers.RelationHandler):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def _on_trusted_dashboard(self, event):
|
def _on_trusted_dashboard(self, event):
|
||||||
if self.interface.get_trusted_dashboard():
|
self.callback_f(event)
|
||||||
self.callback_f(event)
|
|
||||||
|
|
||||||
def context(self):
|
def context(self):
|
||||||
"""Configuration context."""
|
"""Configuration context."""
|
||||||
|
|||||||
Reference in New Issue
Block a user