aboutsummaryrefslogtreecommitdiff
path: root/zenserver/compute/apply.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-09-15 10:05:25 +0200
committerStefan Boberg <[email protected]>2021-09-15 10:05:25 +0200
commit94b4091533b15929c381ad027d3d0cdb4be3aded (patch)
tree799a47518657a06010c20f4597647a0724c1081e /zenserver/compute/apply.cpp
parentAdded options for indicating a server is running in "dedicated" mode (diff)
downloadzen-94b4091533b15929c381ad027d3d0cdb4be3aded.tar.xz
zen-94b4091533b15929c381ad027d3d0cdb4be3aded.zip
Changed so more loggers go via the zen::loggers interface
Diffstat (limited to 'zenserver/compute/apply.cpp')
-rw-r--r--zenserver/compute/apply.cpp86
1 files changed, 1 insertions, 85 deletions
diff --git a/zenserver/compute/apply.cpp b/zenserver/compute/apply.cpp
index 94dedf087..8a1c29f7e 100644
--- a/zenserver/compute/apply.cpp
+++ b/zenserver/compute/apply.cpp
@@ -327,7 +327,7 @@ SandboxedFunctionJob::SpawnJob(std::filesystem::path ExePath)
}
HttpFunctionService::HttpFunctionService(CasStore& Store, CidStore& InCidStore, const std::filesystem::path& BaseDir)
-: m_Log("apply", begin(spdlog::default_logger()->sinks()), end(spdlog::default_logger()->sinks()))
+: m_Log(logging::Get("apply"))
, m_CasStore(Store)
, m_CidStore(InCidStore)
, m_SandboxPath(BaseDir / "scratch")
@@ -613,90 +613,6 @@ HttpFunctionService::HttpFunctionService(CasStore& Store, CidStore& InCidStore,
}
},
HttpVerb::kPost);
-
- // This is just for reference
- m_Router.RegisterRoute(
- "jobs/noop",
- [this](HttpRouterRequest& Req) {
- HttpServerRequest& HttpReq = Req.ServerRequest();
-
- switch (HttpReq.RequestVerb())
- {
- case HttpVerb::kGet:
- break;
-
- case HttpVerb::kPost:
- {
- IoBuffer Payload = HttpReq.ReadPayload();
- CbObject RequestObject = LoadCompactBinaryObject(Payload);
-
- bool AllOk = true;
-
- std::vector<IoHash> NeedList;
-
- std::filesystem::path SandboxDir{CreateNewSandbox()};
-
- spdlog::debug("setting up job in sandbox '{}'", SandboxDir);
-
- zen::DeleteDirectories(SandboxDir);
- zen::CreateDirectories(SandboxDir);
-
- for (auto Entry : RequestObject["files"sv])
- {
- CbObjectView Ob = Entry.AsObjectView();
-
- std::string_view FileName = Ob["file"sv].AsString();
- const IoHash FileHash = Ob["hash"sv].AsHash();
- uint64_t FileSize = Ob["size"sv].AsUInt64();
-
- if (IoBuffer Chunk = m_CasStore.FindChunk(FileHash); !Chunk)
- {
- spdlog::debug("MISSING: {} {} {}", FileHash, FileName, FileSize);
- AllOk = false;
-
- NeedList.push_back(FileHash);
- }
- else
- {
- std::filesystem::path FullPath = SandboxDir / FileName;
-
- const IoBuffer* Chunks[] = {&Chunk};
-
- zen::WriteFile(FullPath, Chunks, 1);
- }
- }
-
- if (!AllOk)
- {
- // TODO: Could report all the missing pieces in the response here
- return HttpReq.WriteResponse(HttpResponseCode::NotFound);
- }
-
- std::string Executable8{RequestObject["cmd"].AsString()};
- std::string Args8{RequestObject["args"].AsString()};
-
- std::wstring Executable = Utf8ToWide(Executable8);
- std::wstring Args = Utf8ToWide(Args8);
-
- spdlog::debug("spawning job in sandbox '{}': '{}' '{}'", SandboxDir, Executable8, Args8);
-
- std::filesystem::path ExeName = SandboxDir / Executable;
-
- BasicFunctionJob Job;
- Job.SetWorkingDirectory(SandboxDir);
- Job.SpawnJob(ExeName, Args);
- Job.Wait();
-
- CbObjectWriter Response;
-
- Response << "exitcode" << Job.ExitCode();
-
- return HttpReq.WriteResponse(HttpResponseCode::OK, Response.Save());
- }
- break;
- }
- },
- HttpVerb::kGet | HttpVerb::kPost);
}
HttpFunctionService::~HttpFunctionService()