diff options
Diffstat (limited to 'src/zen/cmds/cache_cmd.cpp')
| -rw-r--r-- | src/zen/cmds/cache_cmd.cpp | 35 |
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)) |