aboutsummaryrefslogtreecommitdiff
path: root/src/zen/cmds/projectstore_cmd.cpp
diff options
context:
space:
mode:
authorMatt Peters <[email protected]>2024-10-11 06:07:06 -0600
committerGitHub Enterprise <[email protected]>2024-10-11 06:07:06 -0600
commitb62af061371fd8dd2128e7e7b928efee8463c6ef (patch)
treeefeb15a387f00914016f188fb21ae343b6a8b49a /src/zen/cmds/projectstore_cmd.cpp
parent5.5.9-pre1 (diff)
downloadarchived-zen-b62af061371fd8dd2128e7e7b928efee8463c6ef.tar.xz
archived-zen-b62af061371fd8dd2128e7e7b928efee8463c6ef.zip
Add ability to read the oplog's ReferencedSet, as written by the cook… (#190)v5.5.9-pre7
Add ability to read the oplog's ReferencedSet, as written by the cooker, from the ReferencedSet op. Filter oplog entries requests by the ReferencedSet, if trim_by_referencedset parameter is present.. Add -trim=true/false parameter to oplog-mirror command, default to true, to request the trimmed/not trimmed oplog. Helper functions: Add paging to IterateOpLogWithKey. Add unit tests for IterateOpLog functions. Move OpKeyStringAsOid from httpprojectstore into projectstore.
Diffstat (limited to 'src/zen/cmds/projectstore_cmd.cpp')
-rw-r--r--src/zen/cmds/projectstore_cmd.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/zen/cmds/projectstore_cmd.cpp b/src/zen/cmds/projectstore_cmd.cpp
index 48787be9b..b6d647457 100644
--- a/src/zen/cmds/projectstore_cmd.cpp
+++ b/src/zen/cmds/projectstore_cmd.cpp
@@ -1676,6 +1676,14 @@ OplogMirrorCommand::OplogMirrorCommand()
"Decompress data when applicable. Default = false",
cxxopts::value(m_Decompress),
"<decompress>");
+ m_Options.add_option(
+ "",
+ "",
+ "trim",
+ "Restricts the mirrored ops to only include the ops in the ReferencedSet. The default (`--trim=true`) is ignored if the oplog's "
+ "ReferencedSet is invalid.",
+ cxxopts::value(m_TrimToReferencedSet),
+ "");
m_Options.parse_positional({"project", "oplog", "target"});
m_Options.positional_help("[<projectid> <oplogid> <target>]");
@@ -1803,7 +1811,9 @@ OplogMirrorCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** arg
}
};
- if (HttpClient::Response Response = Http.Get(fmt::format("/prj/{}/oplog/{}/entries"sv, m_ProjectName, m_OplogName)))
+ HttpClient::KeyValueMap Parameters{{"trim_by_referencedset", m_TrimToReferencedSet ? "true" : "false"}};
+ if (HttpClient::Response Response =
+ Http.Get(fmt::format("/prj/{}/oplog/{}/entries"sv, m_ProjectName, m_OplogName), HttpClient::KeyValueMap(), Parameters))
{
if (CbObject ResponseObject = Response.AsObject())
{