tools/scylla-nodetool: implement setlogginglevel command

This commit is contained in:
Botond Dénes
2023-12-08 08:18:56 -05:00
parent 3a8590e1af
commit 58d3850da1
2 changed files with 46 additions and 0 deletions

View File

@@ -5,6 +5,7 @@
#
from rest_api_mock import expected_request
import utils
def test_getlogginglevels(nodetool):
@@ -18,3 +19,24 @@ Logger Name Log Level
sstable info
cache trace
"""
def test_setlogginglevel(nodetool):
nodetool("setlogginglevel", "wasm", "trace", expected_requests=[
expected_request("POST", "/system/logger/wasm", params={"level": "trace"})])
def test_setlogginglevel_reset_logger(nodetool, scylla_only):
utils.check_nodetool_fails_with(
nodetool,
("setlogginglevel", "wasm"),
{"expected_requests": []},
["error processing arguments: resetting logger(s) is not supported yet, the logger and level parameters are required"])
def test_setlogginglevel_reset_all_loggers(nodetool, scylla_only):
utils.check_nodetool_fails_with(
nodetool,
("setlogginglevel",),
{"expected_requests": []},
["error processing arguments: resetting logger(s) is not supported yet, the logger and level parameters are required"])

View File

@@ -585,6 +585,13 @@ void removenode_operation(scylla_rest_client& client, const bpo::variables_map&
}
}
void setlogginglevel_operation(scylla_rest_client& client, const bpo::variables_map& vm) {
if (!vm.count("logger") || !vm.count("level")) {
throw std::invalid_argument("resetting logger(s) is not supported yet, the logger and level parameters are required");
}
client.post(format("/system/logger/{}", vm["logger"].as<sstring>()), {{"level", vm["level"].as<sstring>()}});
}
void settraceprobability_operation(scylla_rest_client& client, const bpo::variables_map& vm) {
if (!vm.count("trace_probability")) {
throw std::invalid_argument("required parameters are missing: trace_probability");
@@ -1052,6 +1059,23 @@ Fore more information, see: https://opensource.docs.scylladb.com/stable/operatin
},
removenode_operation
},
{
{
"setlogginglevel",
"Sets the level log threshold for a given logger during runtime",
R"(
Resetting the log level of one or all loggers is not supported yet.
Fore more information, see: https://opensource.docs.scylladb.com/stable/operating-scylla/nodetool-commands/setlogginglevel.html
)",
{ },
{
typed_option<sstring>("logger", "The logger to set the log level for, if unspecified, all loggers are reset to the default level", 1),
typed_option<sstring>("level", "The log level to set, one of (trace, debug, info, warn and error), if unspecified, default level is reset to default log level", 1),
},
},
setlogginglevel_operation
},
{
{
"settraceprobability",