42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
# Copyright 2025-present ScyllaDB
|
|
#
|
|
# SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.0
|
|
|
|
import logging
|
|
import pytest
|
|
import requests
|
|
import sys
|
|
import threading
|
|
import time
|
|
|
|
from test.pylib.manager_client import ManagerClient
|
|
from test.pylib.rest_client import read_barrier
|
|
from test.pylib.util import wait_for
|
|
|
|
async def wait_for_config(manager, server, config_name, value):
|
|
async def config_value_equal():
|
|
await read_barrier(manager.api, server.ip_addr)
|
|
resp = await manager.api.get_config(server.ip_addr, config_name)
|
|
logging.info(f"Obtained config via REST api - config_name={config_name} value={value}")
|
|
if resp == value:
|
|
return True
|
|
return None
|
|
await wait_for(config_value_equal, deadline=time.time() + 60)
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_non_liveupdatable_config(manager):
|
|
|
|
server = await manager.server_add()
|
|
not_liveupdatable_param = "auto_bootstrap"
|
|
liveupdatable_param = "compaction_enforce_min_threshold"
|
|
|
|
logging.info("Verify initial (default) config values")
|
|
await wait_for_config(manager, server, not_liveupdatable_param, True)
|
|
await wait_for_config(manager, server, liveupdatable_param, False)
|
|
|
|
logging.info("Change config values - verify only liveupdatable config is changed")
|
|
await manager.server_update_config(server.server_id, not_liveupdatable_param, False)
|
|
await manager.server_update_config(server.server_id, liveupdatable_param, True)
|
|
await wait_for_config(manager, server, liveupdatable_param, True)
|
|
await wait_for_config(manager, server, not_liveupdatable_param, True)
|