diff options
| author | Karl Hallsby <karl@hallsby.com> | 2025-01-08 14:19:01 -0600 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2025-02-21 15:27:10 +0100 |
| commit | 8d7578ba6c72f7acb191475cb2c3ed6b7da8ea2b (patch) | |
| tree | 42bd5a2ce933b458e346d4eabbb894bb712ec1cb /gnu/services | |
| parent | a036a455da1c91282ac2c6a7ca9757ee2e8ba107 (diff) | |
services: Add xen-guest-agent-service-type.
* 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 <ludo@gnu.org>
Diffstat (limited to 'gnu/services')
| -rw-r--r-- | gnu/services/virtualization.scm | 34 |
1 files changed, 33 insertions, 1 deletions
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. |
