Skip to content

Commit 1701207

Browse files
committed
Resolve all addresses on fetching a new routing table
1 parent 6bae978 commit 1701207

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

neo4j/io/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,6 +1022,9 @@ def update_routing_table_from(self, *routers, database=None,
10221022
"[#0000] C: <UPDATE ROUTING TABLE> address=%r (%r)",
10231023
address, self.routing_tables[database]
10241024
)
1025+
self.routing_tables[database].resolve_all(
1026+
self.pool_config.resolver
1027+
)
10251028
return True
10261029
self.deactivate(router)
10271030
return False

neo4j/routing.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,3 +174,16 @@ def update(self, new_routing_table):
174174

175175
def servers(self):
176176
return set(self.routers) | set(self.writers) | set(self.readers)
177+
178+
@staticmethod
179+
def _resolve_addresses(addresses, resolver):
180+
res = OrderedSet()
181+
for address in addresses:
182+
res.update(address.resolve(resolver=resolver))
183+
return res
184+
185+
def resolve_all(self, resolver):
186+
self.routers = RoutingTable._resolve_addresses(self.routers, resolver)
187+
self.writers = RoutingTable._resolve_addresses(self.writers, resolver)
188+
self.readers = RoutingTable._resolve_addresses(self.readers, resolver)
189+
log.debug("[#0000] S: <RESOLVED ROUTING TABLE> table=%r", self)

0 commit comments

Comments
 (0)