33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
#
|
|
# Copyright (C) 2024-present ScyllaDB
|
|
#
|
|
# SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.0
|
|
#
|
|
from test.pylib.scylla_cluster import ReplaceConfig
|
|
from test.pylib.manager_client import ManagerClient
|
|
from test.pylib.internal_types import ServerInfo
|
|
import pytest
|
|
import logging
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_replace_with_same_ip_twice(manager: ManagerClient) -> None:
|
|
logger.info("starting a cluster with two nodes")
|
|
servers = await manager.servers_add(3, config={'failure_detector_timeout_in_ms': 2000})
|
|
logger.info(f"cluster started {servers}")
|
|
|
|
async def replace_with_same_ip(s: ServerInfo) -> ServerInfo:
|
|
logger.info(f"stopping server {s.server_id}")
|
|
await manager.server_stop_gracefully(s.server_id)
|
|
|
|
logger.info(f"replacing server {s.server_id} with same ip")
|
|
replace_cfg = ReplaceConfig(replaced_id = s.server_id, reuse_ip_addr = True, use_host_id = False)
|
|
return await manager.server_add(replace_cfg)
|
|
|
|
test_server = servers[1]
|
|
test_server = await replace_with_same_ip(test_server)
|
|
await replace_with_same_ip(test_server)
|