diff options
| author | Dan Engelbrecht <[email protected]> | 2024-10-21 15:40:13 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2024-10-21 15:40:13 +0200 |
| commit | efd016d84d0940bf616e3efef135532cbf5fedef (patch) | |
| tree | 50bf249799b65af4a30c473c53bfa8b243be335e /src/zen/cmds/cache_cmd.cpp | |
| parent | 5.5.9-pre8 (diff) | |
| download | archived-zen-efd016d84d0940bf616e3efef135532cbf5fedef.tar.xz archived-zen-efd016d84d0940bf616e3efef135532cbf5fedef.zip | |
bucket size queries (#203)
- Feature: Added options --bucketsize and --bucketsizes to zen cache-info to get data sizes in cache buckets and attachments
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)) |