From 8d7578ba6c72f7acb191475cb2c3ed6b7da8ea2b Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Wed, 8 Jan 2025 14:19:01 -0600 Subject: services: Add xen-guest-agent-service-type. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/virtualization.scm (xen-guest-agent-configuration, xen-guest-agent-service-type): New variables. * doc/guix.texi: Document them. Change-Id: Id1b1f4fc2b193d73f4401e74a214222dfe1b6ea7 Signed-off-by: Ludovic Courtès --- gnu/services/virtualization.scm | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'gnu/services') diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm index 874abcd73f2..b697ae95269 100644 --- a/gnu/services/virtualization.scm +++ b/gnu/services/virtualization.scm @@ -113,7 +113,9 @@ qemu-guest-agent-service-type xe-guest-utilities-configuration - xe-guest-utilities-service-type)) + xe-guest-utilities-service-type + xen-guest-agent-configuration + xen-guest-agent-service-type)) (define (uglify-field-name field-name) (let ((str (symbol->string field-name))) @@ -1083,6 +1085,36 @@ specified, the QEMU default path is used.")) (default-value (xe-guest-utilities-configuration)) (description "Run the Xen guest management utilities."))) +(define-configuration/no-serialization xen-guest-agent-configuration + (package + (package xen-guest-agent) + "Xen guest agent package.")) + +(define (generate-xen-guest-agent-documentation) + "Generate documentation for xen-guest-agent-configuration fields" + (generate-documentation + `((xen-guest-agent-configuration ,xen-guest-agent-configuration-fields)) + 'xen-guest-agent-configuration)) + +(define (xen-guest-agent-shepherd-service config) + (list + (shepherd-service + (provision '(xen-guest-agent)) + (requirement '(networking user-processes udev)) + (documentation "Run the Xen guest management agent.") + (start #~(make-forkexec-constructor + (list #$(file-append xen-guest-agent "/bin/xen-guest-agent")))) + (stop #~(make-kill-destructor))))) + +(define xen-guest-agent-service-type + (service-type + (name 'xen-guest-agent) + (extensions + (list (service-extension shepherd-root-service-type + xen-guest-agent-shepherd-service))) + (default-value (xen-guest-agent-configuration)) + (description "Run the Xen guest management utilities."))) + ;;; ;;; Secrets for guest VMs. -- cgit v1.3