libvirt/tools
Daniel P. Berrangé 83c6d80abc tools: add virt-qemu-qmp-proxy for proxying QMP via libvirt QEMU guests
Libvirt provides QMP passthrough APIs for the QEMU driver and these are
exposed in virsh. It is not especially pleasant, however, using the raw
QMP JSON syntax. QEMU has a tool 'qmp-shell' which can speak QMP and
exposes a human friendly interactive shell. It is not possible to use
this with libvirt managed guest, however, since only one client can
attach to the QMP socket at any point in time. While it would be
possible to configure a second QMP socket for a VM, it may not be
an known requirement at the time the guest is provisioned.

The virt-qmp-proxy tool aims to solve this problem. It opens a UNIX
socket and listens for incoming client connections, speaking QMP on
the connected socket. It will forward any QMP commands received onto
the running libvirt QEMU guest, and forward any replies back to the
QMP client. It will also forward back events.

  $ virsh start demo
  $ virt-qmp-proxy demo demo.qmp &
  $ qmp-shell demo.qmp
  Welcome to the QMP low-level shell!
  Connected to QEMU 6.2.0

  (QEMU) query-kvm
  {
      "return": {
          "enabled": true,
          "present": true
      }
  }

Note this tool of course has the same risks as the raw libvirt
QMP passthrough. It is safe to run query commands to fetch information
but commands which change the QEMU state risk disrupting libvirt's
management of QEMU, potentially resulting in data loss/corruption in
the worst case. Any use of this tool will cause the guest to be marked
as tainted as an warning that it could be in an unexpected state.

Since this tool introduces a python dependency it is not desirable
to include it in any of the existing RPMs in libvirt. This tool is
also QEMU specific, so isn't appropriate to bundle with the generic
tools. Thus a new RPM is introduced 'libvirt-clients-qemu', to
contain additional QEMU specific tools, with extra external deps.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-10-07 14:32:36 +01:00
..
bash-completion meson: Use dicts to initialize cfg_data objects 2022-04-01 15:33:19 +02:00
nss nss: Compare hostname case insensitive 2022-05-27 13:43:14 +02:00
wireshark wireshark: Fix dissector for quad types 2022-03-07 12:37:54 +01:00
libvirt_recover_xattrs.sh tools: fix iterating over argv when recovering xattr 2021-11-30 10:45:35 +00:00
libvirt_win_icon_16x16.ico
libvirt_win_icon_32x32.ico
libvirt_win_icon_48x48.ico
libvirt_win_icon_64x64.ico
libvirt-guests.service.in libvirt-guests: Fix dependency ordering in service file 2022-09-26 13:04:48 +02:00
libvirt-guests.sh.in libvirt-guests: Sync time for autostarted guests 2020-11-04 12:18:05 +01:00
meson.build tools: add virt-qemu-qmp-proxy for proxying QMP via libvirt QEMU guests 2022-10-07 14:32:36 +01:00
virsh_win_icon.rc
virsh-backup.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-backup.h backup: Implement virsh support for backup 2019-12-10 12:41:56 +01:00
virsh-checkpoint.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-checkpoint.h backup: Implement virsh support for checkpoints 2019-07-26 16:48:58 -05:00
virsh-completer-checkpoint.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-checkpoint.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-domain.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-domain.h virsh: Move 'cmdEvent' and all of its machinery to virsh-domain-event.c 2022-03-03 11:06:56 +01:00
virsh-completer-host.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-host.h virsh: Provide completer for CPU architectures 2022-04-04 16:30:44 +02:00
virsh-completer-interface.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-interface.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-network.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-network.h virsh: Introduce net-update --section completer 2022-01-19 16:48:33 +01:00
virsh-completer-nodedev.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-nodedev.h virsh: Provide completer for PCI backend drivers 2022-04-04 16:30:48 +02:00
virsh-completer-nwfilter.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-nwfilter.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-pool.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-pool.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-secret.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-secret.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-snapshot.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-snapshot.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-volume.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-volume.h virsh: Provide completer for vol-wipe algorithms 2022-03-11 09:10:24 +01:00
virsh-completer.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer.h virsh: Introduce virshEnumComplete() 2022-03-15 13:36:56 +01:00
virsh-console.c util: remove virObjectUnref() adapters 2022-07-15 16:44:39 -05:00
virsh-console.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virsh-domain-event.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-domain-event.h virsh: Move 'cmdEvent' and all of its machinery to virsh-domain-event.c 2022-03-03 11:06:56 +01:00
virsh-domain-monitor.c Introduce VIR_DOMAIN_RUNNING_POSTCOPY_FAILED 2022-06-07 17:40:20 +02:00
virsh-domain-monitor.h virsh: Fix virshDomainInterfaceSourceCompleter 2020-01-07 16:12:55 +01:00
virsh-domain.c qemu: Add UNDEFINE_TPM and UNDEFINE_KEEP_TPM flags 2022-10-04 16:34:28 +02:00
virsh-domain.h virsh: Add mode option to domdirtyrate-calc virsh api 2022-02-21 13:34:16 +01:00
virsh-edit.c Use G_GNUC_FALLTHROUGH instead of ATTRIBUTE_FALLTHROUGH 2019-10-15 16:14:19 +02:00
virsh-host.c virsh: Provide completer for CPU architectures 2022-04-04 16:30:44 +02:00
virsh-host.h virsh-host: Avoid 'vir' prefix for locally declared VIR_ENUM* helpers 2021-07-23 09:59:12 +02:00
virsh-interface.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-interface.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virsh-network.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-network.h virsh: Introduce net-update --section completer 2022-01-19 16:48:33 +01:00
virsh-nodedev.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-nodedev.h tools: s/Nodedev/NodeDevice/ 2019-08-09 09:03:53 +02:00
virsh-nwfilter.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-nwfilter.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virsh-pool.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-pool.h virsh-pool: Remove static from virshStoragePoolList{Free,Collect} 2021-06-16 10:32:33 +02:00
virsh-secret.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-secret.h tools: remove unnecessary includes 2020-08-03 15:30:40 +02:00
virsh-snapshot.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-snapshot.h tools: remove unnecessary includes 2020-08-03 15:30:40 +02:00
virsh-util.c virsh: Use proper helper for parsing XML in virshDumpXML 2022-10-06 10:54:25 +02:00
virsh-util.h tools: add helper method for printing an XML document 2022-06-20 10:40:34 +01:00
virsh-volume.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-volume.h virsh: Provide completer for vol-wipe algorithms 2022-03-11 09:10:24 +01:00
virsh.c Remove support for building the sheepdog storage driver backend 2022-09-01 13:11:09 +02:00
virsh.h tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virt-admin-completer.c lib: Drop internal virXXXPtr typedefs 2021-04-13 17:00:38 +02:00
virt-admin-completer.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virt-admin.c virt-admin: Introduce 'daemon-timeout' 2022-07-07 14:35:30 +02:00
virt-admin.h lib: Drop internal virXXXPtr typedefs 2021-04-13 17:00:38 +02:00
virt-host-validate-bhyve.c virt-host-validate-bhyve.c: Reintroduce @ret to virHostValidateBhyve() 2020-05-05 14:45:58 +02:00
virt-host-validate-bhyve.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virt-host-validate-ch.c tools: virt-host-validate: fix memory leak 2021-11-23 16:59:36 +01:00
virt-host-validate-ch.h tools: add virt-host-validate-ch for ch driver 2021-10-12 17:28:35 +02:00
virt-host-validate-common.c virParseVersionString: rename to virStringParseVersion 2022-02-03 14:10:03 +01:00
virt-host-validate-common.h tools: only fail validations if VIR_HOST_VALIDATE_FAIL is set 2021-06-08 08:52:07 +02:00
virt-host-validate-lxc.c virt-host-validate: require freezer for LXC 2018-10-05 15:53:29 +02:00
virt-host-validate-lxc.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virt-host-validate-qemu.c virt-host-validate: Improve failure message when no HW virt is found 2022-06-01 11:58:09 +02:00
virt-host-validate-qemu.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virt-host-validate.c tools: add virt-host-validate-ch for ch driver 2021-10-12 17:28:35 +02:00
virt-login-shell-helper.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virt-login-shell.c build: generate configmake.h in root directory 2020-01-29 14:51:39 +00:00
virt-login-shell.conf virt-login-shell: add ability to auto-detect shell from container 2016-06-10 11:03:02 +01:00
virt-pki-query-dn.c tools: Add virt-pki-query-dn binary 2021-11-12 12:37:29 +01:00
virt-pki-validate.in Correct links to TLS certificate setup page 2022-04-25 16:33:01 +02:00
virt-qemu-qmp-proxy tools: add virt-qemu-qmp-proxy for proxying QMP via libvirt QEMU guests 2022-10-07 14:32:36 +01:00
virt-sanlock-cleanup.in
virt-xml-validate.in virt-xml-validate: Fix incorrect wildcards for XML roots 2022-07-07 12:21:16 +02:00
vsh-table.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
vsh-table.h vsh-table: Ensure NULL terminated arguments to vshTable*() 2021-12-17 15:05:58 +01:00
vsh.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
vsh.h tools: Remove unused includes 2022-06-16 06:43:58 +02:00