From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id D32F41FF183 for ; Wed, 24 Sep 2025 13:59:35 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id B18533A25; Wed, 24 Sep 2025 13:59:56 +0200 (CEST) From: n.frey@proxmox.com To: pve-devel@lists.proxmox.com Date: Wed, 24 Sep 2025 13:59:03 +0200 Message-ID: <20250924115904.122696-4-n.frey@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20250924115904.122696-1-n.frey@proxmox.com> References: <20250924115904.122696-1-n.frey@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.132 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods RDNS_NONE 0.793 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record Subject: [pve-devel] [PATCH pve-manager v2 3/4] api: add service state return schema X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" From: Nicolas Frey values for the respective states (active-state, state, unit-state) were taken from the systemd manpages [0] for ActiveState, SubState, and UnitFileState. With the addition of unknown and not-found to account for logic present in the code. [0] https://manpages.debian.org/trixie/systemd/org.freedesktop.systemd1.5.en.html Signed-off-by: Nicolas Frey --- PVE/API2/Services.pm | 80 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 2 deletions(-) diff --git a/PVE/API2/Services.pm b/PVE/API2/Services.pm index 708b6613..4b0999d1 100644 --- a/PVE/API2/Services.pm +++ b/PVE/API2/Services.pm @@ -137,6 +137,82 @@ my $service_state = sub { return $res; }; +my $service_type = { + 'active-state' => { + type => 'string', + enum => [ + qw(active inactive failed activating deactivating maintenance reloading refreshing unknown) + ], + description => 'Current state of the service process (systemd ActiveState).', + }, + 'desc' => { + type => 'string', + description => 'Description of the service.', + }, + 'name' => { + type => 'string', + description => 'Short identifier for the service (e.g., "pveproxy").', + }, + 'service' => { + type => 'string', + description => 'Systemd unit name (e.g., pveproxy).', + }, + 'state' => { + type => 'string', + # all systemd service unit substates + enum => [qw( + dead + condition + start-pre + start + start-post + running + exited + reload + reload-signal + reload-notify + mounting + stop + stop-watchdog + stop-sigterm + stop-sigkill + stop-post + final-watchdog + final-sigterm + final-sigkill + failed + dead-before-auto-restart + failed-before-auto-restart + dead-resources-pinned + auto-restart + auto-restart-queued + cleaning + unknown + )], + description => 'Execution status of the service (systemd SubState).', + }, + 'unit-state' => { + type => 'string', + enum => [qw( + enabled + enabled-runtime + linked + linked-runtime + alias + masked + masked-runtime + static + disabled + indirect + generated + transient + bad not-found + unknown + )], + description => 'Whether the service is enabled (systemd UnitFileState).', + }, +}; + __PACKAGE__->register_method({ name => 'index', path => '', @@ -157,7 +233,7 @@ __PACKAGE__->register_method({ type => 'array', items => { type => "object", - properties => {}, + properties => $service_type, }, links => [{ rel => 'child', href => "{service}" }], }, @@ -241,7 +317,7 @@ __PACKAGE__->register_method({ }, returns => { type => "object", - properties => {}, + properties => $service_type, }, code => sub { my ($param) = @_; -- 2.47.3 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel