From 81b2757f917e34bb338fad7965ae8a74e160bee4 Mon Sep 17 00:00:00 2001 From: Stefan Boberg Date: Tue, 16 May 2023 21:35:39 +0200 Subject: Content scrubbing (#271) Added zen scrub command which may be triggered via the zen CLI helper. This traverses storage and validates contents either by content hash and/or by structure. If unexpected data is encountered it is invalidated. --- src/zenserver/admin/admin.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/zenserver/admin/admin.cpp') diff --git a/src/zenserver/admin/admin.cpp b/src/zenserver/admin/admin.cpp index c37622cb6..575a10d83 100644 --- a/src/zenserver/admin/admin.cpp +++ b/src/zenserver/admin/admin.cpp @@ -78,6 +78,22 @@ HttpAdminService::HttpAdminService(GcScheduler& Scheduler) : m_GcScheduler(Sched }, HttpVerb::kPost); + m_Router.RegisterRoute( + "scrub", + [this](HttpRouterRequest& Req) { + HttpServerRequest& HttpReq = Req.ServerRequest(); + const HttpServerRequest::QueryParams Params = HttpReq.GetQueryParams(); + + GcScheduler::TriggerScrubParams ScrubParams; + ScrubParams.MaxTimeslice = std::chrono::seconds(100); + m_GcScheduler.TriggerScrub(ScrubParams); + + CbObjectWriter Response; + Response << "ok"sv << true; + HttpReq.WriteResponse(HttpResponseCode::OK, Response.Save()); + }, + HttpVerb::kPost); + m_Router.RegisterRoute( "", [](HttpRouterRequest& Req) { -- cgit v1.2.3