diff options
| author | Stefan Boberg <[email protected]> | 2022-04-25 11:59:45 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2022-04-25 11:59:45 +0200 |
| commit | 21c9ec50b57821d150a3ba61ccff51a55383e031 (patch) | |
| tree | 2acf72b77c32cc3dc3e3544c1767953acd2848f2 /zenserver/compute/function.cpp | |
| parent | Added option to use Catch2 framework for tests (diff) | |
| parent | Compute tweaks (#78) (diff) | |
| download | zen-21c9ec50b57821d150a3ba61ccff51a55383e031.tar.xz zen-21c9ec50b57821d150a3ba61ccff51a55383e031.zip | |
Merge from main
Diffstat (limited to 'zenserver/compute/function.cpp')
| -rw-r--r-- | zenserver/compute/function.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/zenserver/compute/function.cpp b/zenserver/compute/function.cpp index 996573573..dd31013ef 100644 --- a/zenserver/compute/function.cpp +++ b/zenserver/compute/function.cpp @@ -54,6 +54,16 @@ HttpFunctionService::HttpFunctionService(CasStore& Store, m_Router.AddPattern("action", "([[:xdigit:]]{40})"); m_Router.RegisterRoute( + "ready", + [this](HttpRouterRequest& Req) { + HttpServerRequest& HttpReq = Req.ServerRequest(); + + // Todo: check upstream health + return HttpReq.WriteResponse(HttpResponseCode::OK); + }, + HttpVerb::kGet); + + m_Router.RegisterRoute( "workers/{worker}", [this](HttpRouterRequest& Req) { HttpServerRequest& HttpReq = Req.ServerRequest(); @@ -485,8 +495,8 @@ HttpFunctionService::ExecActionUpstream(const WorkerDesc& Worker, CbObject& Obje HttpResponseCode HttpFunctionService::ExecActionUpstreamResult(const IoHash& WorkerId, CbObject& Object) { - const static IoHash Empty = CbObject().GetHash(); - auto Status = m_UpstreamApply->GetStatus(WorkerId, Empty); + const static IoHash Empty = CbObject().GetHash(); + auto Status = m_UpstreamApply->GetStatus(WorkerId, Empty); if (!Status.Success) { return HttpResponseCode::NotFound; @@ -532,6 +542,15 @@ HttpFunctionService::ExecActionUpstreamResult(const IoHash& WorkerId, CbObject& ResultObject.AddString("stdout"sv, Completed.StdOut); ResultObject.AddString("stderr"sv, Completed.StdErr); ResultObject.AddInteger("exitcode"sv, Completed.Error.ErrorCode); + ResultObject.BeginArray("stats"sv); + for (const auto& Timepoint : Completed.Timepoints) + { + ResultObject.BeginObject(); + ResultObject.AddString("name"sv, Timepoint.first); + ResultObject.AddDateTimeTicks("time"sv, Timepoint.second); + ResultObject.EndObject(); + } + ResultObject.EndArray(); ResultObject.BeginArray("files"sv); for (const auto& File : Completed.OutputFiles) |