[libvirt] [PATCH 00/17] improve graphics listen configuration

Pavel Hrdina phrdina at redhat.com
Thu May 5 16:20:19 UTC 2016


This patch series improves the way how different listen types can be specified
and also introduce a new listen types for graphics devices.

First improvement is to move ports auto of graphics element into listen element
with type address or network.  This is a first step to make the code
listen-driven.

Second step is to create a new listen type socket to improve the current vnc
configuration and to print only socket path witout any other listen types.  With
the new socket type now we can add support also to spice graphics.

The last improvement is to introduce new listen type none for spice graphics to
specify that the spice graphics shouldn't listen anywhere by default.

In case of spice graphics the new listen types socket or none are required to
start a guest with OpenGL support.

Pavel Hrdina (17):
  graphics: use enums instead of int
  qemu_process: move listen code out of qemuProcessSetupGraphics
  qemu_process: handle port allocation for VNC the same way as for Spice
  graphics: generate fake ports also for tests
  qemu_hotplug: cleanup qemuDomainChangeGraphics
  genericxml2xml: add several graphics tests
  qemu_hotplug: fix checking graphics ports
  graphics: don't parse listens if socket attribute is present
  domain_conf: parse listen attr from graphics while parsing listen
    elements
  graphics: make address attribute for listen type='address' optional
  domain_conf: cleanup virDomainGraphicsListenDefParseXML
  graphics: move port definition to listen element
  qemu.conf: remove vnc_auto_unix_socket
  vnc: use listen type=socket instead of socket attribute
  qemu_capabilites: add QEMU_CAPS_SPICE_UNIX
  spice: add support for listen type socket
  spice: introduce listen type none

 docs/formatdomain.html.in                          | 138 +++--
 docs/schemas/domaincommon.rng                      |  63 ++-
 src/conf/domain_conf.c                             | 604 ++++++++++++++-------
 src/conf/domain_conf.h                             |  45 +-
 src/libvirt_private.syms                           |   1 +
 src/libxl/libxl_conf.c                             |  61 ++-
 src/libxl/libxl_domain.c                           |  17 +-
 src/qemu/libvirtd_qemu.aug                         |   1 -
 src/qemu/qemu.conf                                 |  10 -
 src/qemu/qemu_capabilities.c                       |   2 +
 src/qemu/qemu_capabilities.h                       |   1 +
 src/qemu/qemu_command.c                            | 239 ++++----
 src/qemu/qemu_conf.c                               |   1 -
 src/qemu/qemu_conf.h                               |   1 -
 src/qemu/qemu_domain.c                             |  19 +-
 src/qemu/qemu_driver.c                             |  12 -
 src/qemu/qemu_hotplug.c                            |  76 +--
 src/qemu/qemu_migration.c                          |  41 +-
 src/qemu/qemu_parse_command.c                      |  41 +-
 src/qemu/qemu_process.c                            | 386 ++++++++-----
 src/qemu/qemu_process.h                            |   3 +
 src/qemu/test_libvirtd_qemu.aug.in                 |   1 -
 src/security/virt-aa-helper.c                      |  15 +-
 src/vbox/vbox_common.c                             |  30 +-
 src/vbox/vbox_tmpl.c                               |  34 +-
 src/vbox/vbox_uniformed_api.h                      |   4 +-
 src/vmx/vmx.c                                      |  54 +-
 src/vz/vz_sdk.c                                    |  30 +-
 src/xenconfig/xen_common.c                         |  74 +--
 src/xenconfig/xen_sxpr.c                           |  71 +--
 src/xenconfig/xen_xl.c                             |  45 +-
 .../generic-graphics-listen-back-compat-ports.xml  |  30 +
 .../generic-graphics-vnc-listen-attr-only.xml      |  28 +
 ...generic-graphics-vnc-listen-element-minimal.xml |  30 +
 ...aphics-vnc-listen-element-with-address-port.xml |  30 +
 ...ic-graphics-vnc-listen-element-with-address.xml |  30 +
 .../generic-graphics-vnc-manual-port.xml           |  28 +
 .../generic-graphics-vnc-minimal.xml               |  28 +
 .../generic-graphics-vnc-socket-listen.xml         |  30 +
 .../generic-graphics-vnc-socket.xml                |  28 +
 .../generic-graphics-listen-back-compat-ports.xml  |  30 +
 .../generic-graphics-listen-back-compat.xml        |   2 +-
 .../generic-graphics-vnc-listen-attr-only.xml      |  30 +
 ...generic-graphics-vnc-listen-element-minimal.xml |  30 +
 ...aphics-vnc-listen-element-with-address-port.xml |  30 +
 ...ic-graphics-vnc-listen-element-with-address.xml |  30 +
 .../generic-graphics-vnc-manual-port.xml           |  30 +
 .../generic-graphics-vnc-minimal.xml               |  30 +
 .../generic-graphics-vnc-socket-listen.xml         |  30 +
 .../generic-graphics-vnc-socket.xml                |  30 +
 tests/genericxml2xmltest.c                         |  10 +
 .../qemuargv2xml-graphics-vnc-policy.xml           |   2 +-
 .../qemuargv2xml-graphics-vnc-sasl.xml             |   2 +-
 .../qemuargv2xml-graphics-vnc-socket.xml           |   4 +-
 .../qemuargv2xml-graphics-vnc-tls.xml              |   2 +-
 .../qemuargv2xml-graphics-vnc-websocket.xml        |   2 +-
 .../qemuargv2xmldata/qemuargv2xml-graphics-vnc.xml |   2 +-
 ...qemuhotplug-console-compat-2+console-virtio.xml |   2 +-
 .../qemuhotplug-graphics-spice-listen-network.xml  |   2 +-
 .../qemuxml2argv-console-compat-2.xml              |   2 +-
 .../qemuxml2argv-controller-order.args             |   2 +-
 ...muxml2argv-graphics-spice-auto-unix-socket.args |  21 +
 ...emuxml2argv-graphics-spice-auto-unix-socket.xml |  30 +
 .../qemuxml2argv-graphics-spice-unix-socket.args   |  20 +
 .../qemuxml2argv-graphics-spice-unix-socket.xml    |  30 +
 ...qemuxml2argv-graphics-vnc-auto-unix-socket.args |  20 +
 .../qemuxml2argv-graphics-vnc-auto-unix-socket.xml |  30 +
 .../qemuxml2argv-graphics-vnc-autosocket.args      |  22 -
 .../qemuxml2argv-graphics-vnc-autosocket.xml       |  34 --
 .../qemuxml2argv-graphics-vnc-unix-socket.args     |  20 +
 .../qemuxml2argv-graphics-vnc-unix-socket.xml      |  30 +
 .../qemuxml2argv-hugepages-numa.args               |   2 +-
 .../qemuxml2argv-video-device-pciaddr-default.args |   2 +-
 .../qemuxml2argv-video-virtio-gpu-spice-gl.args    |   2 +-
 tests/qemuxml2argvtest.c                           |   8 +
 .../qemuxml2xmlout-graphics-listen-network.xml     |   2 +-
 .../qemuxml2xmlout-graphics-listen-network2.xml    |   4 +-
 ...uxml2xmlout-graphics-spice-auto-unix-socket.xml |  35 ++
 .../qemuxml2xmlout-graphics-spice-compression.xml  |   2 +-
 .../qemuxml2xmlout-graphics-spice-qxl-vga.xml      |   2 +-
 .../qemuxml2xmlout-graphics-spice-timeout.xml      |   4 +-
 .../qemuxml2xmlout-graphics-spice-unix-socket.xml  |  35 ++
 .../qemuxml2xmlout-graphics-spice.xml              |   2 +-
 ...emuxml2xmlout-graphics-vnc-auto-unix-socket.xml |  35 ++
 .../qemuxml2xmlout-graphics-vnc-autosocket.xml     |  39 --
 .../qemuxml2xmlout-graphics-vnc-no-listen-attr.xml |   2 +-
 .../qemuxml2xmlout-graphics-vnc-sasl.xml           |   2 +-
 .../qemuxml2xmlout-graphics-vnc-tls.xml            |   2 +-
 .../qemuxml2xmlout-graphics-vnc-unix-socket.xml    |  35 ++
 .../qemuxml2xmlout-graphics-vnc-websocket.xml      |   2 +-
 .../qemuxml2xmlout-graphics-vnc.xml                |   2 +-
 .../qemuxml2xmlout-interface-server.xml            |   4 +-
 .../qemuxml2xmlout-net-bandwidth.xml               |   4 +-
 .../qemuxml2xmlout-net-bandwidth2.xml              |   4 +-
 .../qemuxml2xmlout-pci-bridge.xml                  |   2 +-
 ...emuxml2xmlout-seclabel-dynamic-none-relabel.xml |   2 +-
 .../qemuxml2xmlout-serial-spiceport.xml            |   2 +-
 .../qemuxml2xmlout-video-virtio-gpu-spice-gl.xml   |   3 +-
 tests/qemuxml2xmltest.c                            |  11 +-
 tests/sexpr2xmldata/sexpr2xml-curmem.xml           |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml      |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml  |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml    |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml  |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml     |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml  |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml  |   4 +-
 .../sexpr2xml-fv-serial-dev-2-ports.xml            |   4 +-
 .../sexpr2xml-fv-serial-dev-2nd-port.xml           |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml   |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml   |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml   |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml    |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml  |   4 +-
 .../sexpr2xml-fv-serial-tcp-telnet.xml             |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml    |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml    |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml   |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml     |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-sound.xml         |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml      |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml     |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-utc.xml           |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv-v2.xml            |   4 +-
 tests/sexpr2xmldata/sexpr2xml-fv.xml               |   4 +-
 tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml  |   4 +-
 .../sexpr2xml-pv-vfb-new-vncdisplay.xml            |   2 +-
 tests/sexpr2xmldata/sexpr2xml-pv-vfb-new.xml       |   2 +-
 .../sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml  |   4 +-
 tests/sexpr2xmldata/sexpr2xml-vif-rate.xml         |   4 +-
 tests/vmx2xmldata/vmx2xml-graphics-vnc.xml         |   4 +-
 .../test-disk-positional-parms-full.xml            |   2 +-
 .../test-disk-positional-parms-partial.xml         |   2 +-
 ...est-fullvirt-direct-kernel-boot-bogus-extra.xml |   2 +-
 .../test-fullvirt-direct-kernel-boot-extra.xml     |   2 +-
 .../test-fullvirt-direct-kernel-boot.xml           |   2 +-
 tests/xlconfigdata/test-fullvirt-multiusb.xml      |   2 +-
 tests/xlconfigdata/test-fullvirt-nohap.xml         |   2 +-
 tests/xlconfigdata/test-new-disk.xml               |   2 +-
 tests/xlconfigdata/test-rbd-multihost-noauth.xml   |   2 +-
 tests/xlconfigdata/test-spice-features.xml         |   2 +-
 tests/xlconfigdata/test-spice.xml                  |   2 +-
 tests/xlconfigdata/test-vif-rate.xml               |   2 +-
 tests/xmconfigdata/test-escape-paths.xml           |   2 +-
 .../xmconfigdata/test-fullvirt-default-feature.xml |   2 +-
 tests/xmconfigdata/test-fullvirt-force-hpet.xml    |   2 +-
 tests/xmconfigdata/test-fullvirt-force-nohpet.xml  |   2 +-
 tests/xmconfigdata/test-fullvirt-localtime.xml     |   2 +-
 tests/xmconfigdata/test-fullvirt-net-netfront.xml  |   2 +-
 tests/xmconfigdata/test-fullvirt-new-cdrom.xml     |   2 +-
 tests/xmconfigdata/test-fullvirt-nohap.xml         |   2 +-
 tests/xmconfigdata/test-fullvirt-parallel-tcp.xml  |   2 +-
 .../test-fullvirt-serial-dev-2-ports.xml           |   2 +-
 .../test-fullvirt-serial-dev-2nd-port.xml          |   2 +-
 tests/xmconfigdata/test-fullvirt-serial-file.xml   |   2 +-
 tests/xmconfigdata/test-fullvirt-serial-null.xml   |   2 +-
 tests/xmconfigdata/test-fullvirt-serial-pipe.xml   |   2 +-
 tests/xmconfigdata/test-fullvirt-serial-pty.xml    |   2 +-
 tests/xmconfigdata/test-fullvirt-serial-stdio.xml  |   2 +-
 .../test-fullvirt-serial-tcp-telnet.xml            |   2 +-
 tests/xmconfigdata/test-fullvirt-serial-tcp.xml    |   2 +-
 tests/xmconfigdata/test-fullvirt-serial-udp.xml    |   2 +-
 tests/xmconfigdata/test-fullvirt-serial-unix.xml   |   2 +-
 tests/xmconfigdata/test-fullvirt-sound.xml         |   2 +-
 tests/xmconfigdata/test-fullvirt-usbmouse.xml      |   2 +-
 tests/xmconfigdata/test-fullvirt-usbtablet.xml     |   2 +-
 tests/xmconfigdata/test-fullvirt-utc.xml           |   2 +-
 tests/xmconfigdata/test-no-source-cdrom.xml        |   4 +-
 tests/xmconfigdata/test-paravirt-net-e1000.xml     |   2 +-
 tests/xmconfigdata/test-paravirt-net-vifname.xml   |   2 +-
 .../test-paravirt-new-pvfb-vncdisplay.xml          |   2 +-
 tests/xmconfigdata/test-paravirt-new-pvfb.xml      |   2 +-
 tests/xmconfigdata/test-pci-devs.xml               |   4 +-
 173 files changed, 2392 insertions(+), 1014 deletions(-)
 create mode 100644 tests/genericxml2xmlindata/generic-graphics-listen-back-compat-ports.xml
 create mode 100644 tests/genericxml2xmlindata/generic-graphics-vnc-listen-attr-only.xml
 create mode 100644 tests/genericxml2xmlindata/generic-graphics-vnc-listen-element-minimal.xml
 create mode 100644 tests/genericxml2xmlindata/generic-graphics-vnc-listen-element-with-address-port.xml
 create mode 100644 tests/genericxml2xmlindata/generic-graphics-vnc-listen-element-with-address.xml
 create mode 100644 tests/genericxml2xmlindata/generic-graphics-vnc-manual-port.xml
 create mode 100644 tests/genericxml2xmlindata/generic-graphics-vnc-minimal.xml
 create mode 100644 tests/genericxml2xmlindata/generic-graphics-vnc-socket-listen.xml
 create mode 100644 tests/genericxml2xmlindata/generic-graphics-vnc-socket.xml
 create mode 100644 tests/genericxml2xmloutdata/generic-graphics-listen-back-compat-ports.xml
 create mode 100644 tests/genericxml2xmloutdata/generic-graphics-vnc-listen-attr-only.xml
 create mode 100644 tests/genericxml2xmloutdata/generic-graphics-vnc-listen-element-minimal.xml
 create mode 100644 tests/genericxml2xmloutdata/generic-graphics-vnc-listen-element-with-address-port.xml
 create mode 100644 tests/genericxml2xmloutdata/generic-graphics-vnc-listen-element-with-address.xml
 create mode 100644 tests/genericxml2xmloutdata/generic-graphics-vnc-manual-port.xml
 create mode 100644 tests/genericxml2xmloutdata/generic-graphics-vnc-minimal.xml
 create mode 100644 tests/genericxml2xmloutdata/generic-graphics-vnc-socket-listen.xml
 create mode 100644 tests/genericxml2xmloutdata/generic-graphics-vnc-socket.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-auto-unix-socket.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-auto-unix-socket.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-unix-socket.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-unix-socket.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-auto-unix-socket.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-auto-unix-socket.xml
 delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-autosocket.args
 delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-autosocket.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-unix-socket.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-unix-socket.xml
 create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-auto-unix-socket.xml
 create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-unix-socket.xml
 create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-vnc-auto-unix-socket.xml
 delete mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-vnc-autosocket.xml
 create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-vnc-unix-socket.xml

-- 
2.8.2




More information about the libvir-list mailing list