diff options
| author | EPICGAMES\thierry.begin <[email protected]> | 2024-04-08 10:43:16 -0400 |
|---|---|---|
| committer | EPICGAMES\thierry.begin <[email protected]> | 2024-04-08 10:43:16 -0400 |
| commit | b35e1258a043cab06950b2453f434861d99b918a (patch) | |
| tree | 695737774fa08ebaa0e32a9f95cb0247c34b3dc3 /src/zen/cmds | |
| parent | Add docker support (diff) | |
| parent | Merge pull request #41 from ue-foundation/zs/import-oplog-clean (diff) | |
| download | archived-zen-tb/docker.tar.xz archived-zen-tb/docker.zip | |
Merge branch 'main' of https://github.ol.epicgames.net/ue-foundation/zen into tb/dockertb/docker
Diffstat (limited to 'src/zen/cmds')
| -rw-r--r-- | src/zen/cmds/bench_cmd.cpp | 6 | ||||
| -rw-r--r-- | src/zen/cmds/copy_cmd.cpp | 4 | ||||
| -rw-r--r-- | src/zen/cmds/projectstore_cmd.cpp | 20 | ||||
| -rw-r--r-- | src/zen/cmds/projectstore_cmd.h | 3 | ||||
| -rw-r--r-- | src/zen/cmds/serve_cmd.cpp | 2 | ||||
| -rw-r--r-- | src/zen/cmds/up_cmd.cpp | 2 |
6 files changed, 25 insertions, 12 deletions
diff --git a/src/zen/cmds/bench_cmd.cpp b/src/zen/cmds/bench_cmd.cpp index 5c955e980..86b82d838 100644 --- a/src/zen/cmds/bench_cmd.cpp +++ b/src/zen/cmds/bench_cmd.cpp @@ -48,11 +48,11 @@ BenchCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) Ok = true; } - catch (zen::bench::util::elevation_required_exception&) + catch (const zen::bench::util::elevation_required_exception&) { ZEN_CONSOLE("purging standby lists requires elevation. Will try launch as elevated process"); } - catch (std::exception& Ex) + catch (const std::exception& Ex) { ZEN_CONSOLE("ERROR: {}", Ex.what()); } @@ -83,7 +83,7 @@ BenchCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) } } } - catch (std::exception& Ex) + catch (const std::exception& Ex) { ZEN_CONSOLE("ERROR: {}", Ex.what()); } diff --git a/src/zen/cmds/copy_cmd.cpp b/src/zen/cmds/copy_cmd.cpp index 956d9c9d2..f39bfa71c 100644 --- a/src/zen/cmds/copy_cmd.cpp +++ b/src/zen/cmds/copy_cmd.cpp @@ -148,7 +148,7 @@ CopyCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) throw std::logic_error("CopyFile failed in an unexpected way"); } } - catch (std::exception& Ex) + catch (const std::exception& Ex) { ++FailedFileCount; @@ -211,7 +211,7 @@ CopyCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) throw std::logic_error("CopyFile failed in an unexpected way"); } } - catch (std::exception& Ex) + catch (const std::exception& Ex) { ZEN_CONSOLE_ERROR("Error: failed to copy '{}' to '{}': '{}'", FromPath, ToPath, Ex.what()); diff --git a/src/zen/cmds/projectstore_cmd.cpp b/src/zen/cmds/projectstore_cmd.cpp index 40ba48137..f877a3c51 100644 --- a/src/zen/cmds/projectstore_cmd.cpp +++ b/src/zen/cmds/projectstore_cmd.cpp @@ -1007,6 +1007,12 @@ ImportOplogCommand::ImportOplogCommand() m_Options.add_option("", "u", "hosturl", "Host URL", cxxopts::value(m_HostName)->default_value(""), "<hosturl>"); m_Options.add_option("", "p", "project", "Project name", cxxopts::value(m_ProjectName), "<projectid>"); m_Options.add_option("", "o", "oplog", "Oplog name", cxxopts::value(m_OplogName), "<oplogid>"); + m_Options.add_option("", + "", + "gcpath", + "Absolute path to oplog lifetime marker file if we create the oplog", + cxxopts::value(m_GcPath), + "<path>"); m_Options.add_option("", "", "maxblocksize", "Max size for bundled attachments", cxxopts::value(m_MaxBlockSize), "<blocksize>"); m_Options.add_option("", "", @@ -1016,6 +1022,7 @@ ImportOplogCommand::ImportOplogCommand() "<chunksize>"); m_Options.add_option("", "f", "force", "Force import of all attachments", cxxopts::value(m_Force), "<force>"); m_Options.add_option("", "a", "async", "Trigger import but don't wait for completion", cxxopts::value(m_Async), "<async>"); + m_Options.add_option("", "", "clean", "Delete existing target oplog", cxxopts::value(m_Clean), "<clean>"); m_Options.add_option("", "", "ignore-missing-attachments", @@ -1052,12 +1059,12 @@ ImportOplogCommand::ImportOplogCommand() m_Options.add_option("", "", "zen", "Zen service upload address", cxxopts::value(m_ZenUrl), "<url>"); m_Options.add_option("zen", "", "source-project", "Zen source project name", cxxopts::value(m_ZenProjectName), "<sourceprojectid>"); m_Options.add_option("zen", "", "source-oplog", "Zen source oplog name", cxxopts::value(m_ZenOplogName), "<sourceoplogid>"); - m_Options.add_option("zen", "", "clean", "Delete existing target Zen oplog", cxxopts::value(m_ZenClean), "<clean>"); m_Options.add_option("", "", "file", "Local folder path", cxxopts::value(m_FileDirectoryPath), "<path>"); m_Options.add_option("file", "", "name", "Local file name", cxxopts::value(m_FileName), "<filename>"); - m_Options.parse_positional({"project", "oplog"}); + m_Options.parse_positional({"project", "oplog", "gcpath"}); + m_Options.positional_help("[<projectid> <oplogid> [<gcpath>]]"); } ImportOplogCommand::~ImportOplogCommand() @@ -1153,7 +1160,7 @@ ImportOplogCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** arg bool CreateOplog = false; if (HttpClient::Response Result = Http.Get(Url, HttpClient::Accept(ZenContentType::kJSON))) { - if (m_ZenClean) + if (m_Clean) { ZEN_WARN("Deleting oplog '{}/{}'", m_ProjectName, m_OplogName) Result = Http.Delete(Url, HttpClient::Accept(ZenContentType::kJSON)); @@ -1177,8 +1184,13 @@ ImportOplogCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** arg if (CreateOplog) { + IoBuffer OplogPayload; + if (!m_GcPath.empty()) + { + OplogPayload = MakeCbObjectPayload([&](CbObjectWriter& Writer) { Writer.AddString("gcpath"sv, m_GcPath); }); + } ZEN_WARN("Creating oplog '{}/{}'", m_ProjectName, m_OplogName); - if (HttpClient::Response Result = Http.Post(Url); !Result) + if (HttpClient::Response Result = Http.Post(Url, OplogPayload); !Result) { Result.ThrowError("failed creating oplog"sv); return 1; diff --git a/src/zen/cmds/projectstore_cmd.h b/src/zen/cmds/projectstore_cmd.h index 5a3f7281b..215614b01 100644 --- a/src/zen/cmds/projectstore_cmd.h +++ b/src/zen/cmds/projectstore_cmd.h @@ -172,11 +172,13 @@ private: std::string m_HostName; std::string m_ProjectName; std::string m_OplogName; + std::string m_GcPath; size_t m_MaxBlockSize = 0; size_t m_MaxChunkEmbedSize = 0; bool m_Force = false; bool m_Async = false; bool m_IgnoreMissingAttachments = false; + bool m_Clean = false; std::string m_CloudUrl; std::string m_CloudNamespace; @@ -191,7 +193,6 @@ private: std::string m_ZenUrl; std::string m_ZenProjectName; std::string m_ZenOplogName; - bool m_ZenClean; std::string m_FileDirectoryPath; std::string m_FileName; diff --git a/src/zen/cmds/serve_cmd.cpp b/src/zen/cmds/serve_cmd.cpp index c8117774b..ea9102b28 100644 --- a/src/zen/cmds/serve_cmd.cpp +++ b/src/zen/cmds/serve_cmd.cpp @@ -91,7 +91,7 @@ ServeCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) ServerInstance->SetOwnerPid(zen::GetCurrentProcessId()); ServerInstance->SpawnServerAndWait(ServerPort); } - catch (std::exception& Ex) + catch (const std::exception& Ex) { ZEN_CONSOLE("failed to spawn server on port {}: '{}'", ServerPort, Ex.what()); diff --git a/src/zen/cmds/up_cmd.cpp b/src/zen/cmds/up_cmd.cpp index c5dd31f5e..14f954064 100644 --- a/src/zen/cmds/up_cmd.cpp +++ b/src/zen/cmds/up_cmd.cpp @@ -176,7 +176,7 @@ DownCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) return 0; } - catch (std::exception& Ex) + catch (const std::exception& Ex) { ZEN_DEBUG("Exception caught when requesting shutdown: {}", Ex.what()); } |