|
|
6ae9ed |
From f7162a7c681e0dda365f1883736979d64ae7d2a5 Mon Sep 17 00:00:00 2001
|
|
|
6ae9ed |
Message-Id: <f7162a7c681e0dda365f1883736979d64ae7d2a5@dist-git>
|
|
|
6ae9ed |
From: John Ferlan <jferlan@redhat.com>
|
|
|
6ae9ed |
Date: Mon, 25 Jul 2016 12:42:56 -0400
|
|
|
6ae9ed |
Subject: [PATCH] qemu: Move and rename qemuBufferEscapeComma
|
|
|
6ae9ed |
|
|
|
6ae9ed |
https://bugzilla.redhat.com/show_bug.cgi?id=1301021
|
|
|
6ae9ed |
|
|
|
6ae9ed |
Move to virqemu and rename to virQEMUBuildBufferEscapeComma. This can then
|
|
|
6ae9ed |
be shared by the storage driver when it builds the command line for qemuimg
|
|
|
6ae9ed |
|
|
|
6ae9ed |
(cherry picked from commit 8215aab0036e65da47a2646f85749e9f5ea5d252)
|
|
|
6ae9ed |
Signed-off-by: John Ferlan <jferlan@redhat.com>
|
|
|
6ae9ed |
---
|
|
|
6ae9ed |
src/libvirt_private.syms | 1 +
|
|
|
6ae9ed |
src/qemu/qemu_command.c | 33 +++++++++------------------------
|
|
|
6ae9ed |
src/util/virqemu.c | 15 +++++++++++++++
|
|
|
6ae9ed |
src/util/virqemu.h | 2 ++
|
|
|
6ae9ed |
4 files changed, 27 insertions(+), 24 deletions(-)
|
|
|
6ae9ed |
|
|
|
6ae9ed |
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
|
|
|
6ae9ed |
index 62c9dc5..c205fd8 100644
|
|
|
6ae9ed |
--- a/src/libvirt_private.syms
|
|
|
6ae9ed |
+++ b/src/libvirt_private.syms
|
|
|
6ae9ed |
@@ -2192,6 +2192,7 @@ virProcessWait;
|
|
|
6ae9ed |
|
|
|
6ae9ed |
|
|
|
6ae9ed |
# util/virqemu.h
|
|
|
6ae9ed |
+virQEMUBuildBufferEscapeComma;
|
|
|
6ae9ed |
virQEMUBuildObjectCommandlineFromJSON;
|
|
|
6ae9ed |
|
|
|
6ae9ed |
|
|
|
6ae9ed |
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
|
|
6ae9ed |
index b87d9c3..0ee1d34 100644
|
|
|
6ae9ed |
--- a/src/qemu/qemu_command.c
|
|
|
6ae9ed |
+++ b/src/qemu/qemu_command.c
|
|
|
6ae9ed |
@@ -152,21 +152,6 @@ VIR_ENUM_IMPL(qemuNumaPolicy, VIR_DOMAIN_NUMATUNE_MEM_LAST,
|
|
|
6ae9ed |
|
|
|
6ae9ed |
|
|
|
6ae9ed |
/**
|
|
|
6ae9ed |
- * qemuBufferEscapeComma:
|
|
|
6ae9ed |
- * @buf: buffer to append the escaped string
|
|
|
6ae9ed |
- * @str: the string to escape
|
|
|
6ae9ed |
- *
|
|
|
6ae9ed |
- * qemu requires that any values passed on the command line which contain
|
|
|
6ae9ed |
- * a ',' must escape it using an extra ',' as the escape character
|
|
|
6ae9ed |
- */
|
|
|
6ae9ed |
-static void
|
|
|
6ae9ed |
-qemuBufferEscapeComma(virBufferPtr buf, const char *str)
|
|
|
6ae9ed |
-{
|
|
|
6ae9ed |
- virBufferEscape(buf, ',', ",", "%s", str);
|
|
|
6ae9ed |
-}
|
|
|
6ae9ed |
-
|
|
|
6ae9ed |
-
|
|
|
6ae9ed |
-/**
|
|
|
6ae9ed |
* qemuBuildHasMasterKey:
|
|
|
6ae9ed |
* @qemuCaps: QEMU binary capabilities
|
|
|
6ae9ed |
*
|
|
|
6ae9ed |
@@ -221,7 +206,7 @@ qemuBuildMasterKeyCommandLine(virCommandPtr cmd,
|
|
|
6ae9ed |
|
|
|
6ae9ed |
virCommandAddArg(cmd, "-object");
|
|
|
6ae9ed |
virBufferAsprintf(&buf, "secret,id=%s,format=raw,file=", alias);
|
|
|
6ae9ed |
- qemuBufferEscapeComma(&buf, path);
|
|
|
6ae9ed |
+ virQEMUBuildBufferEscapeComma(&buf, path);
|
|
|
6ae9ed |
virCommandAddArgBuffer(cmd, &buf;;
|
|
|
6ae9ed |
|
|
|
6ae9ed |
ret = 0;
|
|
|
6ae9ed |
@@ -1233,7 +1218,7 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk,
|
|
|
6ae9ed |
break;
|
|
|
6ae9ed |
}
|
|
|
6ae9ed |
|
|
|
6ae9ed |
- qemuBufferEscapeComma(&opt, source);
|
|
|
6ae9ed |
+ virQEMUBuildBufferEscapeComma(&opt, source);
|
|
|
6ae9ed |
virBufferAddLit(&opt, ",");
|
|
|
6ae9ed |
|
|
|
6ae9ed |
if (secinfo && secinfo->type == VIR_DOMAIN_SECRET_INFO_TYPE_AES) {
|
|
|
6ae9ed |
@@ -3776,7 +3761,7 @@ qemuBuildVirtioInputDevStr(const virDomainDef *def,
|
|
|
6ae9ed |
goto error;
|
|
|
6ae9ed |
}
|
|
|
6ae9ed |
virBufferAsprintf(&buf, "virtio-input-host%s,id=%s,evdev=", suffix, dev->info.alias);
|
|
|
6ae9ed |
- qemuBufferEscapeComma(&buf, dev->source.evdev);
|
|
|
6ae9ed |
+ virQEMUBuildBufferEscapeComma(&buf, dev->source.evdev);
|
|
|
6ae9ed |
break;
|
|
|
6ae9ed |
case VIR_DOMAIN_INPUT_TYPE_LAST:
|
|
|
6ae9ed |
break;
|
|
|
6ae9ed |
@@ -4778,7 +4763,7 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager,
|
|
|
6ae9ed |
|
|
|
6ae9ed |
case VIR_DOMAIN_CHR_TYPE_UNIX:
|
|
|
6ae9ed |
virBufferAsprintf(&buf, "socket,id=char%s,path=", alias);
|
|
|
6ae9ed |
- qemuBufferEscapeComma(&buf, dev->data.nix.path);
|
|
|
6ae9ed |
+ virQEMUBuildBufferEscapeComma(&buf, dev->data.nix.path);
|
|
|
6ae9ed |
if (dev->data.nix.listen)
|
|
|
6ae9ed |
virBufferAddLit(&buf, ",server,nowait");
|
|
|
6ae9ed |
break;
|
|
|
6ae9ed |
@@ -6157,7 +6142,7 @@ qemuBuildBootCommandLine(virCommandPtr cmd,
|
|
|
6ae9ed |
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
|
|
6ae9ed |
virCommandAddArg(cmd, "-acpitable");
|
|
|
6ae9ed |
virBufferAddLit(&buf, "sig=SLIC,file=");
|
|
|
6ae9ed |
- qemuBufferEscapeComma(&buf, def->os.slic_table);
|
|
|
6ae9ed |
+ virQEMUBuildBufferEscapeComma(&buf, def->os.slic_table);
|
|
|
6ae9ed |
virCommandAddArgBuffer(cmd, &buf;;
|
|
|
6ae9ed |
}
|
|
|
6ae9ed |
|
|
|
6ae9ed |
@@ -6764,7 +6749,7 @@ qemuBuildNameCommandLine(virCommandPtr cmd,
|
|
|
6ae9ed |
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NAME_GUEST))
|
|
|
6ae9ed |
virBufferAddLit(&buf, "guest=");
|
|
|
6ae9ed |
|
|
|
6ae9ed |
- qemuBufferEscapeComma(&buf, def->name);
|
|
|
6ae9ed |
+ virQEMUBuildBufferEscapeComma(&buf, def->name);
|
|
|
6ae9ed |
|
|
|
6ae9ed |
if (cfg->setProcessName &&
|
|
|
6ae9ed |
virQEMUCapsGet(qemuCaps, QEMU_CAPS_NAME_PROCESS))
|
|
|
6ae9ed |
@@ -7313,7 +7298,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg,
|
|
|
6ae9ed |
switch (glisten->type) {
|
|
|
6ae9ed |
case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET:
|
|
|
6ae9ed |
virBufferAddLit(&opt, "unix:");
|
|
|
6ae9ed |
- qemuBufferEscapeComma(&opt, glisten->socket);
|
|
|
6ae9ed |
+ virQEMUBuildBufferEscapeComma(&opt, glisten->socket);
|
|
|
6ae9ed |
break;
|
|
|
6ae9ed |
|
|
|
6ae9ed |
case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS:
|
|
|
6ae9ed |
@@ -8890,10 +8875,10 @@ qemuBuildTPMBackendStr(const virDomainDef *def,
|
|
|
6ae9ed |
goto error;
|
|
|
6ae9ed |
}
|
|
|
6ae9ed |
virBufferAddLit(&buf, ",path=");
|
|
|
6ae9ed |
- qemuBufferEscapeComma(&buf, devset ? devset : tpmdev);
|
|
|
6ae9ed |
+ virQEMUBuildBufferEscapeComma(&buf, devset ? devset : tpmdev);
|
|
|
6ae9ed |
|
|
|
6ae9ed |
virBufferAddLit(&buf, ",cancel-path=");
|
|
|
6ae9ed |
- qemuBufferEscapeComma(&buf, cancel_path);
|
|
|
6ae9ed |
+ virQEMUBuildBufferEscapeComma(&buf, cancel_path);
|
|
|
6ae9ed |
|
|
|
6ae9ed |
VIR_FREE(devset);
|
|
|
6ae9ed |
VIR_FREE(cancel_path);
|
|
|
6ae9ed |
diff --git a/src/util/virqemu.c b/src/util/virqemu.c
|
|
|
6ae9ed |
index 895168e..79a4292 100644
|
|
|
6ae9ed |
--- a/src/util/virqemu.c
|
|
|
6ae9ed |
+++ b/src/util/virqemu.c
|
|
|
6ae9ed |
@@ -140,3 +140,18 @@ virQEMUBuildObjectCommandlineFromJSON(const char *type,
|
|
|
6ae9ed |
virBufferFreeAndReset(&buf;;
|
|
|
6ae9ed |
return ret;
|
|
|
6ae9ed |
}
|
|
|
6ae9ed |
+
|
|
|
6ae9ed |
+
|
|
|
6ae9ed |
+/**
|
|
|
6ae9ed |
+ * virQEMUBuildBufferEscapeComma:
|
|
|
6ae9ed |
+ * @buf: buffer to append the escaped string
|
|
|
6ae9ed |
+ * @str: the string to escape
|
|
|
6ae9ed |
+ *
|
|
|
6ae9ed |
+ * qemu requires that any values passed on the command line which contain
|
|
|
6ae9ed |
+ * a ',' must escape it using an extra ',' as the escape character
|
|
|
6ae9ed |
+ */
|
|
|
6ae9ed |
+void
|
|
|
6ae9ed |
+virQEMUBuildBufferEscapeComma(virBufferPtr buf, const char *str)
|
|
|
6ae9ed |
+{
|
|
|
6ae9ed |
+ virBufferEscape(buf, ',', ",", "%s", str);
|
|
|
6ae9ed |
+}
|
|
|
6ae9ed |
diff --git a/src/util/virqemu.h b/src/util/virqemu.h
|
|
|
6ae9ed |
index af4ec1d..1033412 100644
|
|
|
6ae9ed |
--- a/src/util/virqemu.h
|
|
|
6ae9ed |
+++ b/src/util/virqemu.h
|
|
|
6ae9ed |
@@ -25,10 +25,12 @@
|
|
|
6ae9ed |
# define __VIR_QEMU_H_
|
|
|
6ae9ed |
|
|
|
6ae9ed |
# include "internal.h"
|
|
|
6ae9ed |
+# include "virbuffer.h"
|
|
|
6ae9ed |
# include "virjson.h"
|
|
|
6ae9ed |
|
|
|
6ae9ed |
char *virQEMUBuildObjectCommandlineFromJSON(const char *type,
|
|
|
6ae9ed |
const char *alias,
|
|
|
6ae9ed |
virJSONValuePtr props);
|
|
|
6ae9ed |
|
|
|
6ae9ed |
+void virQEMUBuildBufferEscapeComma(virBufferPtr buf, const char *str);
|
|
|
6ae9ed |
#endif /* __VIR_QEMU_H_ */
|
|
|
6ae9ed |
--
|
|
|
6ae9ed |
2.9.2
|
|
|
6ae9ed |
|