From 7cc4b1701aa2923573adabceed486229abba5a2d Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Fri, 20 Mar 2026 13:44:00 +0100 Subject: add hub instance info (#869) - Improvement: Hub module listing now includes per-instance process metrics (memory, CPU time, working set, pagefile usage) - Improvement: Hub now monitors provisioned instance health in the background and refreshes process metrics periodically - Improvement: Hub no longer exposes raw `StorageServerInstance` pointers to callers; instance state is returned as value snapshots (`Hub::InstanceInfo`) - Improvement: Hub instance access is now guarded by RAII per-instance locks (`SharedLockedPtr`/`ExclusiveLockedPtr`), preventing concurrent modifications during provisioning and deprovisioning - Improvement: Hub instance lifecycle is now tracked as a `HubInstanceState` enum covering transitional states (Provisioning, Deprovisioning, Hibernating, Waking); exposed as a string in the HTTP API and dashboard --- src/zenserver-test/projectstore-tests.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/zenserver-test/projectstore-tests.cpp') diff --git a/src/zenserver-test/projectstore-tests.cpp b/src/zenserver-test/projectstore-tests.cpp index 5cc75c590..a37ecb6be 100644 --- a/src/zenserver-test/projectstore-tests.cpp +++ b/src/zenserver-test/projectstore-tests.cpp @@ -1027,7 +1027,7 @@ TEST_CASE("project.rpcappendop") std::string_view ProjectName, std::string_view OplogName, std::span Attachments, - void* ServerProcessHandle, + const ProcessHandle& ServerProcessHandle, const std::filesystem::path& TempPath) { CompositeBuffer PackageMessage; { @@ -1054,7 +1054,8 @@ TEST_CASE("project.rpcappendop") Request.EndArray(); // "chunks" RequestPackage.SetObject(Request.Save()); - PackageMessage = CompositeBuffer(FormatPackageMessage(RequestPackage, FormatFlags::kAllowLocalReferences, ServerProcessHandle)); + PackageMessage = + CompositeBuffer(FormatPackageMessage(RequestPackage, FormatFlags::kAllowLocalReferences, ServerProcessHandle.Handle())); } HttpClient::Response Response = @@ -1063,8 +1064,8 @@ TEST_CASE("project.rpcappendop") }; { - HttpClient Client(Servers.GetInstance(0).GetBaseUri()); - void* ServerProcessHandle = Servers.GetInstance(0).GetProcessHandle(); + HttpClient Client(Servers.GetInstance(0).GetBaseUri()); + const ProcessHandle& ServerProcessHandle = Servers.GetInstance(0).GetProcessHandle(); MakeProject(Client, "proj0"); MakeOplog(Client, "proj0", "oplog0"); @@ -1108,8 +1109,8 @@ TEST_CASE("project.rpcappendop") } { - HttpClient Client(Servers.GetInstance(1).GetBaseUri()); - void* ServerProcessHandle = nullptr; // Force use of path for attachments passed on disk + HttpClient Client(Servers.GetInstance(1).GetBaseUri()); + ProcessHandle ServerProcessHandle; // Force use of path for attachments passed on disk MakeProject(Client, "proj0"); MakeOplog(Client, "proj0", "oplog0"); -- cgit v1.2.3