[libvirt] [PATCH 1/3] Make QEMU driver use -chardev everywhere when it's available

2009-12-10 Thread Matthew Booth
Change -monitor, -serial and -parallel output to use -chardev if it is
available.

* src/qemu/qemu_conf.c: Update qemudBuildCommandLine to use -chardev where
  available.
* tests/qemuxml2argvtest.c tests/qemuxml2argvdata/: Add -chardev equivalents for
  all current serial and parallel tests.
---
 src/qemu/qemu_conf.c   |  108 +---
 .../qemuxml2argv-channel-guestfwd.args |2 +-
 .../qemuxml2argv-console-compat-chardev.args   |1 +
 .../qemuxml2argv-console-compat-chardev.xml|   28 +
 .../qemuxml2argv-parallel-tcp-chardev.args |1 +
 .../qemuxml2argv-parallel-tcp-chardev.xml  |   27 +
 .../qemuxml2argv-serial-dev-chardev.args   |1 +
 .../qemuxml2argv-serial-dev-chardev.xml|   30 ++
 .../qemuxml2argv-serial-file-chardev.args  |1 +
 .../qemuxml2argv-serial-file-chardev.xml   |   30 ++
 .../qemuxml2argv-serial-many-chardev.args  |1 +
 .../qemuxml2argv-serial-many-chardev.xml   |   32 ++
 .../qemuxml2argv-serial-pty-chardev.args   |1 +
 .../qemuxml2argv-serial-pty-chardev.xml|   28 +
 .../qemuxml2argv-serial-tcp-chardev.args   |1 +
 .../qemuxml2argv-serial-tcp-chardev.xml|   32 ++
 .../qemuxml2argv-serial-tcp-telnet-chardev.args|1 +
 .../qemuxml2argv-serial-tcp-telnet-chardev.xml |   32 ++
 .../qemuxml2argv-serial-udp-chardev.args   |1 +
 .../qemuxml2argv-serial-udp-chardev.xml|   32 ++
 .../qemuxml2argv-serial-unix-chardev.args  |1 +
 .../qemuxml2argv-serial-unix-chardev.xml   |   30 ++
 .../qemuxml2argv-serial-vc-chardev.args|1 +
 .../qemuxml2argv-serial-vc-chardev.xml |   28 +
 tests/qemuxml2argvtest.c   |   12 ++
 25 files changed, 445 insertions(+), 17 deletions(-)
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.args
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.xml
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.xml
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.args
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.xml

diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index a25fac6..86172c6 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -1863,17 +1863,37 @@ int qemudBuildCommandLine(virConnectPtr conn,
 if (monitor_chr) {
 virBuffer buf = VIR_BUFFER_INITIALIZER;
 
-if (monitor_json)
-virBufferAddLit(buf, control,);
+/* Use -chardev if it's available */
+if (qemuCmdFlags  QEMUD_CMD_FLAG_CHARDEV) {
+qemudBuildCommandLineChrDevChardevStr(monitor_chr, monitor, 
buf);
+if (virBufferError(buf)) {
+virBufferFreeAndReset(buf);
+goto no_memory;
+}
+
+ADD_ARG_LIT(-chardev);
+ADD_ARG(virBufferContentAndReset(buf));
+
+if (monitor_json)
+virBufferAddLit(buf, control,);
+
+virBufferAddLit(buf, chardev:monitor);
+}
+
+else {
+if (monitor_json)
+virBufferAddLit(buf, control,);
+
+qemudBuildCommandLineChrDevStr(monitor_chr, buf);
+}
 
-qemudBuildCommandLineChrDevStr(monitor_chr, buf);
 if (virBufferError(buf)) {
 virBufferFreeAndReset(buf);
 goto no_memory;
 }
 

Re: [libvirt] [PATCH 1/3] Make QEMU driver use -chardev everywhere when it's available

2009-11-25 Thread Daniel P. Berrange
On Mon, Nov 23, 2009 at 12:30:27PM +, Matthew Booth wrote:
 Change -monitor, -serial and -parallel output to use -chardev if it is
 available.
 
 * src/qemu/qemu_conf.c: Update qemudBuildCommandLine to use -chardev where
   available.
 * tests/qemuxml2argvtest.c tests/qemuxml2argvdata/: Add -chardev equivalents 
 for
   all current serial and parallel tests.

ACK


Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH 1/3] Make QEMU driver use -chardev everywhere when it's available

2009-11-23 Thread Matthew Booth
Change -monitor, -serial and -parallel output to use -chardev if it is
available.

* src/qemu/qemu_conf.c: Update qemudBuildCommandLine to use -chardev where
  available.
* tests/qemuxml2argvtest.c tests/qemuxml2argvdata/: Add -chardev equivalents for
  all current serial and parallel tests.
---
 src/qemu/qemu_conf.c   |   93 ---
 .../qemuxml2argv-channel-guestfwd.args |2 +-
 .../qemuxml2argv-console-compat-chardev.args   |1 +
 .../qemuxml2argv-console-compat-chardev.xml|   28 ++
 .../qemuxml2argv-parallel-tcp-chardev.args |1 +
 .../qemuxml2argv-parallel-tcp-chardev.xml  |   27 ++
 .../qemuxml2argv-serial-dev-chardev.args   |1 +
 .../qemuxml2argv-serial-dev-chardev.xml|   30 ++
 .../qemuxml2argv-serial-file-chardev.args  |1 +
 .../qemuxml2argv-serial-file-chardev.xml   |   30 ++
 .../qemuxml2argv-serial-many-chardev.args  |1 +
 .../qemuxml2argv-serial-many-chardev.xml   |   32 +++
 .../qemuxml2argv-serial-pty-chardev.args   |1 +
 .../qemuxml2argv-serial-pty-chardev.xml|   28 ++
 .../qemuxml2argv-serial-tcp-chardev.args   |1 +
 .../qemuxml2argv-serial-tcp-chardev.xml|   32 +++
 .../qemuxml2argv-serial-tcp-telnet-chardev.args|1 +
 .../qemuxml2argv-serial-tcp-telnet-chardev.xml |   32 +++
 .../qemuxml2argv-serial-udp-chardev.args   |1 +
 .../qemuxml2argv-serial-udp-chardev.xml|   32 +++
 .../qemuxml2argv-serial-unix-chardev.args  |1 +
 .../qemuxml2argv-serial-unix-chardev.xml   |   30 ++
 .../qemuxml2argv-serial-vc-chardev.args|1 +
 .../qemuxml2argv-serial-vc-chardev.xml |   28 ++
 tests/qemuxml2argvtest.c   |   12 +++
 25 files changed, 431 insertions(+), 16 deletions(-)
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.args
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.xml
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.xml
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.args
 create mode 100644 
tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.xml

diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index f26e94d..51d8515 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -1858,12 +1858,27 @@ int qemudBuildCommandLine(virConnectPtr conn,
 if (monitor_chr) {
 virBuffer buf = VIR_BUFFER_INITIALIZER;
 
-qemudBuildCommandLineChrDevStr(monitor_chr, buf);
-if (virBufferError(buf))
-goto error;
+/* Use -chardev if it's available */
+if (qemuCmdFlags  QEMUD_CMD_FLAG_CHARDEV) {
+qemudBuildCommandLineChrDevChardevStr(monitor_chr, monitor, 
buf);
+if (virBufferError(buf))
+goto error;
+
+ADD_ARG_LIT(-chardev);
+ADD_ARG(virBufferContentAndReset(buf));
+
+ADD_ARG_LIT(-monitor);
+ADD_ARG_LIT(chardev:monitor);
+}
+
+else {
+qemudBuildCommandLineChrDevStr(monitor_chr, buf);
+if (virBufferError(buf))
+goto error;
 
-ADD_ARG_LIT(-monitor);
-ADD_ARG(virBufferContentAndReset(buf));
+ADD_ARG_LIT(-monitor);
+ADD_ARG(virBufferContentAndReset(buf));
+}
 }
 
 if (def-localtime)
@@ -2146,12 +2161,36 @@ int