Skip to content

Commit 9d270e6

Browse files
[DPE-7871] Reorder map logic (#1075)
* Reorder map logic Signed-off-by: Marcelo Henrique Neppel <[email protected]> * Remove unneeded check Signed-off-by: Marcelo Henrique Neppel <[email protected]> --------- Signed-off-by: Marcelo Henrique Neppel <[email protected]>
1 parent 3fa4c66 commit 9d270e6

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

src/charm.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2158,9 +2158,21 @@ def client_relations(self) -> list[Relation]:
21582158
@property
21592159
def relations_user_databases_map(self) -> dict:
21602160
"""Returns a user->databases map for all relations."""
2161-
if not self.is_cluster_initialised or not self._patroni.member_started:
2162-
return {USER: "all", REPLICATION_USER: "all", REWIND_USER: "all"}
21632161
user_database_map = {}
2162+
# Copy relations users directly instead of waiting for them to be created
2163+
for relation in self.model.relations[self.postgresql_client_relation.relation_name]:
2164+
user = f"relation-{relation.id}"
2165+
if database := self.postgresql_client_relation.database_provides.fetch_relation_field(
2166+
relation.id, "database"
2167+
):
2168+
user_database_map[user] = database
2169+
if not self.is_cluster_initialised or not self._patroni.member_started:
2170+
user_database_map.update({
2171+
USER: "all",
2172+
REPLICATION_USER: "all",
2173+
REWIND_USER: "all",
2174+
})
2175+
return user_database_map
21642176
try:
21652177
for user in sorted(
21662178
self.postgresql.list_users_from_relation(current_host=self.is_connectivity_enabled)
@@ -2194,17 +2206,6 @@ def relations_user_databases_map(self) -> dict:
21942206
REPLICATION_USER: "all",
21952207
REWIND_USER: "all",
21962208
})
2197-
2198-
# Copy relations users directly instead of waiting for them to be created
2199-
for relation in self.model.relations[self.postgresql_client_relation.relation_name]:
2200-
user = f"relation-{relation.id}"
2201-
if user not in user_database_map and (
2202-
database
2203-
:= self.postgresql_client_relation.database_provides.fetch_relation_field(
2204-
relation.id, "database"
2205-
)
2206-
):
2207-
user_database_map[user] = database
22082209
return user_database_map
22092210
except PostgreSQLListUsersError:
22102211
logger.debug("relations_user_databases_map: Unable to get users")

0 commit comments

Comments
 (0)