Skip to content

Commit

Permalink
dt/admin_uuid: Integration test for CLI options
Browse files Browse the repository at this point in the history
Signed-off-by: Oren Leiman <oren.leiman@redpanda.com>
  • Loading branch information
oleiman committed Sep 9, 2024
1 parent 38373ac commit b4656fd
Showing 1 changed file with 39 additions and 9 deletions.
48 changes: 39 additions & 9 deletions tests/rptest/tests/admin_uuid_operations_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
class TestMode(IntEnum):
CFG_OVERRIDE = 1
NO_OVERRIDE = 2
CLI_OVERRIDE = 3


class AdminUUIDOperationsTest(RedpandaTest):
Expand Down Expand Up @@ -124,6 +125,7 @@ def scrape_uuid(self, node: ClusterNode) -> str | None:
def _restart_node(self,
node: ClusterNode,
overrides: dict | None = None,
extra_cli: list[str] = [],
drop_disk: bool = False):
self.redpanda.stop_node(node)
if drop_disk:
Expand All @@ -136,11 +138,13 @@ def _restart_node(self,
auto_assign_node_id=True,
omit_seeds_on_idx_one=False,
override_cfg_params=overrides,
extra_cli=extra_cli,
)

@cluster(num_nodes=3)
@parametrize(mode=TestMode.CFG_OVERRIDE)
@parametrize(mode=TestMode.NO_OVERRIDE)
@parametrize(mode=TestMode.CLI_OVERRIDE)
def test_force_uuid_override(self, mode):
to_stop = self.redpanda.nodes[0]
initial_to_stop_id = self.redpanda.node_id(to_stop)
Expand Down Expand Up @@ -192,6 +196,18 @@ def test_force_uuid_override(self, mode):
], ),
drop_disk=False,
)
elif mode == TestMode.CLI_OVERRIDE:
self.logger.debug(
f"Override with known-good uuid/id via command line options: {THE_OVERRIDE}"
)
self._restart_node(
to_stop,
extra_cli=[
"--node-id-overrides",
f"{current_uuid}:{old_uuid}:{initial_to_stop_id}",
],
drop_disk=False,
)
elif mode == TestMode.NO_OVERRIDE:
self.logger.debug(
"Omit the override to confirm that we're still stuck in that case"
Expand Down Expand Up @@ -256,7 +272,9 @@ def expect_ids(node: ClusterNode, uuid: str, id: int):
retry_on_exc=True)

@cluster(num_nodes=3)
def test_force_uuid_override_multinode(self):
@parametrize(mode=TestMode.CFG_OVERRIDE)
@parametrize(mode=TestMode.CLI_OVERRIDE)
def test_force_uuid_override_multinode(self, mode):
to_stop = self.redpanda.nodes[1:]
initial_to_stop_ids = [self.redpanda.node_id(n) for n in to_stop]

Expand Down Expand Up @@ -294,14 +312,26 @@ def test_force_uuid_override_multinode(self):
self.logger.debug(
"Restart both nodes again, with overrides. Keep both disks")

self.redpanda.restart_nodes(
to_stop,
override_cfg_params=dict(node_id_overrides=[
dict(current_uuid=current_uuids[n],
new_uuid=old_uuids[initial_to_stop_ids[n]],
new_id=initial_to_stop_ids[n])
for n in range(0, len(to_stop))
], ))
if mode == TestMode.CFG_OVERRIDE:
self.redpanda.restart_nodes(
to_stop,
override_cfg_params=dict(node_id_overrides=[
dict(current_uuid=current_uuids[n],
new_uuid=old_uuids[initial_to_stop_ids[n]],
new_id=initial_to_stop_ids[n])
for n in range(0, len(to_stop))
]),
)
elif mode == TestMode.CLI_OVERRIDE:
self.redpanda.restart_nodes(
to_stop,
extra_cli=[
"--node-id-overrides",
] + [
f"{current_uuids[n]}:{old_uuids[initial_to_stop_ids[n]]}:{initial_to_stop_ids[n]}"
for n in range(0, len(to_stop))
],
)

self.logger.debug("Wait for the cluster to become healthy...")

Expand Down

0 comments on commit b4656fd

Please sign in to comment.