From 0d2b8810c09e1e032b35bb9d877c9fbb54e4d6bf Mon Sep 17 00:00:00 2001 From: zousar <2936246+zousar@users.noreply.github.com> Date: Thu, 4 Apr 2024 22:46:39 -0600 Subject: Add optional gcpath param to import-oplog cmd --- src/zen/cmds/projectstore_cmd.cpp | 11 +++++++++-- src/zen/cmds/projectstore_cmd.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'src') 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(""), ""); m_Options.add_option("", "p", "project", "Project name", cxxopts::value(m_ProjectName), ""); m_Options.add_option("", "o", "oplog", "Oplog name", cxxopts::value(m_OplogName), ""); + m_Options.add_option("", "", "gcpath", "Absolute path to oplog lifetime marker file if we create the oplog", cxxopts::value(m_GcPath), ""); m_Options.add_option("", "", "maxblocksize", "Max size for bundled attachments", cxxopts::value(m_MaxBlockSize), ""); m_Options.add_option("", "", @@ -1057,7 +1058,8 @@ ImportOplogCommand::ImportOplogCommand() m_Options.add_option("", "", "file", "Local folder path", cxxopts::value(m_FileDirectoryPath), ""); m_Options.add_option("file", "", "name", "Local file name", cxxopts::value(m_FileName), ""); - m_Options.parse_positional({"project", "oplog"}); + m_Options.parse_positional({"project", "oplog", "gcpath"}); + m_Options.positional_help("[ []]"); } 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; -- cgit v1.2.3