diff --git a/src/v/cloud_storage/cache_service.cc b/src/v/cloud_storage/cache_service.cc index 6ad83e5de5e17..0ca0f6cf441f5 100644 --- a/src/v/cloud_storage/cache_service.cc +++ b/src/v/cloud_storage/cache_service.cc @@ -290,6 +290,12 @@ ss::future<> cache::trim_manually( std::optional object_limit_override) { vassert(ss::this_shard_id() == 0, "Method can only be invoked on shard 0"); auto units = co_await ss::get_units(_cleanup_sm, 1); + vlog( + cst_log.info, + "Beginning manual trim, requested bytes limit: {}, requested object " + "limit: {}", + size_limit_override, + object_limit_override); co_return co_await trim(size_limit_override, object_limit_override); } diff --git a/src/v/redpanda/admin/server.cc b/src/v/redpanda/admin/server.cc index b5533f81b68ae..29cf939069252 100644 --- a/src/v/redpanda/admin/server.cc +++ b/src/v/redpanda/admin/server.cc @@ -476,7 +476,7 @@ get_integer_query_param(const ss::http::request& req, std::string_view name) { const ss::sstring& str_param = req.query_parameters.at(key); try { - return std::stoi(str_param); + return std::stoull(str_param); } catch (const std::invalid_argument&) { throw ss::httpd::bad_request_exception( fmt::format("Parameter {} must be an integer", name)); @@ -4042,7 +4042,7 @@ admin_server::delete_cloud_storage_lifecycle( model::initial_revision_id revision; try { revision = model::initial_revision_id( - std::stoi(req->param["revision"])); + std::stoll(req->param["revision"])); } catch (...) { throw ss::httpd::bad_param_exception(fmt::format( "Revision id must be an integer: {}", req->param["revision"])); @@ -4061,13 +4061,13 @@ admin_server::delete_cloud_storage_lifecycle( ss::future admin_server::post_cloud_storage_cache_trim( std::unique_ptr req) { - auto size_limit = get_integer_query_param(*req, "objects"); - auto bytes_limit = static_cast>( + auto max_objects = get_integer_query_param(*req, "objects"); + auto max_bytes = static_cast>( get_integer_query_param(*req, "bytes")); co_await _cloud_storage_cache.invoke_on( - ss::shard_id{0}, [size_limit, bytes_limit](auto& c) { - return c.trim_manually(size_limit, bytes_limit); + ss::shard_id{0}, [max_objects, max_bytes](auto& c) { + return c.trim_manually(max_bytes, max_objects); }); co_return ss::json::json_return_type(ss::json::json_void());