- keystone_username = event.relation.data[event.unit].get("username")
- keystone_password = event.relation.data[event.unit].get("password")
- keystone_service = event.relation.data[event.unit].get("service")
-
- if (
- keystone_host
- and keystone_port
- and keystone_user_domain_name
- and keystone_project_domain_name
- and keystone_username
- and keystone_password
- and keystone_service
- and (
- self.state.keystone_host != keystone_host
- or self.state.keystone_port != keystone_port
- or self.state.keystone_user_domain_name != keystone_user_domain_name
- or self.state.keystone_project_domain_name
- != keystone_project_domain_name
- or self.state.keystone_username != keystone_username
- or self.state.keystone_password != keystone_password
- or self.state.keystone_service != keystone_service
- )
- ):
- self.state.keystone_host = keystone_host
- self.state.keystone_port = int(keystone_port)
- self.state.keystone_user_domain_name = keystone_user_domain_name
- self.state.keystone_project_domain_name = keystone_project_domain_name
- self.state.keystone_username = keystone_username
- self.state.keystone_password = keystone_password
- self.state.keystone_service = keystone_service
- self.on.configure_pod.emit()
-
- def _on_keystone_relation_departed(self, event: EventBase) -> NoReturn:
- """Clears data from keystone relation.
-
- Args:
- event (EventBase): Keystone relation event.
- """
- self.state.keystone_host = None
- self.state.keystone_port = None
- self.state.keystone_user_domain_name = None
- self.state.keystone_project_domain_name = None
- self.state.keystone_username = None
- self.state.keystone_password = None
- self.state.keystone_service = None
- self.on.configure_pod.emit()
-
- def _on_prometheus_relation_changed(self, event: EventBase) -> NoReturn:
- """Reads information about the prometheus relation.
-
- Args:
- event (EventBase): Prometheus relation event.
- """
- prometheus_host = event.relation.data[event.unit].get("hostname")
- prometheus_port = event.relation.data[event.unit].get("port")
-
- if (
- prometheus_host
- and prometheus_port
- and (
- self.state.prometheus_host != prometheus_host
- or self.state.prometheus_port != prometheus_port
- )
- ):
- self.state.prometheus_host = prometheus_host
- self.state.prometheus_port = int(prometheus_port)
- self.on.configure_pod.emit()
-
- def _on_prometheus_relation_departed(self, event: EventBase) -> NoReturn:
- """Clears data from prometheus relation.
-
- Args:
- event (EventBase): Prometheus relation event.
- """
- self.state.prometheus_host = None
- self.state.prometheus_port = None
- self.on.configure_pod.emit()
-
- def _publish_nbi_info(self, event: EventBase) -> NoReturn:
- """Publishes NBI information.
-
- Args:
- event (EventBase): NBI relation event.
- """
- rel_data = {
- "host": self.model.app.name,
- "port": str(NBI_PORT),
- }
- for k, v in rel_data.items():
- event.relation.data[self.unit][k] = v
-
- def _missing_relations(self) -> str:
- """Checks if there missing relations.