aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/admin/admin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenserver/admin/admin.cpp')
-rw-r--r--src/zenserver/admin/admin.cpp51
1 files changed, 47 insertions, 4 deletions
diff --git a/src/zenserver/admin/admin.cpp b/src/zenserver/admin/admin.cpp
index 1eeb5637a..847ed5a50 100644
--- a/src/zenserver/admin/admin.cpp
+++ b/src/zenserver/admin/admin.cpp
@@ -159,8 +159,20 @@ HttpAdminService::HttpAdminService(GcScheduler& Scheduler,
auto WriteState = [](CbObjectWriter& Obj, const JobQueue::State& State) {
if (!State.CurrentOp.empty())
{
- Obj.AddString("CurrentOp"sv, State.CurrentOp);
- Obj.AddInteger("CurrentOpPercentComplete"sv, State.CurrentOpPercentComplete);
+ Obj.AddString(
+ "CurrentOp"sv,
+ State.CurrentOpDetails.empty() ? State.CurrentOp : fmt::format("{}: {}", State.CurrentOp, State.CurrentOpDetails));
+ Obj.AddString("Op"sv, State.CurrentOp);
+ if (!State.CurrentOpDetails.empty())
+ {
+ Obj.AddString("Details"sv, State.CurrentOpDetails);
+ }
+ Obj.AddInteger("TotalCount"sv, gsl::narrow<uint64_t>(State.TotalCount));
+ Obj.AddInteger("RemainingCount"sv, gsl::narrow<uint64_t>(State.RemainingCount));
+ Obj.AddInteger("CurrentOpPercentComplete"sv,
+ State.TotalCount > 0
+ ? gsl::narrow<uint32_t>((100 * (State.TotalCount - State.RemainingCount)) / State.TotalCount)
+ : 0);
}
if (!State.Messages.empty())
{
@@ -287,10 +299,11 @@ HttpAdminService::HttpAdminService(GcScheduler& Scheduler,
Response << "DiskSizeSoftLimit" << NiceBytes(State.Config.DiskSizeSoftLimit);
Response << "MinimumFreeDiskSpaceToAllowWrites" << NiceBytes(State.Config.MinimumFreeDiskSpaceToAllowWrites);
Response << "LightweightInterval" << ToTimeSpan(State.Config.LightweightInterval);
- Response << "UseGCVersion" << ((State.Config.UseGCVersion == GcVersion::kV1) ? "1" : "2");
+ Response << "UseGCVersion" << ((State.Config.UseGCVersion == GcVersion::kV1_Deprecated) ? "1" : "2");
Response << "CompactBlockUsageThresholdPercent" << State.Config.CompactBlockUsageThresholdPercent;
Response << "Verbose" << State.Config.Verbose;
Response << "SingleThreaded" << State.Config.SingleThreaded;
+ Response << "AttachmentPassCount" << State.Config.AttachmentPassCount;
}
Response.EndObject();
Response << "AreDiskWritesBlocked" << State.AreDiskWritesBlocked;
@@ -318,6 +331,11 @@ HttpAdminService::HttpAdminService(GcScheduler& Scheduler,
Response << "LastDiskFreed" << NiceBytes(State.LastFullGCDiff.DiskSize);
Response << "LastMemoryFreed" << NiceBytes(State.LastFullGCDiff.MemorySize);
}
+ if (State.LastFullAttachmentRangeMin != IoHash::Zero || State.LastFullAttachmentRangeMax != IoHash::Max)
+ {
+ Response << "AttachmentRangeMin" << State.LastFullAttachmentRangeMin;
+ Response << "AttachmentRangeMax" << State.LastFullAttachmentRangeMax;
+ }
}
Response.EndObject();
Response.BeginObject("LightweightGC");
@@ -390,7 +408,7 @@ HttpAdminService::HttpAdminService(GcScheduler& Scheduler,
if (auto Param = Params.GetValue("forceusegcv1"); Param.empty() == false)
{
- GcParams.ForceGCVersion = GcVersion::kV1;
+ GcParams.ForceGCVersion = GcVersion::kV1_Deprecated;
}
if (auto Param = Params.GetValue("forceusegcv2"); Param.empty() == false)
@@ -416,6 +434,31 @@ HttpAdminService::HttpAdminService(GcScheduler& Scheduler,
GcParams.SingleThreaded = Param == "true"sv;
}
+ if (auto Param = Params.GetValue("referencehashlow"); Param.empty() == false)
+ {
+ GcParams.AttachmentRangeMin = IoHash::FromHexString(Param);
+ }
+
+ if (auto Param = Params.GetValue("referencehashhigh"); Param.empty() == false)
+ {
+ GcParams.AttachmentRangeMax = IoHash::FromHexString(Param);
+ }
+
+ if (auto Param = Params.GetValue("storecacheattachmentmetadata"); Param.empty() == false)
+ {
+ GcParams.StoreCacheAttachmentMetaData = Param == "true"sv;
+ }
+
+ if (auto Param = Params.GetValue("storeprojectattachmentmetadata"); Param.empty() == false)
+ {
+ GcParams.StoreProjectAttachmentMetaData = Param == "true"sv;
+ }
+
+ if (auto Param = Params.GetValue("enablevalidation"); Param.empty() == false)
+ {
+ GcParams.EnableValidation = Param == "true"sv;
+ }
+
const bool Started = m_GcScheduler.TriggerGc(GcParams);
CbObjectWriter Response;