1. 30 1月, 2020 1 次提交
  2. 27 1月, 2020 1 次提交
    • D
      qemu: introduce a new "virt-qemu-run" program · d6006672
      Daniel P. Berrangé 提交于
      The previous "QEMU shim" proof of concept was taking an approach of only
      caring about initial spawning of the QEMU process. It was then
      registered with the libvirtd daemon who took over management of it. The
      intent was that later libvirtd would be refactored so that the shim
      retained control over the QEMU monitor and libvirt just forwarded APIs
      to each shim as needed. This forwarding of APIs would require quite alot
      of significant refactoring of libvirtd to achieve.
      
      This impl thus takes a quite different approach, explicitly deciding to
      keep the VMs completely separate from those seen & managed by libvirtd.
      Instead it uses the new "qemu:///embed" URI scheme to embed the entire
      QEMU driver in the shim, running with a custom root directory.
      
      Once the driver is initialization, the shim starts a VM and then waits
      to shutdown automatically when QEMU shuts down, or should kill QEMU if
      it is terminated itself. This ought to use the AUTO_DESTROY feature but
      that is not yet available in embedded mode, so we rely on installing a
      few signal handlers to gracefully kill QEMU. This isn't reliable if
      we crash of course, but you can restart with the same root dir.
      
      Note this program does not expose any way to manage the QEMU process,
      since there's no RPC interface enabled. It merely starts the VM and
      cleans up when the guest shuts down at the end. This program is
      installed to /usr/bin/virt-qemu-run enabling direct use by end users.
      Most use cases will probably want to integrate the concept directly
      into their respective application codebases. This standalone binary
      serves as a nice demo though, and also provides a way to measure
      performance of the startup process quite simply.
      Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      d6006672
  3. 21 12月, 2019 1 次提交
  4. 11 12月, 2019 7 次提交
  5. 10 12月, 2019 1 次提交
    • E
      backup: Document new XML for backups · 252958ee
      Eric Blake 提交于
      Prepare for new backup APIs by describing the XML that will represent
      a backup.  The XML resembles snapshots and checkpoints in being able
      to select actions for a set of disks, but has other differences.  It
      can support both push model (the hypervisor does the backup directly
      into the destination file) and pull model (the hypervisor exposes an
      access port for a third party to grab what is necessary).  Add
      testsuite coverage for some minimal uses of the XML.
      
      The <disk> element within <domainbackup> tries to model the same
      elements as a <disk> under <domain>, but sharing the RNG grammar
      proved to be hairy. That is in part because while <domain> use
      <source> to describe a host resource in use by the guest, a backup job
      is using a host resource that is not visible to the guest: a push
      backup action is instead describing a <target> (which ultimately could
      be a remote network resource, but for simplicity the RNG just
      validates a local file for now), and a pull backup action is instead
      describing a temporary local file <scratch> (which probably should not
      be a remote resource).  A future refactoring may thus introduce some
      way to parameterize RNG to accept <disk type='FOO'>...</disk> so that
      the name of the subelement can be <source> for domain, or <target> or
      <scratch> as needed for backups. Future patches may improve this area
      of code.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
      Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
      Reviewed-by: NJán Tomko <jtomko@redhat.com>
      252958ee
  6. 04 12月, 2019 2 次提交
  7. 03 12月, 2019 1 次提交
  8. 29 11月, 2019 1 次提交
  9. 16 11月, 2019 1 次提交
  10. 12 11月, 2019 1 次提交
  11. 11 11月, 2019 1 次提交
  12. 09 11月, 2019 1 次提交
  13. 14 10月, 2019 1 次提交
    • D
      build: probe for glib-2 library in configure · 58e7c9bc
      Daniel P. Berrangé 提交于
      Prepare for linking with glib by probing for it at configure
      time. Per supported platforms target, the min glib versions on
      relevant distros are:
      
        RHEL-8: 2.56.1
        RHEL-7: 2.50.3
        Debian (Buster): 2.58.3
        Debian (Stretch): 2.50.3
        OpenBSD (Ports): 2.58.3
        FreeBSD (Ports): 2.56.3
        OpenSUSE Leap 15: 2.54.3
        SLE12-SP2: 2.48.2
        Ubuntu (Xenial): 2.48.0
        macOS (Homebrew): 2.56.0
      
      This suggests that a minimum glib of 2.48 is a reasonable target.
      This aligns with the minimum version required by qemu too.
      
      We must disable the bad-function-cast warning as various GLib APIs
      and macros will trigger this.
      Reviewed-by: NJán Tomko <jtomko@redhat.com>
      Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      58e7c9bc
  14. 27 9月, 2019 1 次提交
  15. 26 9月, 2019 1 次提交
  16. 11 9月, 2019 1 次提交
  17. 09 9月, 2019 1 次提交
    • D
      docs: remove devhelp API docs · 926b7b6e
      Daniel P. Berrangé 提交于
      We currently generate two completely separate API references for the
      libvirt public API. One at 'docs/html/' and one at 'docs/devhelp/'.
      Both are published on the website, but we only link to content in
      the 'docs/html/' pages.
      
      Both are installed in the libvirt-docs sub-RPM, with a full copy
      of the website including 'docs/html/' in /usr/share/docs/libvirt-docs,
      while the 'docs/devhelp/' content goes to /usr/share/gtk-doc/. The
      latter was broken for years until:
      
        commit ca6f6025
        Author: Andrea Bolognani <abologna@redhat.com>
        Date:   Fri May 10 14:54:52 2019 +0200
      
          docs: Introduce $(devhelphtml_generated)
      
          Our XSLT magic generates one Devhelp-compatible HTML file
          per documentation module, but so far we have only shipped
          and installed documentation for virterror.
      
          Now that we have $(modules), however, we can generate the
          list of files the same way we do for regular documentation
          and make sure we always ship and install everything.
      
      That this bug went unnoticed for so long is a sign of how few
      people are using the devhelp docs. The only commits to the devhelp
      code since it was first introduced have been fixing various build
      problems that hit.
      
      The only obvious difference between the two sets of docs is the CSS
      styling in use. Overall devhelp does not look compelling enough to
      justify having two duplicated sets of API docs. Eliminating it will
      reduce the amount of XSL code we are carrying in the tree which is
      an attractive benefit.
      Reviewed-by: NPavel Hrdina <phrdina@redhat.com>
      Reviewed-by: NAndrea Bolognani <abologna@redhat.com>
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      926b7b6e
  18. 04 9月, 2019 1 次提交
  19. 27 8月, 2019 4 次提交
  20. 09 8月, 2019 11 次提交