aboutsummaryrefslogtreecommitdiff
path: root/src/zen/cmds/projectstore_cmd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zen/cmds/projectstore_cmd.cpp')
-rw-r--r--src/zen/cmds/projectstore_cmd.cpp69
1 files changed, 39 insertions, 30 deletions
diff --git a/src/zen/cmds/projectstore_cmd.cpp b/src/zen/cmds/projectstore_cmd.cpp
index 7f94bf2df..bad2728ef 100644
--- a/src/zen/cmds/projectstore_cmd.cpp
+++ b/src/zen/cmds/projectstore_cmd.cpp
@@ -21,16 +21,18 @@
#include <zenhttp/httpclientauth.h>
#include <zenhttp/httpcommon.h>
#include <zenremotestore/builds/buildstoragecache.h>
+#include <zenremotestore/builds/buildstorageresolve.h>
#include <zenremotestore/builds/buildstorageutil.h>
#include <zenremotestore/builds/jupiterbuildstorage.h>
#include <zenremotestore/jupiter/jupiterhost.h>
#include <zenremotestore/projectstore/projectstoreoperations.h>
#include <zenremotestore/projectstore/remoteprojectstore.h>
#include <zenremotestore/transferthreadworkers.h>
+#include <zenutil/authutils.h>
#include <zenutil/progress.h>
#include <zenutil/workerpools.h>
-#include "../progressbar.h"
+#include "consoleprogress.h"
ZEN_THIRD_PARTY_INCLUDES_START
#include <json11.hpp>
@@ -131,13 +133,16 @@ namespace projectstore_impl {
throw std::runtime_error(fmt::format("invalid job id returned, received '{}'", JobIdText));
}
- ProgressBar ProgressBar(PlainProgress ? ProgressBar::Mode::Plain : ProgressBar::Mode::Pretty, ""sv);
+ std::unique_ptr<ProgressBase> ProgressOwner(
+ CreateConsoleProgress(PlainProgress ? ConsoleProgressMode::Plain : ConsoleProgressMode::Pretty));
+ std::unique_ptr<ProgressBase::ProgressBar> Bar = ProgressOwner->CreateProgressBar(""sv);
+ std::string ActiveTask;
- auto OuputMessages = [&](CbObjectView StatusObject) {
+ auto OutputMessages = [&](CbObjectView StatusObject) {
CbArrayView Messages = StatusObject["Messages"sv].AsArrayView();
if (Messages.Num() > 0)
{
- ProgressBar.ForceLinebreak();
+ Bar->ForceLinebreak();
for (auto M : Messages)
{
std::string_view Message = M.AsString();
@@ -169,33 +174,36 @@ namespace projectstore_impl {
uint64_t RemainingCount = StatusObject["RemainingCount"sv].AsUInt64();
uint64_t ProgressElapsedTimeMs = StatusObject["ProgressElapsedTimeMs"sv].AsUInt64((uint64_t)-1);
- if (!ProgressBar.IsSameTask(CurrentOp))
+ if (ActiveTask != CurrentOp)
{
- ProgressBar.Finish();
+ Bar->Finish();
+ ActiveTask = "";
}
- if (!ProgressBar.HasActiveTask())
+ if (ActiveTask.empty())
{
- OuputMessages(StatusObject);
+ OutputMessages(StatusObject);
MessagesDone = true;
+ ActiveTask = std::string(CurrentOp);
}
- ProgressBar.UpdateState({.Task = std::string(CurrentOp),
- .Details = std::string(CurrentOpDetails),
- .TotalCount = TotalCount,
- .RemainingCount = RemainingCount,
- .OptionalElapsedTime = ProgressElapsedTimeMs},
- false);
+ Bar->UpdateState({.Task = std::string(CurrentOp),
+ .Details = std::string(CurrentOpDetails),
+ .TotalCount = TotalCount,
+ .RemainingCount = RemainingCount,
+ .OptionalElapsedTime = ProgressElapsedTimeMs},
+ false);
}
if ((Status == "Complete") || (Status == "Aborted"))
{
- ProgressBar.Finish();
+ Bar->Finish();
+ ActiveTask = "";
}
if (!MessagesDone)
{
- OuputMessages(StatusObject);
+ OutputMessages(StatusObject);
}
if (Status == "Complete")
@@ -246,13 +254,13 @@ namespace projectstore_impl {
#endif // ZEN_PLATFORM_WINDOWS
if (HttpClient::Response DeleteResult = Http.Delete(fmt::format("/admin/jobs/{}", JobId)))
{
- ProgressBar.ForceLinebreak();
+ Bar->ForceLinebreak();
ZEN_CONSOLE("Requested cancel...");
Cancelled = true;
}
else
{
- ProgressBar.ForceLinebreak();
+ Bar->ForceLinebreak();
ZEN_CONSOLE("Failed cancelling job {}", DeleteResult);
}
continue;
@@ -2196,17 +2204,18 @@ OplogMirrorCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** arg
ZEN_CONSOLE("Fetched oplog in {}", NiceTimeSpanMs(uint64_t(Response.ElapsedSeconds * 1000.0)));
if (CbObject ResponseObject = Response.AsObject())
{
- std::unique_ptr<ProgressBar> EmitProgressBar;
+ std::unique_ptr<ProgressBase> ProgressOwner2(CreateConsoleProgress(ConsoleProgressMode::Pretty));
+ std::unique_ptr<ProgressBase::ProgressBar> EmitProgressBar;
{
- ProgressBar ParseProgressBar(ProgressBar::Mode::Pretty, "");
- CbArrayView Entries = ResponseObject["entries"sv].AsArrayView();
- uint64_t Remaining = Entries.Num();
+ std::unique_ptr<ProgressBase::ProgressBar> ParseProgressBar = ProgressOwner2->CreateProgressBar("");
+ CbArrayView Entries = ResponseObject["entries"sv].AsArrayView();
+ uint64_t Remaining = Entries.Num();
for (auto EntryIter : Entries)
{
if (!AbortFlag)
{
CbObjectView Entry = EntryIter.AsObjectView();
- ParseProgressBar.UpdateState(
+ ParseProgressBar->UpdateState(
{.Task = "Parsing oplog", .Details = "", .TotalCount = Entries.Num(), .RemainingCount = Remaining},
false);
Remaining--;
@@ -2219,7 +2228,7 @@ OplogMirrorCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** arg
}
if (!EmitProgressBar)
{
- EmitProgressBar = std::make_unique<ProgressBar>(ProgressBar::Mode::Pretty, ""sv);
+ EmitProgressBar = ProgressOwner2->CreateProgressBar(""sv);
WriteStopWatch.Reset();
}
@@ -2229,7 +2238,7 @@ OplogMirrorCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** arg
++OplogEntryCount;
}
}
- ParseProgressBar.Finish();
+ ParseProgressBar->Finish();
}
WorkRemaining.CountDown();
@@ -2472,7 +2481,7 @@ OplogDownloadCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** a
};
ParseSystemOptions();
- ProgressBar::Mode ProgressMode = ProgressBar::Mode::Pretty;
+ ConsoleProgressMode ProgressMode = ConsoleProgressMode::Pretty;
auto ParseOutputOptions = [&]() {
if (m_Verbose && m_Quiet)
@@ -2494,19 +2503,19 @@ OplogDownloadCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** a
if (m_LogProgress)
{
- ProgressMode = ProgressBar::Mode::Log;
+ ProgressMode = ConsoleProgressMode::Log;
}
else if (m_PlainProgress)
{
- ProgressMode = ProgressBar::Mode::Plain;
+ ProgressMode = ConsoleProgressMode::Plain;
}
else if (m_Quiet)
{
- ProgressMode = ProgressBar::Mode::Quiet;
+ ProgressMode = ConsoleProgressMode::Quiet;
}
else
{
- ProgressMode = ProgressBar::Mode::Pretty;
+ ProgressMode = ConsoleProgressMode::Pretty;
}
};
ParseOutputOptions();