61 lines
2.5 KiB
Python
61 lines
2.5 KiB
Python
#
|
|
# Copyright (C) 2024-present ScyllaDB
|
|
#
|
|
# SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.0
|
|
#
|
|
import pytest
|
|
from test.pylib.manager_client import ManagerClient
|
|
from test.pylib.scylla_cluster import ReplaceConfig
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
@pytest.mark.parametrize("join_ring", [True, False])
|
|
async def test_replace_with_encryption(manager: ManagerClient, join_ring):
|
|
"""Test that a node can be replaced if inter-dc encryption is enabled.
|
|
The test creates 6 node cluster with two DCs and replaces one node in
|
|
each DC. The test is parametrized to confirm behavior in zero token node cases as well."""
|
|
config = {"endpoint_snitch": "GossipingPropertyFileSnitch"}
|
|
config_maybe_zero_token = {"endpoint_snitch": "GossipingPropertyFileSnitch", "join_ring": join_ring}
|
|
property_file_dc1 = {"dc": "dc1", "rack": "myrack"}
|
|
property_file_dc2 = {"dc": "dc2", "rack": "myrack"}
|
|
|
|
await manager.servers_add(2,
|
|
config=config,
|
|
property_file=property_file_dc1,
|
|
server_encryption="dc"
|
|
)
|
|
await manager.servers_add(2,
|
|
config=config,
|
|
property_file=property_file_dc2,
|
|
server_encryption="dc"
|
|
)
|
|
|
|
s1 = await manager.server_add(config=config_maybe_zero_token,
|
|
property_file=property_file_dc1,
|
|
server_encryption="dc"
|
|
)
|
|
s2 = await manager.server_add(config=config_maybe_zero_token,
|
|
property_file=property_file_dc2,
|
|
server_encryption="dc"
|
|
)
|
|
|
|
await manager.server_stop_gracefully(s1.server_id)
|
|
|
|
replace_cfg = ReplaceConfig(replaced_id = s1.server_id, reuse_ip_addr = False,
|
|
use_host_id = True)
|
|
|
|
await manager.server_add(replace_cfg=replace_cfg, config=config_maybe_zero_token,
|
|
property_file=property_file_dc1,
|
|
server_encryption="dc"
|
|
)
|
|
|
|
await manager.server_stop_gracefully(s2.server_id)
|
|
|
|
replace_cfg = ReplaceConfig(replaced_id = s2.server_id, reuse_ip_addr = False,
|
|
use_host_id = True)
|
|
|
|
await manager.server_add(replace_cfg=replace_cfg, config=config_maybe_zero_token,
|
|
property_file=property_file_dc2,
|
|
server_encryption="dc"
|
|
)
|