aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/hub/hub.cpp
Commit message (Collapse)AuthorAgeFilesLines
* updated comment and improved rejection message on recovering stateDan Engelbrecht9 hours1-5/+11
|
* release compile fixDan Engelbrecht9 hours1-2/+1
|
* improved code documentationDan Engelbrecht9 hours1-3/+3
|
* improve response messagesDan Engelbrecht9 hours1-6/+7
|
* state transition lockdownDan Engelbrecht9 hours1-5/+43
|
* clarifying commentsDan Engelbrecht10 hours1-3/+14
|
* handle failed deprovisionDan Engelbrecht10 hours1-1/+10
|
* add --consul-health-interval-seconds and --consul-deregister-after-secondsDan Engelbrecht11 hours1-1/+1
|
* reduce watchdog wait time to 3 secondsDan Engelbrecht11 hours1-1/+1
|
* moved out state management from StorageServerInstance to Hub.Dan Engelbrecht14 hours1-343/+438
| | | | allows for more granular notification and stricter state transitions
* remove m_FreePorts management, use Instance index as basis for port insteadDan Engelbrecht31 hours1-125/+92
|
* use fixed size struct for hub instancesDan Engelbrecht33 hours1-27/+20
|
* hub async provision/deprovision/hibernate/wake (#891)HEADmainDan Engelbrecht35 hours1-264/+826
| | | | | - Improvement: Hub provision, deprovision, hibernate, and wake operations are now async. HTTP requests returns 202 Accepted while the operation completes in the background - Improvement: Hub returns 202 Accepted (instead of 409 Conflict) when the same async operation is already in progress for a module - Improvement: Hub returns 200 OK when a requested state transition is already satisfied
* refactor hub notifications (#888)Dan Engelbrecht2 days1-154/+199
| | | | * refactor hub callbacks * improve http responses
* add hub instance crash recovery (#885)Dan Engelbrecht3 days1-31/+237
| | | * add hub instance crash recovery
* hub web UI improvements (#878)Dan Engelbrecht4 days1-0/+2
| | | | | | | | | | - Improvement: Hub dashboard module list improved - Animated state dots, with flashing transitions for hibernating, waking, provisioning, and deprovisioning - Per-row port used by the provisioned instance - Per-row hibernate, wake, and deprovision actions with confirmation for destructive operations - Per-row button to open the instance dashboard in a new window - Multi-select with bulk hibernate/wake/deprovision and select-all - Pagination at 50 lines per page - Inline fold-out panel per row with human-readable process metrics
* zen hub command (#877)Dan Engelbrecht4 days1-128/+244
| | | | | | | | | | | | | | | - Feature: Added `zen hub` command for managing a hub server and its provisioned module instances: - `zen hub up` - Start a hub server (equivalent to `zen up` in hub mode) - `zen hub down` - Shut down a hub server - `zen hub provision <moduleid>` - Provision a storage server instance for a module - `zen hub deprovision <moduleid>` - Deprovision a storage server instance - `zen hub hibernate <moduleid>` - Hibernate a provisioned instance (shut down, data preserved) - `zen hub wake <moduleid>` - Wake a hibernated instance - `zen hub status [moduleid]` - Show state of all instances or a specific module - Feature: Added new hub HTTP endpoints for instance lifecycle management: - `POST /hub/modules/{moduleid}/hibernate` - Hibernate the instance for the given module - `POST /hub/modules/{moduleid}/wake` - Wake a hibernated instance for the given module - Improvement: `zen up` refactored to use shared `StartupZenServer`/`ShutdownZenServer` helpers (also used by `zen hub up`/`zen hub down`) - Bugfix: Fixed shutdown event not being cleared after the server process exits in `ZenServerInstance::Shutdown()`, which could cause stale state on reuse
* add hub instance info (#869)Dan Engelbrecht6 days1-73/+312
| | | | | | | - 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
* add --hub-hydration-target-spec to zen hub (#867)Dan Engelbrecht7 days1-9/+18
|
* add --hub-instance-config option to set lua config path for hub instances (#854)Dan Engelbrecht8 days1-1/+42
| | | * add --hub-instance-config option to set lua config path for hub instances
* zen hub port reuse (#850)Dan Engelbrecht8 days1-9/+47
| | | | | | | | - Feature: Added `--allow-port-probing` option to control whether zenserver searches for a free port on startup (default: true, automatically false when --dedicated is set) - Feature: Added new hub options for controlling provisioned storage server instances: - `--hub-instance-http` - HTTP server implementation for instances (asio/httpsys) - `--hub-instance-http-threads` - Number of HTTP connection threads per instance - `--hub-instance-corelimit` - Limit CPU concurrency per instance - Improvement: Hub now manages a deterministic port pool for provisioned instances allowing reuse of unused ports
* hub consul integration (#820)Dan Engelbrecht2026-03-111-13/+494
| | | | | | | | - Feature: Basic consul integration for zenserver hub mode, restricted to host local consul agent and register/deregister of services - Feature: Added new options to zenserver hub mode - `consul-endpoint` - Consul endpoint URL for service registration (empty = disabled) - `hub-base-port-number` - Base port number for provisioned instances - `hub-instance-limit` - Maximum number of provisioned instances for this hub - `hub-use-job-object` - Enable the use of a Windows Job Object for child process management (Windows only)
* hubservice refactor (#819)Dan Engelbrecht2026-03-101-0/+379
* move Hub to separate class * move StorageServerInstance to separate files * refactor HttpHubService to not own Hub instance