aboutsummaryrefslogtreecommitdiff
path: root/src/zen/cmds/admin_cmd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zen/cmds/admin_cmd.cpp')
-rw-r--r--src/zen/cmds/admin_cmd.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/zen/cmds/admin_cmd.cpp b/src/zen/cmds/admin_cmd.cpp
index 50510ce03..1bde785c7 100644
--- a/src/zen/cmds/admin_cmd.cpp
+++ b/src/zen/cmds/admin_cmd.cpp
@@ -20,6 +20,9 @@ ScrubCommand::ScrubCommand()
{
m_Options.add_options()("h,help", "Print help");
m_Options.add_option("", "u", "hosturl", "Host URL", cxxopts::value(m_HostName)->default_value(""), "<hosturl>");
+ m_Options.add_option("", "n", "dry", "Dry run (do not delete any data)", cxxopts::value(m_DryRun), "<bool>");
+ m_Options.add_option("", "", "no-gc", "Do not perform GC after scrub pass", cxxopts::value(m_NoGc), "<bool>");
+ m_Options.add_option("", "", "no-cas", "Do not scrub CAS stores", cxxopts::value(m_NoCas), "<bool>");
}
ScrubCommand::~ScrubCommand() = default;
@@ -41,11 +44,13 @@ ScrubCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv)
throw OptionParseException("unable to resolve server specification");
}
- zen::HttpClient Http(m_HostName);
+ HttpClient Http(m_HostName);
+
+ HttpClient::KeyValueMap Params{{"skipdelete", ToString(m_DryRun)}, {"skipgc", ToString(m_NoGc)}, {"skipcid", ToString(m_NoCas)}};
- if (zen::HttpClient::Response Response = Http.Post("/admin/scrub"sv))
+ if (HttpClient::Response Response = Http.Post("/admin/scrub"sv, /* headers */ HttpClient::KeyValueMap{}, Params))
{
- ZEN_CONSOLE("OK: {}", Response.ToText());
+ ZEN_CONSOLE("scrub started OK: {}", Response.ToText());
return 0;
}
@@ -78,7 +83,7 @@ GcCommand::GcCommand()
"<smallobjects>");
m_Options.add_option("", "", "skipcid", "Skip collection of CAS data", cxxopts::value(m_SkipCid)->default_value("false"), "<skipcid>");
m_Options.add_option("",
- "",
+ "n",
"skipdelete",
"Skip deletion of data (dryrun)",
cxxopts::value(m_SkipDelete)->default_value("false"),