diff options
| author | Dan Engelbrecht <[email protected]> | 2023-09-22 08:22:06 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-09-22 14:22:06 +0200 |
| commit | c7d4dc6a4d13881028d566f5ce501335e47e48bf (patch) | |
| tree | 493110da583a8e5d97fe05e14f23469ee6244d2b /src/zen/cmds/cache.cpp | |
| parent | add trace command to enable/disable tracing at runtime (#416) (diff) | |
| download | archived-zen-c7d4dc6a4d13881028d566f5ce501335e47e48bf.tar.xz archived-zen-c7d4dc6a4d13881028d566f5ce501335e47e48bf.zip | |
Collect all zen admin-related commands into admin.h/.cpp (#418)
* move commands in scrub.h/cpp to admin_cmd.h/cpp
* move job command into admin_cmd.h/.cpp
* admin -> admin_cmd
* bench -> bench_cmd
* cache -> cache_cmd
* copy -> copy_cmd
* dedup -> dedup_cmd
* hash -> hash_cmd
* print -> print_cmd
* projectstore -> projectstore_cmd
* rpcreplay -> rpcreplay_cmd
* serve -> serve_cmd
* status -> status_cmd
* top -> top_cmd
* trace -> trace_cmd
* up -> up_cmd
* version -> version_cmd
Diffstat (limited to 'src/zen/cmds/cache.cpp')
| -rw-r--r-- | src/zen/cmds/cache.cpp | 304 |
1 files changed, 0 insertions, 304 deletions
diff --git a/src/zen/cmds/cache.cpp b/src/zen/cmds/cache.cpp deleted file mode 100644 index 15c24f9ee..000000000 --- a/src/zen/cmds/cache.cpp +++ /dev/null @@ -1,304 +0,0 @@ -// Copyright Epic Games, Inc. All Rights Reserved. - -#include "cache.h" - -#include <zencore/except.h> -#include <zencore/filesystem.h> -#include <zencore/logging.h> -#include <zenhttp/httpcommon.h> -#include <zenutil/zenserverprocess.h> - -#include <memory> - -ZEN_THIRD_PARTY_INCLUDES_START -#include <cpr/cpr.h> -ZEN_THIRD_PARTY_INCLUDES_END - -DropCommand::DropCommand() -{ - 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("", "b", "bucket", "Bucket name", cxxopts::value(m_BucketName), "<bucketname>"); - m_Options.parse_positional({"namespace", "bucket"}); -} - -DropCommand::~DropCommand() = default; - -int -DropCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) -{ - ZEN_UNUSED(GlobalOptions); - - if (!ParseOptions(argc, argv)) - { - return 0; - } - - m_HostName = ResolveTargetHostSpec(m_HostName); - - if (m_HostName.empty()) - { - throw zen::OptionParseException("unable to resolve server specification"); - } - - if (m_NamespaceName.empty()) - { - throw zen::OptionParseException("Drop command requires a namespace"); - } - - cpr::Session Session; - 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_CONSOLE("OK: drop succeeded"); - - return 0; - } - - if (Result.status_code) - { - ZEN_ERROR("Drop failed: {}: {} ({})", Result.status_code, Result.reason, Result.text); - } - else - { - ZEN_ERROR("Drop failed: {}", Result.error.message); - } - - return 1; -} - -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("", "b", "bucket", "Bucket name", cxxopts::value(m_BucketName), "<bucketname>"); - m_Options.parse_positional({"namespace", "bucket"}); -} - -CacheInfoCommand::~CacheInfoCommand() = default; - -int -CacheInfoCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) -{ - ZEN_UNUSED(GlobalOptions); - - if (!ParseOptions(argc, argv)) - { - return 0; - } - - m_HostName = ResolveTargetHostSpec(m_HostName); - - if (m_HostName.empty()) - { - throw zen::OptionParseException("unable to resolve server specification"); - } - - cpr::Session Session; - Session.SetHeader(cpr::Header{{"Accept", "application/json"}}); - if (m_HostName.empty()) - { - ZEN_CONSOLE("Info on cache from '{}'", m_HostName); - Session.SetUrl({fmt::format("{}/z$", m_HostName)}); - } - else if (m_BucketName.empty()) - { - ZEN_CONSOLE("Info on cache namespace '{}' from '{}'", m_NamespaceName, m_HostName); - Session.SetUrl({fmt::format("{}/z$/{}", m_HostName, m_NamespaceName)}); - } - else - { - 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::Response Result = Session.Get(); - - if (zen::IsHttpSuccessCode(Result.status_code)) - { - ZEN_CONSOLE("{}", Result.text); - - return 0; - } - - if (Result.status_code) - { - ZEN_ERROR("Info failed: {}: {} ({})", Result.status_code, Result.reason, Result.text); - } - else - { - ZEN_ERROR("Info failed: {}", Result.error.message); - } - - return 1; -} - -CacheStatsCommand::CacheStatsCommand() -{ - m_Options.add_options()("h,help", "Print help"); - m_Options.add_option("", "u", "hosturl", "Host URL", cxxopts::value(m_HostName)->default_value(""), "<hosturl>"); -} - -CacheStatsCommand::~CacheStatsCommand() = default; - -int -CacheStatsCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) -{ - ZEN_UNUSED(GlobalOptions); - - if (!ParseOptions(argc, argv)) - { - return 0; - } - - m_HostName = ResolveTargetHostSpec(m_HostName); - - if (m_HostName.empty()) - { - throw zen::OptionParseException("unable to resolve server specification"); - } - - cpr::Session Session; - Session.SetUrl({fmt::format("{}/stats/z$", m_HostName)}); - Session.SetHeader(cpr::Header{{"Accept", "application/json"}}); - - cpr::Response Result = Session.Get(); - - if (zen::IsHttpSuccessCode(Result.status_code)) - { - ZEN_CONSOLE("{}", Result.text); - - return 0; - } - - if (Result.status_code) - { - ZEN_ERROR("Info failed: {}: {} ({})", Result.status_code, Result.reason, Result.text); - } - else - { - ZEN_ERROR("Info failed: {}", Result.error.message); - } - - return 1; -} - -CacheDetailsCommand::CacheDetailsCommand() -{ - 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("", "c", "csv", "Info on csv format", cxxopts::value(m_CSV), "<csv>"); - m_Options.add_option("", "d", "details", "Get detailed information about records", cxxopts::value(m_Details), "<details>"); - m_Options.add_option("", - "a", - "attachmentdetails", - "Get detailed information about attachments", - cxxopts::value(m_AttachmentDetails), - "<attachmentdetails>"); - m_Options.add_option("", "n", "namespace", "Namespace name to get info for", cxxopts::value(m_Namespace), "<namespace>"); - m_Options.add_option("", "b", "bucket", "Filter on bucket name", cxxopts::value(m_Bucket), "<bucket>"); - m_Options.add_option("", "v", "valuekey", "Filter on value key hash string", cxxopts::value(m_ValueKey), "<valuekey>"); -} - -CacheDetailsCommand::~CacheDetailsCommand() = default; - -int -CacheDetailsCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) -{ - ZEN_UNUSED(GlobalOptions); - - if (!ParseOptions(argc, argv)) - { - return 0; - } - - m_HostName = ResolveTargetHostSpec(m_HostName); - - if (m_HostName.empty()) - { - throw zen::OptionParseException("unable to resolve server specification"); - } - - cpr::Session Session; - cpr::Parameters Parameters; - if (m_Details) - { - Parameters.Add({"details", "true"}); - } - if (m_AttachmentDetails) - { - Parameters.Add({"attachmentdetails", "true"}); - } - if (m_CSV) - { - Parameters.Add({"csv", "true"}); - } - else - { - Session.SetHeader(cpr::Header{{"Accept", "application/json"}}); - } - - if (!m_ValueKey.empty()) - { - if (m_Namespace.empty() || m_Bucket.empty()) - { - ZEN_ERROR("Provide namespace and bucket name"); - ZEN_CONSOLE("{}", m_Options.help({""}).c_str()); - return 1; - } - Session.SetUrl({fmt::format("{}/z$/details$/{}/{}/{}", m_HostName, m_Namespace, m_Bucket, m_ValueKey)}); - } - else if (!m_Bucket.empty()) - { - if (m_Namespace.empty()) - { - ZEN_ERROR("Provide namespace name"); - ZEN_CONSOLE("{}", m_Options.help({""}).c_str()); - return 1; - } - Session.SetUrl({fmt::format("{}/z$/details$/{}/{}", m_HostName, m_Namespace, m_Bucket)}); - } - else if (!m_Namespace.empty()) - { - Session.SetUrl({fmt::format("{}/z$/details$/{}", m_HostName, m_Namespace)}); - } - else - { - Session.SetUrl({fmt::format("{}/z$/details$", m_HostName)}); - } - Session.SetParameters(Parameters); - - cpr::Response Result = Session.Get(); - - if (zen::IsHttpSuccessCode(Result.status_code)) - { - ZEN_CONSOLE("{}", Result.text); - - return 0; - } - - if (Result.status_code) - { - ZEN_ERROR("Info failed: {}: {} ({})", Result.status_code, Result.reason, Result.text); - } - else - { - ZEN_ERROR("Info failed: {}", Result.error.message); - } - - return 1; -} |