summaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
authorKarl Hallsby <karl@hallsby.com>2025-01-08 14:19:01 -0600
committerLudovic Courtès <ludo@gnu.org>2025-02-21 15:27:10 +0100
commit8d7578ba6c72f7acb191475cb2c3ed6b7da8ea2b (patch)
tree42bd5a2ce933b458e346d4eabbb894bb712ec1cb /gnu/services
parenta036a455da1c91282ac2c6a7ca9757ee2e8ba107 (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.scm34
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 @@
113 qemu-guest-agent-service-type 113 qemu-guest-agent-service-type
114 114
115 xe-guest-utilities-configuration 115 xe-guest-utilities-configuration
116 xe-guest-utilities-service-type)) 116 xe-guest-utilities-service-type
117 xen-guest-agent-configuration
118 xen-guest-agent-service-type))
117 119
118(define (uglify-field-name field-name) 120(define (uglify-field-name field-name)
119 (let ((str (symbol->string field-name))) 121 (let ((str (symbol->string field-name)))
@@ -1083,6 +1085,36 @@ specified, the QEMU default path is used."))
1083 (default-value (xe-guest-utilities-configuration)) 1085 (default-value (xe-guest-utilities-configuration))
1084 (description "Run the Xen guest management utilities."))) 1086 (description "Run the Xen guest management utilities.")))
1085 1087
1088(define-configuration/no-serialization xen-guest-agent-configuration
1089 (package
1090 (package xen-guest-agent)
1091 "Xen guest agent package."))
1092
1093(define (generate-xen-guest-agent-documentation)
1094 "Generate documentation for xen-guest-agent-configuration fields"
1095 (generate-documentation
1096 `((xen-guest-agent-configuration ,xen-guest-agent-configuration-fields))
1097 'xen-guest-agent-configuration))
1098
1099(define (xen-guest-agent-shepherd-service config)
1100 (list
1101 (shepherd-service
1102 (provision '(xen-guest-agent))
1103 (requirement '(networking user-processes udev))
1104 (documentation "Run the Xen guest management agent.")
1105 (start #~(make-forkexec-constructor
1106 (list #$(file-append xen-guest-agent "/bin/xen-guest-agent"))))
1107 (stop #~(make-kill-destructor)))))
1108
1109(define xen-guest-agent-service-type
1110 (service-type
1111 (name 'xen-guest-agent)
1112 (extensions
1113 (list (service-extension shepherd-root-service-type
1114 xen-guest-agent-shepherd-service)))
1115 (default-value (xen-guest-agent-configuration))
1116 (description "Run the Xen guest management utilities.")))
1117
1086 1118
1087;;; 1119;;;
1088;;; Secrets for guest VMs. 1120;;; Secrets for guest VMs.