Files
scylladb/test/cluster/test_replace_with_encryption.py
Artsiom Mishuta d1198f8318 test.py: rename topology_custom folder to cluster
rename topology_custom folder to cluster
as it contains not only topology test cases
2025-03-04 10:32:44 +01:00

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"
)