aboutsummaryrefslogtreecommitdiff
path: root/src/zen
diff options
context:
space:
mode:
authorEPICGAMES\thierry.begin <[email protected]>2024-04-08 10:43:16 -0400
committerEPICGAMES\thierry.begin <[email protected]>2024-04-08 10:43:16 -0400
commitb35e1258a043cab06950b2453f434861d99b918a (patch)
tree695737774fa08ebaa0e32a9f95cb0247c34b3dc3 /src/zen
parentAdd docker support (diff)
parentMerge pull request #41 from ue-foundation/zs/import-oplog-clean (diff)
downloadarchived-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')
-rw-r--r--src/zen/cmds/bench_cmd.cpp6
-rw-r--r--src/zen/cmds/copy_cmd.cpp4
-rw-r--r--src/zen/cmds/projectstore_cmd.cpp20
-rw-r--r--src/zen/cmds/projectstore_cmd.h3
-rw-r--r--src/zen/cmds/serve_cmd.cpp2
-rw-r--r--src/zen/cmds/up_cmd.cpp2
-rw-r--r--src/zen/zen.cpp10
7 files changed, 30 insertions, 17 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());
}
diff --git a/src/zen/zen.cpp b/src/zen/zen.cpp
index 39f3f1f78..4881d44ae 100644
--- a/src/zen/zen.cpp
+++ b/src/zen/zen.cpp
@@ -72,7 +72,7 @@ ZenCmdBase::ParseOptions(int argc, char** argv)
{
Result = CmdOptions.parse(argc, argv);
}
- catch (std::exception& Ex)
+ catch (const std::exception& Ex)
{
throw zen::OptionParseException(Ex.what());
}
@@ -513,7 +513,7 @@ main(int argc, char** argv)
{
return CmdInfo.Cmd->Run(GlobalOptions, (int)CommandArgVec.size(), CommandArgVec.data());
}
- catch (OptionParseException& Ex)
+ catch (const OptionParseException& Ex)
{
std::string help = VerbOptions.help();
@@ -526,7 +526,7 @@ main(int argc, char** argv)
printf("Unknown command specified: '%s', exiting\n", SubCommand.c_str());
}
- catch (OptionParseException& Ex)
+ catch (const OptionParseException& Ex)
{
std::string HelpMessage = Options.help();
@@ -534,13 +534,13 @@ main(int argc, char** argv)
return 9;
}
- catch (std::system_error& Ex)
+ catch (const std::system_error& Ex)
{
printf("System Error: %s\n", Ex.what());
return Ex.code() ? Ex.code().value() : 10;
}
- catch (std::exception& Ex)
+ catch (const std::exception& Ex)
{
printf("Error: %s\n", Ex.what());