diff options
| author | Dan Engelbrecht <[email protected]> | 2026-03-20 13:44:00 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2026-03-20 13:44:00 +0100 |
| commit | 7cc4b1701aa2923573adabceed486229abba5a2d (patch) | |
| tree | 04a1b5eddcabd24e5c5a50a817fa50c5829972f2 /src/zenutil | |
| parent | Zs/consul token (#870) (diff) | |
| download | zen-7cc4b1701aa2923573adabceed486229abba5a2d.tar.xz zen-7cc4b1701aa2923573adabceed486229abba5a2d.zip | |
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
Diffstat (limited to 'src/zenutil')
| -rw-r--r-- | src/zenutil/include/zenutil/zenserverprocess.h | 27 | ||||
| -rw-r--r-- | src/zenutil/zenserverprocess.cpp | 2 |
2 files changed, 15 insertions, 14 deletions
diff --git a/src/zenutil/include/zenutil/zenserverprocess.h b/src/zenutil/include/zenutil/zenserverprocess.h index 5528b766c..308ae0ef2 100644 --- a/src/zenutil/include/zenutil/zenserverprocess.h +++ b/src/zenutil/include/zenutil/zenserverprocess.h @@ -115,22 +115,23 @@ struct ZenServerInstance ZenServerInstance(ZenServerEnvironment& TestEnvironment, ServerMode Mode = ServerMode::kStorageServer); ~ZenServerInstance(); - int Shutdown(); - bool SignalShutdown(std::error_code& OutEc); - uint16_t WaitUntilReady(); - [[nodiscard]] bool WaitUntilReady(int Timeout); - [[nodiscard]] bool WaitUntilExited(int Timeout, std::error_code& OutEc); - void EnableTermination() { m_Terminate = true; } - void EnableShutdownOnDestroy() { m_ShutdownOnDestroy = true; } - void DisableShutdownOnDestroy() { m_ShutdownOnDestroy = false; } - void Detach(); - inline int GetPid() const { return m_Process.Pid(); } - inline void SetOwnerPid(int Pid) { m_OwnerPid = Pid; } - void* GetProcessHandle() const { return m_Process.Handle(); } + int Shutdown(); + bool SignalShutdown(std::error_code& OutEc); + uint16_t WaitUntilReady(); + [[nodiscard]] bool WaitUntilReady(int Timeout); + [[nodiscard]] bool WaitUntilExited(int Timeout, std::error_code& OutEc); + void EnableTermination() { m_Terminate = true; } + void EnableShutdownOnDestroy() { m_ShutdownOnDestroy = true; } + void DisableShutdownOnDestroy() { m_ShutdownOnDestroy = false; } + void Detach(); + inline int GetPid() const { return m_Process.Pid(); } + inline void SetOwnerPid(int Pid) { m_OwnerPid = Pid; } + const ProcessHandle& GetProcessHandle() const { return m_Process; } + #if ZEN_PLATFORM_WINDOWS void SetJobObject(JobObject* Job) { m_JobObject = Job; } #endif - bool IsRunning(); + bool IsRunning() const; bool Terminate(); std::string GetLogOutput() const; diff --git a/src/zenutil/zenserverprocess.cpp b/src/zenutil/zenserverprocess.cpp index ebce9730e..8eaf2cf5b 100644 --- a/src/zenutil/zenserverprocess.cpp +++ b/src/zenutil/zenserverprocess.cpp @@ -1419,7 +1419,7 @@ ZenServerInstance::SetDataDir(std::filesystem::path TestDir) } bool -ZenServerInstance::IsRunning() +ZenServerInstance::IsRunning() const { if (!m_Process.IsValid()) { |