aboutsummaryrefslogtreecommitdiff
path: root/zen/cmds/cache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'zen/cmds/cache.cpp')
-rw-r--r--zen/cmds/cache.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/zen/cmds/cache.cpp b/zen/cmds/cache.cpp
index f1b953af5..a4fe4da34 100644
--- a/zen/cmds/cache.cpp
+++ b/zen/cmds/cache.cpp
@@ -16,8 +16,8 @@ ZEN_THIRD_PARTY_INCLUDES_END
DropCommand::DropCommand()
{
m_Options.add_options()("h,help", "Print help");
+ m_Options.add_option("", "n", "namespace", "Namnspace name", cxxopts::value(m_NamespaceName), "<namespacename>");
m_Options.add_option("", "b", "bucket", "Bucket name", cxxopts::value(m_BucketName), "<bucketname>");
- m_Options.add_option("", "", "positional", "Positional arguments", cxxopts::value(m_Positional), "");
}
DropCommand::~DropCommand() = default;
@@ -27,18 +27,31 @@ DropCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv)
{
ZEN_UNUSED(GlobalOptions, argc, argv);
- m_Options.parse_positional({"bucket", "positional"});
+ m_Options.parse_positional({"namespace", "bucket"});
m_Options.parse(argc, argv);
- ZEN_INFO("Dropping cache bucket '{}' from '{}'", m_BucketName, m_HostName);
+ if (m_NamespaceName.empty())
+ {
+ throw cxxopts::OptionParseException("Drop command requires a namespace");
+ }
cpr::Session Session;
- Session.SetUrl({fmt::format("{}/z$/{}", m_HostName, m_BucketName)});
+ if (m_BucketName.empty())
+ {
+ ZEN_CONSOLE("Dropping cache namespace '{}' from '{}'", m_NamespaceName, m_HostName);
+ Session.SetUrl({fmt::format("{}/z$/{}", m_HostName, m_NamespaceName)});
+ }
+ else
+ {
+ ZEN_CONSOLE("Dropping cache bucket '{}/{}' from '{}'", m_NamespaceName, m_BucketName, m_HostName);
+ Session.SetUrl({fmt::format("{}/z$/{}/{}", m_HostName, m_NamespaceName, m_BucketName)});
+ }
+
cpr::Response Result = Session.Delete();
if (zen::IsHttpSuccessCode(Result.status_code))
{
- ZEN_INFO("OK: dropped cache bucket '{}' from '{}'", m_BucketName, m_HostName);
+ ZEN_CONSOLE("OK: drop succeeded");
return 0;
}