Passing data only through unit relation data
[osm/devops.git] / installers / charm / nbi / src / charm.py
index 6db99be..848b53d 100755 (executable)
@@ -129,10 +129,8 @@ class NbiCharm(CharmBase):
         Args:
             event (EventBase): Kafka relation event.
         """
-        data_loc = event.unit if event.unit else event.app
-
-        message_host = event.relation.data[data_loc].get("host")
-        message_port = event.relation.data[data_loc].get("port")
+        message_host = event.relation.data[event.unit].get("host")
+        message_port = event.relation.data[event.unit].get("port")
 
         if (
             message_host
@@ -143,7 +141,7 @@ class NbiCharm(CharmBase):
             )
         ):
             self.state.message_host = message_host
-            self.state.message_port = message_port
+            self.state.message_port = int(message_port)
             self.on.configure_pod.emit()
 
     def _on_kafka_relation_departed(self, event: EventBase) -> NoReturn:
@@ -162,9 +160,7 @@ class NbiCharm(CharmBase):
         Args:
             event (EventBase): DB relation event.
         """
-        data_loc = event.unit if event.unit else event.app
-
-        database_uri = event.relation.data[data_loc].get("connection_string")
+        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
@@ -185,19 +181,17 @@ class NbiCharm(CharmBase):
         Args:
             event (EventBase): Keystone relation event.
         """
-        data_loc = event.unit if event.unit else event.app
-
-        keystone_host = event.relation.data[data_loc].get("host")
-        keystone_port = event.relation.data[data_loc].get("port")
-        keystone_user_domain_name = event.relation.data[data_loc].get(
+        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[data_loc].get(
+        keystone_project_domain_name = event.relation.data[event.unit].get(
             "project_domain_name"
         )
-        keystone_username = event.relation.data[data_loc].get("username")
-        keystone_password = event.relation.data[data_loc].get("password")
-        keystone_service = event.relation.data[data_loc].get("service")
+        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
@@ -219,7 +213,7 @@ class NbiCharm(CharmBase):
             )
         ):
             self.state.keystone_host = keystone_host
-            self.state.keystone_port = keystone_port
+            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
@@ -248,10 +242,8 @@ class NbiCharm(CharmBase):
         Args:
             event (EventBase): Prometheus relation event.
         """
-        data_loc = event.unit if event.unit else event.app
-
-        prometheus_host = event.relation.data[data_loc].get("hostname")
-        prometheus_port = event.relation.data[data_loc].get("port")
+        prometheus_host = event.relation.data[event.unit].get("hostname")
+        prometheus_port = event.relation.data[event.unit].get("port")
 
         if (
             prometheus_host
@@ -262,7 +254,7 @@ class NbiCharm(CharmBase):
             )
         ):
             self.state.prometheus_host = prometheus_host
-            self.state.prometheus_port = prometheus_port
+            self.state.prometheus_port = int(prometheus_port)
             self.on.configure_pod.emit()
 
     def _on_prometheus_relation_departed(self, event: EventBase) -> NoReturn:
@@ -281,13 +273,12 @@ class NbiCharm(CharmBase):
         Args:
             event (EventBase): NBI relation event.
         """
-        if self.unit.is_leader():
-            rel_data = {
-                "host": self.model.app.name,
-                "port": str(NBI_PORT),
-            }
-            for k, v in rel_data.items():
-                event.relation.data[self.model.app][k] = v
+        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.