1. 30 1月, 2020 1 次提交
    • L
      conf: parse/format <teaming> subelement of <interface> · fb0509d0
      Laine Stump 提交于
      The subelement <teaming> of <interface> devices is used to configure a
      simple teaming association between two interfaces in a domain. Example:
      
        <interface type='bridge'>
          <source bridge='br0'/>
          <model type='virtio'/>
          <mac address='00:11:22:33:44:55'/>
          <alias name='ua-backup0'/>
          <teaming type='persistent'/>
        </interface>
        <interface type='hostdev'>
          <source>
            <address type='pci' bus='0x02' slot='0x10' function='0x4'/>
          </source>
          <mac address='00:11:22:33:44:55'/>
          <teaming type='transient' persistent='ua-backup0'/>
        </interface>
      
      The interface with <teaming type='persistent'/> is assumed to always
      be present, while the interface with type='transient' may be be
      unplugged and later re-plugged; the persistent='blah' attribute (and
      in the one currently available implementation, also the matching MAC
      addresses) is what associates the two devices with each other. It is
      up to the hypervisor and the guest network drivers to determine what
      to do with this information.
      Signed-off-by: NLaine Stump <laine@redhat.com>
      Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
      fb0509d0
  2. 29 1月, 2020 9 次提交
  3. 28 1月, 2020 4 次提交
  4. 27 1月, 2020 4 次提交
    • D
      docs: add pages to support Go module package resolution · 201156ec
      Daniel P. Berrangé 提交于
      Currently the libvirt Go modules are accessed by applications using
      their github repository URLs. This is undesirable as we don't want
      applications to have a direct dependancy on a specific source repo
      location. We want to enable applications to use the Go packages via
      the libvirt.org namespace.
      
      When you do "go get libvirt.org/libvirt-go", the Go client will do an
      HTTPS request to that URL, and parse the HTML content to look for a
      <meta> tag which tells it where to the find the GIT repository.
      
         https://golang.org/cmd/go/#hdr-Remote_import_paths
      
      This adds two pages to support this Go module resolution. They are
      not linked from anywhere as we don't expect users to actually look
      at them. If someone does happen upon them, there's some boilerplate
      text to send them off to godoc.org for API documentation.
      
      Since the pages we're adding have a .html extension, we will also
      use a small apache config tweak on the server
      
          RewriteEngine on
          RewriteRule ^/libvirt-go$ /libvirt-go.html [L]
          RewriteRule ^/libvirt-go-xml$ /libvirt-go-xml.html [L]
      Reviewed-by: NJiri Denemark <jdenemar@redhat.com>
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      201156ec
    • 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
    • D
      secrets: add support for running secret driver in embedded mode · 3e9076e7
      Daniel P. Berrangé 提交于
      This enables support for running the secret driver embedded to the
      calling application process using a URI:
      
         secret:///embed?root=/some/path
      
      When using the embedded mode with a root=/var/tmp/embed, the
      driver will use the following paths:
      
             configDir: /var/tmp/embed/etc/secrets
              stateDir: /var/tmp/embed/run/secrets
      
      These are identical whether the embedded driver is privileged
      or unprivileged.
      
      This compares with the system instance which uses
      
             configDir: /etc/libvirt/secrets
              stateDir: /var/lib/libvirt/secrets
      
      When an embedded instance of the secret driver is open, any other
      embedded drivers will automatically use the embedded secret driver.
      Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      3e9076e7
    • D
      qemu: add support for running QEMU driver in embedded mode · 068efae5
      Daniel P. Berrangé 提交于
      This enables support for running QEMU embedded to the calling
      application process using a URI:
      
         qemu:///embed?root=/some/path
      
      Note that it is important to keep the path reasonably short to
      avoid risk of hitting the limit on UNIX socket path names
      which is 108 characters.
      
      When using the embedded mode with a root=/var/tmp/embed, the
      driver will use the following paths:
      
                      logDir: /var/tmp/embed/log/qemu
                 swtpmLogDir: /var/tmp/embed/log/swtpm
               configBaseDir: /var/tmp/embed/etc/qemu
                    stateDir: /var/tmp/embed/run/qemu
               swtpmStateDir: /var/tmp/embed/run/swtpm
                    cacheDir: /var/tmp/embed/cache/qemu
                      libDir: /var/tmp/embed/lib/qemu
             swtpmStorageDir: /var/tmp/embed/lib/swtpm
       defaultTLSx509certdir: /var/tmp/embed/etc/pki/qemu
      
      These are identical whether the embedded driver is privileged
      or unprivileged.
      
      This compares with the system instance which uses
      
                      logDir: /var/log/libvirt/qemu
                 swtpmLogDir: /var/log/swtpm/libvirt/qemu
               configBaseDir: /etc/libvirt/qemu
                    stateDir: /run/libvirt/qemu
               swtpmStateDir: /run/libvirt/qemu/swtpm
                    cacheDir: /var/cache/libvirt/qemu
                      libDir: /var/lib/libvirt/qemu
             swtpmStorageDir: /var/lib/libvirt/swtpm
       defaultTLSx509certdir: /etc/pki/qemu
      
      At this time all features present in the QEMU driver are available when
      running in embedded mode, availability matching whether the embedded
      driver is privileged or unprivileged.
      Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      068efae5
  5. 25 1月, 2020 2 次提交
  6. 24 1月, 2020 1 次提交
  7. 17 1月, 2020 2 次提交
  8. 16 1月, 2020 3 次提交
  9. 15 1月, 2020 2 次提交
  10. 14 1月, 2020 2 次提交
  11. 13 1月, 2020 4 次提交
  12. 10 1月, 2020 4 次提交
  13. 09 1月, 2020 1 次提交
  14. 08 1月, 2020 1 次提交