- self.on.prometheus_relation_changed, self._on_prometheus_relation_changed
- )
-
- # Registering required relation departed events
- self.framework.observe(
- self.on.kafka_relation_departed, self._on_kafka_relation_departed
- )
- self.framework.observe(
- self.on.mongodb_relation_departed, self._on_mongodb_relation_departed
- )
- self.framework.observe(
- self.on.keystone_relation_departed, self._on_keystone_relation_departed
- )
- self.framework.observe(
- self.on.prometheus_relation_departed, self._on_prometheus_relation_departed
- )
-
- # Registering provided relation events
- self.framework.observe(self.on.nbi_relation_joined, self._publish_nbi_info)
-
- def _on_kafka_relation_changed(self, event: EventBase) -> NoReturn:
- """Reads information about the kafka relation.
-
- Args:
- event (EventBase): Kafka relation event.
- """
- message_host = event.relation.data[event.unit].get("host")
- message_port = event.relation.data[event.unit].get("port")
-
- if (
- message_host
- and message_port
- and (
- self.state.message_host != message_host
- or self.state.message_port != message_port
- )
- ):
- self.state.message_host = message_host
- self.state.message_port = message_port
- self.on.configure_pod.emit()
-
- def _on_kafka_relation_departed(self, event: EventBase) -> NoReturn:
- """Clears data from kafka relation.
-
- Args:
- event (EventBase): Kafka relation event.
- """
- self.state.message_host = None
- self.state.message_port = None
- self.on.configure_pod.emit()
-
- def _on_mongodb_relation_changed(self, event: EventBase) -> NoReturn:
- """Reads information about the DB relation.
-
- Args:
- event (EventBase): DB relation event.
- """
- database_uri = event.relation.data[event.unit].get("connection_string")
-
- if database_uri and self.state.database_uri != database_uri:
- self.state.database_uri = database_uri
- self.on.configure_pod.emit()
-
- def _on_mongodb_relation_departed(self, event: EventBase) -> NoReturn:
- """Clears data from mongodb relation.
-
- Args:
- event (EventBase): DB relation event.
- """
- self.state.database_uri = None
- self.on.configure_pod.emit()
-
- def _on_keystone_relation_changed(self, event: EventBase) -> NoReturn:
- """Reads information about the keystone relation.
-
- Args:
- event (EventBase): Keystone relation event.
- """
- keystone_host = event.relation.data[event.unit].get("host")
- keystone_port = event.relation.data[event.unit].get("port")
- keystone_user_domain_name = event.relation.data[event.unit].get(
- "user_domain_name"
- )
- keystone_project_domain_name = event.relation.data[event.unit].get(
- "project_domain_name"