From 02ccd2e3afaa262f334e90ece8877afa45e19ac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patryk=20J=C4=99drzejczak?= Date: Tue, 23 Jul 2024 13:27:17 +0200 Subject: [PATCH] test: scylla_cluster: improve expected_error in add_server We make two changes: - we lease the IP address of a node that failed to boot because of an expected error, - we don't log "Cluster ... added ..." when a node fails to boot because of an expected error. --- test/pylib/scylla_cluster.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/test/pylib/scylla_cluster.py b/test/pylib/scylla_cluster.py index b4b11de332..83698ecd5b 100644 --- a/test/pylib/scylla_cluster.py +++ b/test/pylib/scylla_cluster.py @@ -907,6 +907,13 @@ class ScyllaCluster: ) server = None + + async def handle_join_failure(): + if not replace_cfg or not replace_cfg.reuse_ip_addr: + self.leased_ips.remove(ip_addr) + await self.host_registry.release_host(Host(ip_addr)) + self.stopped[server.server_id] = server + try: server = self.create_server(params) self.logger.info("Cluster %s adding server...", self) @@ -918,16 +925,18 @@ class ScyllaCluster: workdir = '' if server is None else server.workdir.name self.logger.error("Failed to start Scylla server at host %s in %s: %s", ip_addr, workdir, str(exc)) - if not replace_cfg or not replace_cfg.reuse_ip_addr: - self.leased_ips.remove(ip_addr) - await self.host_registry.release_host(Host(ip_addr)) + await handle_join_failure() raise - finally: - if start and not expected_error: + + if expected_error: + await handle_join_failure() + else: + if start: self.running[server.server_id] = server else: self.stopped[server.server_id] = server - self.logger.info("Cluster %s added %s", self, server) + self.logger.info("Cluster %s added %s", self, server) + return ServerInfo(server.server_id, server.ip_addr, server.rpc_address) async def add_servers(self, servers_num: int = 1,