aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzousar <[email protected]>2025-04-22 15:57:02 -0600
committerzousar <[email protected]>2025-04-22 15:57:02 -0600
commit6646a12bbffd349ad234a4265e339797e815493b (patch)
tree6227d1e13b14526b91b5e728a2b3e03980521173 /src
parentFix list-container positional args to remove query-path (diff)
downloadzen-6646a12bbffd349ad234a4265e339797e815493b.tar.xz
zen-6646a12bbffd349ad234a4265e339797e815493b.zip
Replace container with namespaces
Diffstat (limited to 'src')
-rw-r--r--src/zen/cmds/builds_cmd.cpp28
-rw-r--r--src/zen/cmds/builds_cmd.h7
-rw-r--r--src/zenutil/filebuildstorage.cpp5
-rw-r--r--src/zenutil/include/zenutil/buildstorage.h2
-rw-r--r--src/zenutil/jupiter/jupiterbuildstorage.cpp39
5 files changed, 46 insertions, 35 deletions
diff --git a/src/zen/cmds/builds_cmd.cpp b/src/zen/cmds/builds_cmd.cpp
index 40cd8fa74..bdf349888 100644
--- a/src/zen/cmds/builds_cmd.cpp
+++ b/src/zen/cmds/builds_cmd.cpp
@@ -8913,20 +8913,26 @@ BuildsCommand::BuildsCommand()
m_Options.positional_help("verb");
// list-container
- AddSystemOptions(m_ListContainerOptions);
- AddCloudOptions(m_ListContainerOptions);
- AddFileOptions(m_ListContainerOptions);
- AddOutputOptions(m_ListContainerOptions);
- AddZenFolderOptions(m_ListContainerOptions);
- m_ListContainerOptions.add_options()("h,help", "Print help");
- m_ListContainerOptions.add_option("",
+ AddSystemOptions(m_ListNamespacesOptions);
+ AddCloudOptions(m_ListNamespacesOptions);
+ AddFileOptions(m_ListNamespacesOptions);
+ AddOutputOptions(m_ListNamespacesOptions);
+ AddZenFolderOptions(m_ListNamespacesOptions);
+ m_ListNamespacesOptions.add_options()("h,help", "Print help");
+ m_ListNamespacesOptions.add_option("",
+ "",
+ "recursive",
+ "Enable fetch of buckets within namespaces also",
+ cxxopts::value(m_ListNamespacesRecursive),
+ "<recursive>");
+ m_ListNamespacesOptions.add_option("",
"",
"result-path",
"Path to json or compactbinary to write query result to",
cxxopts::value(m_ListResultPath),
"<result-path>");
- m_ListContainerOptions.parse_positional({"result-path"});
- m_ListContainerOptions.positional_help("result-path");
+ m_ListNamespacesOptions.parse_positional({"result-path"});
+ m_ListNamespacesOptions.positional_help("result-path");
// list
AddSystemOptions(m_ListOptions);
@@ -9612,7 +9618,7 @@ BuildsCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv)
try
{
- if (SubOption == &m_ListContainerOptions)
+ if (SubOption == &m_ListNamespacesOptions)
{
if (!m_ListResultPath.empty())
{
@@ -9636,7 +9642,7 @@ BuildsCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv)
StorageInstance Storage = CreateBuildStorage(StorageStats, StorageCacheStats, ZenTempFolderPath(ZenFolderPath));
- CbObject Response = Storage.BuildStorage->ListContainers();
+ CbObject Response = Storage.BuildStorage->ListNamespaces(m_ListNamespacesRecursive);
ZEN_ASSERT(ValidateCompactBinary(Response.GetView(), CbValidateMode::All) == CbValidateError::None);
if (m_ListResultPath.empty())
{
diff --git a/src/zen/cmds/builds_cmd.h b/src/zen/cmds/builds_cmd.h
index 3da1922c9..f44e758ae 100644
--- a/src/zen/cmds/builds_cmd.h
+++ b/src/zen/cmds/builds_cmd.h
@@ -84,8 +84,9 @@ private:
std::string m_Verb; // list, upload, download
- cxxopts::Options m_ListContainerOptions{"list-container", "List available build containers"};
- std::string m_ListContainerResultPath;
+ cxxopts::Options m_ListNamespacesOptions{"list-namespaces", "List available build namespaces"};
+ std::string m_ListNamespacesResultPath;
+ bool m_ListNamespacesRecursive = false;
cxxopts::Options m_ListOptions{"list", "List available builds"};
std::string m_ListQueryPath;
@@ -117,7 +118,7 @@ private:
cxxopts::Options m_MultiTestDownloadOptions{"multi-test-download", "Test multiple sequenced downloads with verify"};
std::vector<std::string> m_BuildIds;
- cxxopts::Options* m_SubCommands[9] = {&m_ListContainerOptions,
+ cxxopts::Options* m_SubCommands[9] = {&m_ListNamespacesOptions,
&m_ListOptions,
&m_UploadOptions,
&m_DownloadOptions,
diff --git a/src/zenutil/filebuildstorage.cpp b/src/zenutil/filebuildstorage.cpp
index b77eb1d11..badfb4840 100644
--- a/src/zenutil/filebuildstorage.cpp
+++ b/src/zenutil/filebuildstorage.cpp
@@ -35,9 +35,10 @@ public:
virtual ~FileBuildStorage() {}
- virtual CbObject ListContainers() override
+ virtual CbObject ListNamespaces(bool bRecursive) override
{
- ZEN_TRACE_CPU("FileBuildStorage::ListContainers");
+ ZEN_TRACE_CPU("FileBuildStorage::ListNamespaces");
+ ZEN_UNUSED(bRecursive);
SimulateLatency(0, 0);
diff --git a/src/zenutil/include/zenutil/buildstorage.h b/src/zenutil/include/zenutil/buildstorage.h
index 0785acd62..5422c837c 100644
--- a/src/zenutil/include/zenutil/buildstorage.h
+++ b/src/zenutil/include/zenutil/buildstorage.h
@@ -25,7 +25,7 @@ public:
virtual ~BuildStorage() {}
- virtual CbObject ListContainers() = 0;
+ virtual CbObject ListNamespaces(bool bRecursive = false) = 0;
virtual CbObject ListBuilds(CbObject Query) = 0;
virtual CbObject PutBuild(const Oid& BuildId, const CbObject& MetaData) = 0;
virtual CbObject GetBuild(const Oid& BuildId) = 0;
diff --git a/src/zenutil/jupiter/jupiterbuildstorage.cpp b/src/zenutil/jupiter/jupiterbuildstorage.cpp
index b2fabb43f..6ada72e1e 100644
--- a/src/zenutil/jupiter/jupiterbuildstorage.cpp
+++ b/src/zenutil/jupiter/jupiterbuildstorage.cpp
@@ -35,9 +35,9 @@ public:
}
virtual ~JupiterBuildStorage() {}
- virtual CbObject ListContainers() override
+ virtual CbObject ListNamespaces(bool bRecursive) override
{
- ZEN_TRACE_CPU("Jupiter::ListContainers");
+ ZEN_TRACE_CPU("Jupiter::ListNamespaces");
Stopwatch ExecutionTimer;
auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); });
@@ -45,9 +45,9 @@ public:
AddStatistic(ListResult);
if (!ListResult.Success)
{
- throw std::runtime_error(fmt::format("Failed listing containers: {} ({})", ListResult.Reason, ListResult.ErrorCode));
+ throw std::runtime_error(fmt::format("Failed listing namespaces: {} ({})", ListResult.Reason, ListResult.ErrorCode));
}
- CbObject NamespaceResponse = PayloadToCbObject("Failed listing containers"sv, ListResult.Response);
+ CbObject NamespaceResponse = PayloadToCbObject("Failed listing namespaces"sv, ListResult.Response);
CbObjectWriter Response;
Response.BeginArray("results"sv);
@@ -59,25 +59,28 @@ public:
Response.BeginObject();
Response.AddString("name", Namespace);
- JupiterResult BucketsResult = m_Session.ListBuildBuckets(Namespace);
- AddStatistic(BucketsResult);
- if (!BucketsResult.Success)
+ if (bRecursive)
{
- throw std::runtime_error(
- fmt::format("Failed listing containers: {} ({})", BucketsResult.Reason, BucketsResult.ErrorCode));
- }
- CbObject BucketResponse = PayloadToCbObject("Failed listing containers"sv, BucketsResult.Response);
+ JupiterResult BucketsResult = m_Session.ListBuildBuckets(Namespace);
+ AddStatistic(BucketsResult);
+ if (!BucketsResult.Success)
+ {
+ throw std::runtime_error(
+ fmt::format("Failed listing namespaces: {} ({})", BucketsResult.Reason, BucketsResult.ErrorCode));
+ }
+ CbObject BucketResponse = PayloadToCbObject("Failed listing namespaces"sv, BucketsResult.Response);
- Response.BeginArray("items");
- for (CbFieldView BucketField : BucketResponse["buckets"])
- {
- std::string_view Bucket = BucketField.AsString();
- if (!Bucket.empty())
+ Response.BeginArray("items");
+ for (CbFieldView BucketField : BucketResponse["buckets"])
{
- Response.AddString(Bucket);
+ std::string_view Bucket = BucketField.AsString();
+ if (!Bucket.empty())
+ {
+ Response.AddString(Bucket);
+ }
}
+ Response.EndArray();
}
- Response.EndArray();
Response.EndObject();
}