libvirt/docs
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
..
css docs: Adapt to semantic tag usage of docutils-0.17 and later 2022-04-13 13:02:06 +02:00
fonts docs: Move font definitions with other CSS files 2022-01-04 15:47:28 +01:00
gitdm gitdm: Add other email into Red Hat company list 2021-10-12 16:46:45 +02:00
go docs: Simplify passing of 'href_base' XSL variable 2022-04-12 12:53:32 +02:00
html meson: add rule to build and install only web documentation 2020-08-03 09:27:06 +02:00
images docs: Drop node.gif 2022-01-21 10:17:11 +01:00
js meson: add rule to build and install only web documentation 2020-08-03 09:27:06 +02:00
kbase qemu_process.c: Propagate hugetlbfs mounts on reconnect 2022-09-23 16:33:48 +02:00
logos docs: fix misc spelling errors reported by codespell 2020-10-05 10:28:37 +01:00
manpages tools: add virt-qemu-qmp-proxy for proxying QMP via libvirt QEMU guests 2022-10-07 14:32:36 +01:00
404.html.in
acl.html.in Prefer https: everywhere where possible 2020-09-01 21:58:46 +02:00
aclpolkit.rst docs: html.in: Convert aclpolkit to rst 2021-03-15 17:31:35 +01:00
advanced-tests.rst lib: Drop internal virXXXPtr typedefs 2021-04-13 17:00:38 +02:00
android-chrome-192x192.png
android-chrome-256x256.png
api_extension.rst docs: Update obsolete reference to formatdomain.html.in 2022-03-22 11:05:09 +01:00
api.rst docs: Remove extra leading slash in 'api' and 'formatdomaincaps' pages 2022-06-01 12:27:10 +02:00
apple-touch-icon.png
apps.rst docs: Update various URLs 2022-05-24 12:19:16 +02:00
auditlog.rst docs: html.in: Convert auditlog to rst 2021-03-15 17:31:57 +01:00
auth.rst docs: auth: Fix a couple of stylistic issues 2021-03-23 17:55:06 +01:00
best-practices.rst Prefer https: for Red Hat websites 2020-09-01 21:58:46 +02:00
bindings.rst docs: update links to listman 2022-06-22 15:29:44 +02:00
browserconfig.xml
bugs.rst docs: bugs: Remove raw HTML anchor 'quality' 2022-04-25 16:33:01 +02:00
cgroups.rst docs: Convert 'cgroups' page to rST 2022-04-01 16:33:19 +02:00
ci-dashboard.rst docs: Move the CI dashboard to its own RST module 2022-07-14 17:31:21 +02:00
ci-runners.rst docs: Provide an article on how to add a custom runner to the project 2022-07-14 17:31:21 +02:00
ci.rst docs: ci: Add a brief section on how to run the CI workload locally 2022-07-15 08:26:38 +02:00
coding-style.rst coding-style: Allow some use of ternary operators 2022-07-26 08:48:48 +02:00
committer-guidelines.rst meson: adjust our documentation to mention meson instead of autoconf 2020-08-03 09:27:09 +02:00
compiling.rst docs: compiling: Add link to latest openSUSE libvirt package 2022-09-30 09:05:59 -06:00
contact.rst docs: update links to listman 2022-06-22 15:29:44 +02:00
contribute.rst docs: contact: Remove HTML anchors and adjust documents using them 2022-04-25 16:33:01 +02:00
csharp.rst docs: convert 'csharp' page to rst 2022-04-07 15:10:26 +02:00
daemons.rst docs: Move 'tlscerts' page to 'kbase/' 2022-04-07 15:10:26 +02:00
dbus.rst docs: convert 'dbus' page to rst 2022-04-07 15:10:26 +02:00
docs.rst docs: Add article about handling upstream issues 2022-07-26 16:35:57 +02:00
downloads.rst docs: downloads: fix link to libvirt GitLab group 2022-03-11 14:29:31 +01:00
drivers.rst docs: drivers: Mention KVM/HVF in the link of qemu driver 2022-05-19 10:10:31 +02:00
drvbhyve.rst docs: drvbhve: Fix local anchor links 2022-04-19 16:19:48 +02:00
drvch.rst Add basic driver for the Cloud-Hypervisor 2021-06-04 10:56:06 +01:00
drvesx.rst Correct links to TLS certificate setup page 2022-04-25 16:33:01 +02:00
drvhyperv.rst docs: Update various URLs 2022-05-24 12:19:16 +02:00
drvlxc.rst docs: formatdomain: Remove 'elementsOSContainer' anchor 2022-06-01 12:27:09 +02:00
drvnodedev.rst docs: Convert 'formatnode' page to rst 2022-04-19 16:19:48 +02:00
drvopenvz.rst docs: Convert 'drvopenvz' page to rST 2022-04-01 16:33:19 +02:00
drvqemu.rst qemu: Formally deprecate support for qemu < 4.2 2022-08-11 14:38:31 +02:00
drvsecret.rst docs: Convert 'drvsecret' page to rST 2022-04-01 16:33:19 +02:00
drvtest.rst docs: Convert 'drvtest' page to rST 2022-04-01 16:33:19 +02:00
drvvbox.rst docs: Convert 'drvvbox' page to rST 2022-04-01 16:33:19 +02:00
drvvirtuozzo.rst docs: Convert 'drvvirtuozzo' page to rST 2022-04-01 16:33:19 +02:00
drvvmware.rst docs: Convert 'drvvmware' page to rST 2022-04-01 16:33:19 +02:00
drvxen.rst docs: Convert 'drvxen' page to rST 2022-04-01 16:33:19 +02:00
errors.rst docs: Convert 'errors' page to rST 2022-03-08 17:40:47 +01:00
favicon-16x16.png
favicon-32x32.png
favicon.ico
firewall.rst docs: Convert 'formatnwfilter' page to rst 2022-04-19 16:19:48 +02:00
format.rst docs: Convert 'format' page to rST 2022-04-01 16:33:19 +02:00
formatbackup.rst docs: formatdomain: Remove 'elementsDisks' anchor 2022-06-01 12:27:09 +02:00
formatcaps.rst docs: formatcaps: Fix anchors of links into formatdomain.rst 2022-06-01 12:27:10 +02:00
formatcheckpoint.rst docs: formatdomain: Remove 'elementsDisks' anchor 2022-06-01 12:27:09 +02:00
formatdomain.rst docs: formatdomain: Fix small typos and syntax errors 2022-08-25 18:58:08 +02:00
formatdomaincaps.rst domcaps: Introduce TPM backendVersion 2022-07-13 11:55:06 +02:00
formatnetwork.rst docs: fix syntax errors in IPv6 NAT example XML 2022-08-23 16:33:20 +01:00
formatnetworkport.rst docs: formatdomain: Remove 'elementsNICSDirect' anchor 2022-06-01 12:27:09 +02:00
formatnode.rst schema: nodedev: Fix schema attribute value for the 'vport_ops' capability 2022-09-01 13:11:09 +02:00
formatnwfilter.rst docs: Convert 'formatnwfilter' page to rst 2022-04-19 16:19:48 +02:00
formatsecret.rst docs: formatdomain: Remove 'elementsTpm' anchor 2022-06-01 12:27:10 +02:00
formatsnapshot.rst docs: formatdomain: Remove 'seclabel' anchor 2022-06-01 12:27:10 +02:00
formatstorage.rst Remove support for building the sheepdog storage driver backend 2022-09-01 13:11:09 +02:00
formatstoragecaps.rst docs: Convert 'formatstoragecaps' page to rST 2022-04-07 17:15:52 +02:00
formatstorageencryption.rst docs: formatstorageencryption: Use correct anchor into formatsecret page 2022-06-01 12:27:10 +02:00
glib-adoption.rst docs: glib-adoption: add string arrays and objects 2020-10-02 14:10:44 +02:00
goals.rst docs: Convert 'goals' to rST 2022-03-08 17:40:47 +01:00
governance.rst docs: governance: Remove unused HTML anchors 2022-04-25 16:33:01 +02:00
hacking.rst Drop YouCompleteMe and color_coded integration 2022-03-17 14:35:05 +01:00
hooks.rst docs: Convert 'hooks' page to rST 2022-04-01 16:33:20 +02:00
index.html.in docs: Add support page for libvirt on macOS 2022-01-25 16:54:44 +01:00
issue-handling.rst docs: Add article about handling upstream issues 2022-07-26 16:35:57 +02:00
java.rst docs: Convert 'java' page to rST 2022-04-01 16:33:20 +02:00
libvirt-go-xml.rst docs: introduce stubs for new libvirt Go packages 2021-06-07 17:04:14 +01:00
libvirt-go.rst docs: introduce stubs for new libvirt Go packages 2021-06-07 17:04:14 +01:00
logging.rst docs: logging: Replace example by link to kbase/debuglogs.html 2022-04-01 16:33:20 +02:00
macos.rst docs: Add support page for libvirt on macOS 2022-01-25 16:54:44 +01:00
manifest.json
meson.build docs: Add article about handling upstream issues 2022-07-26 16:35:57 +02:00
migration.rst docs: Move all images to a subdirectory 2022-01-04 15:47:25 +01:00
mstile-150x150.png
newapi.xsl docs: newapi: Consider also 'https://' links in the API generator XSL 2022-09-01 13:11:09 +02:00
newreposetup.rst docs: Document CIRRUS_GITHUB_REPO variable 2020-06-11 12:03:41 +02:00
nss.rst docs: Convert 'nss' page to rST 2022-03-10 17:52:07 +01:00
page.xsl docs: page.xsl: Fix link to 'mailing-lists' section 2022-06-01 12:27:10 +02:00
pci-addresses.rst Fix spelling 2021-04-15 15:42:21 +02:00
pci-hotplug.rst docs: pci-hotplug: Fix local anchor links 2022-04-19 16:19:48 +02:00
php.rst docs: Convert 'php' page to rST 2022-04-01 16:33:20 +02:00
platforms.rst docs: Fix spelling for Homebrew 2022-04-14 11:54:28 +02:00
programming-languages.rst Fix capitalization "CLang" -> "Clang" 2020-11-12 15:01:42 +01:00
python.rst docs: convert 'python' page to rst 2022-04-07 15:10:26 +02:00
remote.rst docs: remote: Fix anchor names in links to uri.html 2022-06-01 12:27:10 +02:00
securityprocess.rst docs: contact: Remove HTML anchors and adjust documents using them 2022-04-25 16:33:01 +02:00
site.xsl docs: Simplify passing of 'href_base' XSL variable 2022-04-12 12:53:32 +02:00
storage.rst Remove support for building the sheepdog storage driver backend 2022-09-01 13:11:09 +02:00
strategy.rst docs: Convert 'strategy' to rST 2022-03-08 17:40:47 +01:00
styleguide.rst docs: Document list-tables as recommended 2020-05-11 13:55:27 +02:00
submitting-patches.rst docs: patches: Add a note about reviews and contacting developers 2022-07-26 16:35:57 +02:00
support.rst docs: Convert 'support' page to rST 2022-03-08 17:40:47 +01:00
testapi.rst docs: Convert 'testapi' page to rST 2022-03-10 17:52:07 +01:00
testing.rst docs: Fix typos 2022-07-18 11:10:55 +02:00
testtck.rst docs: Fix typos 2022-07-18 11:10:55 +02:00
uri.rst uri: Fix link to qemu KVM example config 2022-06-01 12:27:10 +02:00
windows.rst docs: Update URL for MinGW 2022-05-24 12:19:15 +02:00