api: Introduce skip_cleanup query parameter
Just copy the load_and_stream and primary_replica_only logic, this new option is the same in this sense. Throw if it's specified with the load_and_stream one. Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
This commit is contained in:
@@ -2144,6 +2144,14 @@
|
||||
"allowMultiple":false,
|
||||
"type":"string",
|
||||
"paramType":"query"
|
||||
},
|
||||
{
|
||||
"name":"skip_cleanup",
|
||||
"description":"Don't cleanup keys from loaded sstables. Invalid if load_and_stream is true",
|
||||
"required":false,
|
||||
"allowMultiple":false,
|
||||
"type":"string",
|
||||
"paramType":"query"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -453,11 +453,12 @@ void set_sstables_loader(http_context& ctx, routes& r, sharded<sstables_loader>&
|
||||
auto cf = req->get_query_param("cf");
|
||||
auto stream = req->get_query_param("load_and_stream");
|
||||
auto primary_replica = req->get_query_param("primary_replica_only");
|
||||
auto skip_cleanup_p = req->get_query_param("skip_cleanup");
|
||||
boost::algorithm::to_lower(stream);
|
||||
boost::algorithm::to_lower(primary_replica);
|
||||
bool load_and_stream = stream == "true" || stream == "1";
|
||||
bool primary_replica_only = primary_replica == "true" || primary_replica == "1";
|
||||
bool skip_cleanup = false;
|
||||
bool skip_cleanup = skip_cleanup_p == "true" || skip_cleanup_p == "1";
|
||||
// No need to add the keyspace, since all we want is to avoid always sending this to the same
|
||||
// CPU. Even then I am being overzealous here. This is not something that happens all the time.
|
||||
auto coordinator = std::hash<sstring>()(cf) % smp::count;
|
||||
|
||||
@@ -544,6 +544,10 @@ future<> sstables_loader::load_new_sstables(sstring ks_name, sstring cf_name,
|
||||
load_and_stream_desc = "auto-enabled-for-tablets";
|
||||
}
|
||||
|
||||
if (!load_and_stream && skip_cleanup) {
|
||||
throw std::runtime_error("Skipping cleanup is not possible when doing load-and-stream");
|
||||
}
|
||||
|
||||
llog.info("Loading new SSTables for keyspace={}, table={}, load_and_stream={}, primary_replica_only={}",
|
||||
ks_name, cf_name, load_and_stream_desc, primary_replica_only);
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user