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/virtualization.scm | |
| 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/virtualization.scm')
| -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 @@ | |||
| 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. |
