]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuBuildVMGenIDCommandLine: Generate via JSON
authorPeter Krempa <pkrempa@redhat.com>
Mon, 11 Oct 2021 14:08:24 +0000 (16:08 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 12 Oct 2021 18:54:53 +0000 (20:54 +0200)
QEMU declares the 'guid' property as:

  guid=<str>             - UUID (aka GUID) or "auto" for random value (default) (default: "auto")

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_command.c

index 6fa07e3e179e29cb5d538ef23ecc2e5bf90ad8d5..bf15a4801a07835c342949d7e0398d8ba2f8d2b4 100644 (file)
@@ -6144,19 +6144,26 @@ qemuBuildSysinfoCommandLine(virCommand *cmd,
 
 static int
 qemuBuildVMGenIDCommandLine(virCommand *cmd,
-                            const virDomainDef *def)
+                            const virDomainDef *def,
+                            virQEMUCaps *qemuCaps)
 {
-    g_auto(virBuffer) opts = VIR_BUFFER_INITIALIZER;
+    g_autoptr(virJSONValue) props = NULL;
     char guid[VIR_UUID_STRING_BUFLEN];
 
     if (!def->genidRequested)
         return 0;
 
     virUUIDFormat(def->genid, guid);
-    virBufferAsprintf(&opts, "vmgenid,guid=%s,id=vmgenid0", guid);
 
-    virCommandAddArg(cmd, "-device");
-    virCommandAddArgBuffer(cmd, &opts);
+    if (virJSONValueObjectCreate(&props,
+                                 "s:driver", "vmgenid",
+                                 "s:guid", guid,
+                                 "s:id", "vmgenid0",
+                                 NULL) < 0)
+        return -1;
+
+    if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
+        return -1;
 
     return 0;
 }
@@ -10658,7 +10665,7 @@ qemuBuildCommandLine(virQEMUDriver *driver,
     if (qemuBuildSysinfoCommandLine(cmd, def) < 0)
         return NULL;
 
-    if (qemuBuildVMGenIDCommandLine(cmd, def) < 0)
+    if (qemuBuildVMGenIDCommandLine(cmd, def, qemuCaps) < 0)
         return NULL;
 
     /*