aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzousar <[email protected]>2024-04-04 22:46:39 -0600
committerzousar <[email protected]>2024-04-04 22:46:39 -0600
commit0d2b8810c09e1e032b35bb9d877c9fbb54e4d6bf (patch)
tree983bec720a26180e0640b9ae070c936677b7ff5f
parentCategorize the clean argument on oplog-import as a general arg (diff)
downloadzen-0d2b8810c09e1e032b35bb9d877c9fbb54e4d6bf.tar.xz
zen-0d2b8810c09e1e032b35bb9d877c9fbb54e4d6bf.zip
Add optional gcpath param to import-oplog cmd
-rw-r--r--src/zen/cmds/projectstore_cmd.cpp11
-rw-r--r--src/zen/cmds/projectstore_cmd.h1
2 files changed, 10 insertions, 2 deletions
diff --git a/src/zen/cmds/projectstore_cmd.cpp b/src/zen/cmds/projectstore_cmd.cpp
index ce34e6379..ff2cd0ea8 100644
--- a/src/zen/cmds/projectstore_cmd.cpp
+++ b/src/zen/cmds/projectstore_cmd.cpp
@@ -1007,6 +1007,7 @@ 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("",
"",
@@ -1057,7 +1058,8 @@ ImportOplogCommand::ImportOplogCommand()
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()
@@ -1177,8 +1179,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 0bec7b4e1..215614b01 100644
--- a/src/zen/cmds/projectstore_cmd.h
+++ b/src/zen/cmds/projectstore_cmd.h
@@ -172,6 +172,7 @@ 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;