Libvirt provides a portable, long term stable C API for managing the virtualization technologies provided by many operating systems. It includes support for QEMU, KVM, Xen, LXC, bhyve, Virtuozzo, VMware vCenter and ESX, VMware Desktop, Hyper-V, VirtualBox and the POWER Hypervisor.
Go to file
Laine Stump 9658e70f7d conf/openvz: eliminate incorrect/undocumented use of <source dev='blah'/>
When support for <interface type='ethernet'> was added in commit
9a4b705f back in 2010, it erroneously looked at <source dev='blah'/>
for a user-specified guest-side interface name. This was never
documented though. (that attribute already existed at the time in the
data.ethernet union member of virDomainNetDef, but apparently had no
practical use - it was only used as a storage place for a NetDef's
bridge name during qemuDomainXMLToNative(), but even then that was
never used for anything).

When support for similar guest-side device naming was added to the lxc
driver several years later, it was put in a new subelement <guest
dev='blah'/>.

In the intervening years, since there was no validation that
ethernet.dev was NULL in the other drivers that didn't actually use
it, innocent souls who were adding other features assuming they needed
to account for non-NULL ethernet.dev when really they didn't, so
little bits of the usual pointless cargo-cult code showed up.

This patch not only switches the openvz driver to use the documented
<guest dev='blah'/> notation for naming the guest-side device (just in
case anyone is still using the openvz driver), and logs an error if
anyone tries to set <source dev='blah'/> for a type='ethernet'
interface, it also removes the cargo-cult uses of ethernet.dev and
<source dev='blah'/>, and eliminates if from the RNG and from
virDomainNetDef.

NB: I decided on this course of action after mentioning the
inconsistency here:

  https://www.redhat.com/archives/libvir-list/2016-May/msg02038.html

and getting encouragement do eliminate it in a later IRC discussion
with danpb.
2016-06-26 19:33:08 -04:00
.gnulib@246b3b2880 maint: update to latest gnulib 2016-05-27 14:06:45 -06:00
build-aux prohibit-duplicate-header: print file name and line 2016-06-23 12:48:40 +02:00
daemon admin: enable both admin API functionality and tarball distribution 2016-06-26 00:21:06 +02:00
docs conf/openvz: eliminate incorrect/undocumented use of <source dev='blah'/> 2016-06-26 19:33:08 -04:00
examples examples: admin: Add some examples for the new admin APIs 2016-06-26 00:21:06 +02:00
gnulib maint: update to latest gnulib 2016-01-04 13:56:35 -07:00
include/libvirt admin: enable both admin API functionality and tarball distribution 2016-06-26 00:21:06 +02:00
m4 virt-login-shell: mark as Linux only 2016-06-13 12:51:17 +03:00
po util: Move and rename virStorageAuthDefParseSecret 2016-06-23 12:30:28 -04:00
src conf/openvz: eliminate incorrect/undocumented use of <source dev='blah'/> 2016-06-26 19:33:08 -04:00
tests conf/openvz: eliminate incorrect/undocumented use of <source dev='blah'/> 2016-06-26 19:33:08 -04:00
tools Promote storage pool refresh lifecycle event to top level event 2016-06-24 18:26:11 +01:00
.ctags maint: Make ctags work out of the box 2013-07-18 08:47:21 +02:00
.dir-locals.el build: avoid tabs that failed syntax-check 2012-09-06 09:43:46 -06:00
.gitignore examples: admin: Add some examples for the new admin APIs 2016-06-26 00:21:06 +02:00
.gitmodules
.mailmap maint: update .mailmap for recent contributions 2015-03-20 06:17:55 -06:00
AUTHORS.in Change maintainers list 2016-02-12 13:10:05 +03:00
autobuild.sh maint: Switch to xz compressed PAX release archives 2016-06-15 18:53:34 +02:00
autogen.sh maint: improve usage of autogen's --no-git 2015-02-06 11:35:29 -07:00
bootstrap maint: update to latest gnulib 2016-05-26 10:47:03 -06:00
bootstrap.conf build: use gnulib's unsetenv 2016-05-28 23:13:26 +02:00
cfg.mk examples: admin: Add some examples for the new admin APIs 2016-06-26 00:21:06 +02:00
ChangeLog-old Fix typos in src/* 2014-04-21 16:49:08 -06:00
config-post.h libvirt-lxc: add virDomainLxcEnterCGroup API 2016-06-10 11:02:53 +01:00
configure.ac configure: remove definition of HAVE_GLIBC_RPCGEN 2016-06-17 15:35:46 +02:00
COPYING maint: follow recommended practice for using LGPL 2013-05-20 14:15:21 -06:00
COPYING.LESSER maint: Remove control characters from LGPL license file 2015-09-25 09:16:24 +02:00
HACKING virtestmock: Print invalid file accesses into a file 2016-05-14 09:46:23 +02:00
libvirt-admin.pc.in Add libvirt-admin library 2015-06-16 13:46:20 +02:00
libvirt-lxc.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt-qemu.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt.spec.in spec: distribute admin API within libvirt-client package 2016-06-26 00:21:07 +02:00
Makefile.am admin: enable both admin API functionality and tarball distribution 2016-06-26 00:21:06 +02:00
Makefile.nonreentrant cfg.mk: use a single regex for all non-reentrant functions 2016-06-15 15:00:56 +02:00
mingw-libvirt.spec.in maint: Switch to xz compressed PAX release archives 2016-06-15 18:53:34 +02:00
README
README-hacking docs: update README-hacking 2014-05-06 16:20:24 -06:00
run.in Add PKG_CONFIG_PATH to run.in script. 2014-06-26 14:32:35 +01:00
TODO

         LibVirt : simple API for virtualization

  Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes). It is free software
available under the GNU Lesser General Public License. Virtualization of
the Linux Operating System means the ability to run multiple instances of
Operating Systems concurrently on a single hardware system where the basic
resources are driven by a Linux instance. The library aim at providing
long term stable C API initially for the Xen paravirtualization but
should be able to integrate other virtualization mechanisms if needed.

Daniel Veillard <veillard@redhat.com>