aboutsummaryrefslogtreecommitdiff
path: root/src/zen/cmds/cache_cmd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zen/cmds/cache_cmd.cpp')
-rw-r--r--src/zen/cmds/cache_cmd.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/zen/cmds/cache_cmd.cpp b/src/zen/cmds/cache_cmd.cpp
index 37e7c8fd1..00099cebc 100644
--- a/src/zen/cmds/cache_cmd.cpp
+++ b/src/zen/cmds/cache_cmd.cpp
@@ -130,7 +130,15 @@ CacheInfoCommand::CacheInfoCommand()
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", "namespace", "Namespace name", cxxopts::value(m_NamespaceName), "<namespacename>");
+ m_Options.add_option("",
+ "",
+ "bucketsizes",
+ "Comma delimited list of bucket names to get size info from, * to get info on all buckets",
+ cxxopts::value(m_SizeInfoBucketNames),
+ "<bucketnames>");
m_Options.add_option("", "b", "bucket", "Bucket name", cxxopts::value(m_BucketName), "<bucketname>");
+ m_Options.add_option("", "", "bucketsize", "Show detailed bucket size info", cxxopts::value(m_BucketSizeInfo), "<bucketsize>");
+
m_Options.parse_positional({"namespace", "bucket"});
}
@@ -157,20 +165,47 @@ CacheInfoCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv)
Session.SetHeader(cpr::Header{{"Accept", "application/json"}});
if (m_HostName.empty())
{
+ if (!m_SizeInfoBucketNames.empty())
+ {
+ throw zen::OptionParseException("--bucketsizes option needs a --namespace");
+ }
+ if (m_BucketSizeInfo)
+ {
+ throw zen::OptionParseException("--bucketsizes option needs a --namespace and a --bucket");
+ }
ZEN_CONSOLE("Info on cache from '{}'", m_HostName);
Session.SetUrl({fmt::format("{}/z$", m_HostName)});
}
else if (m_BucketName.empty())
{
+ if (m_BucketSizeInfo)
+ {
+ throw zen::OptionParseException("--bucketsizes option needs a --bucket");
+ }
ZEN_CONSOLE("Info on cache namespace '{}' from '{}'", m_NamespaceName, m_HostName);
Session.SetUrl({fmt::format("{}/z$/{}", m_HostName, m_NamespaceName)});
}
else
{
+ if (!m_SizeInfoBucketNames.empty())
+ {
+ throw zen::OptionParseException("--bucketsizes option can not be used together with --bucket option");
+ }
ZEN_CONSOLE("Info on cache bucket '{}/{}' from '{}'", m_NamespaceName, m_BucketName, m_HostName);
Session.SetUrl({fmt::format("{}/z$/{}/{}", m_HostName, m_NamespaceName, m_BucketName)});
}
+ cpr::Parameters Parameters;
+ if (!m_SizeInfoBucketNames.empty())
+ {
+ Parameters.Add({"bucketsizes", m_SizeInfoBucketNames});
+ }
+ if (m_BucketSizeInfo)
+ {
+ Parameters.Add({"bucketsize", "true"});
+ }
+
+ Session.SetParameters(Parameters);
cpr::Response Result = Session.Get();
if (zen::IsHttpSuccessCode(Result.status_code))