diff options
| author | Matt Peters <[email protected]> | 2024-10-11 06:07:06 -0600 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2024-10-11 06:07:06 -0600 |
| commit | b62af061371fd8dd2128e7e7b928efee8463c6ef (patch) | |
| tree | efeb15a387f00914016f188fb21ae343b6a8b49a /src/zen/cmds/projectstore_cmd.cpp | |
| parent | 5.5.9-pre1 (diff) | |
| download | archived-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.cpp | 12 |
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()) { |