From 133685a466718a4195a039cdab136402b127105a Mon Sep 17 00:00:00 2001 From: zphrs <z@zephiris.dev> Date: Thu, 13 Mar 2025 21:13:43 -0700 Subject: [PATCH] Fixed issue where a container's ip addr changes when getting assigned to a new network --- tests/helper.py | 1 + utils/containers.py | 21 +++++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/tests/helper.py b/tests/helper.py index 18b31db..e8057e4 100644 --- a/tests/helper.py +++ b/tests/helper.py @@ -7,6 +7,7 @@ from ..utils.util import Logger class KVSTestFixture: def __init__(self, conductor: ClusterConductor, dir, log: Logger, node_count: int): + conductor._parent = self self.conductor = conductor self.dir = dir self.node_count = node_count diff --git a/utils/containers.py b/utils/containers.py index 894dbd2..98ce328 100644 --- a/utils/containers.py +++ b/utils/containers.py @@ -412,7 +412,16 @@ class ClusterConductor: self.log(f" node {node.name} ip in network {net_name}: {container_ip}") # update node ip - node.ip = container_ip + + if container_ip != node.ip: + node.ip = container_ip + if hasattr(self, "_parent"): + self._parent.clients[ + node.index + ].base_url = self.node_external_endpoint(node.index) + view_changed = True + if view_changed and hasattr(self, "_parent"): + self._parent.broadcast_view(self.get_shard_view()) def create_partition(self, node_ids: List[int], partition_id: str) -> None: net_name = f"kvs_{self.group_id}_net_{partition_id}" @@ -463,7 +472,15 @@ class ClusterConductor: self.log(f" node {node.name} ip in network {net_name}: {container_ip}") # update node ip - node.ip = container_ip + if container_ip != node.ip: + node.ip = container_ip + if hasattr(self, "_parent"): + self._parent.clients[ + node.index + ].base_url = self.node_external_endpoint(node.index) + view_changed = True + if view_changed and hasattr(self, "_parent"): + self._parent.broadcast_view(self.get_shard_view()) DeprecationWarning("View is in updated format") -- GitLab