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
Daniel P. Berrange eea87129f1 Merge virDomainObjListIsDuplicate into virDomainObjListAdd
The duplicate VM checking should be done atomically with
virDomainObjListAdd, so shoud not be a separate function.
Instead just use flags to indicate what kind of checks are
required.

This pair, used in virDomainCreateXML:

   if (virDomainObjListIsDuplicate(privconn->domains, def, 1) < 0)
     goto cleanup;
   if (!(dom = virDomainObjListAdd(privconn->domains,
                                   privconn->caps,
                                   def, false)))
     goto cleanup;

Changes to

   if (!(dom = virDomainObjListAdd(privconn->domains,
                                   privconn->caps,
                                   def,
                                   VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE,
                                   NULL)))
     goto cleanup;

This pair, used in virDomainRestoreFlags:

   if (virDomainObjListIsDuplicate(privconn->domains, def, 1) < 0)
     goto cleanup;
   if (!(dom = virDomainObjListAdd(privconn->domains,
                                   privconn->caps,
                                   def, true)))
     goto cleanup;

Changes to

   if (!(dom = virDomainObjListAdd(privconn->domains,
                                   privconn->caps,
                                   def,
                                   VIR_DOMAIN_OBJ_LIST_ADD_LIVE |
                                   VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE,
                                   NULL)))
     goto cleanup;

This pair, used in virDomainDefineXML:

   if (virDomainObjListIsDuplicate(privconn->domains, def, 0) < 0)
     goto cleanup;
   if (!(dom = virDomainObjListAdd(privconn->domains,
                                   privconn->caps,
                                   def, false)))
     goto cleanup;

Changes to

   if (!(dom = virDomainObjListAdd(privconn->domains,
                                   privconn->caps,
                                   def,
                                   0, NULL)))
     goto cleanup;
2013-02-05 19:22:25 +00:00
.gnulib@819b1c38b9 maint: update to latest gnulib 2013-02-01 09:24:00 -07:00
build-aux Document bracket whitespace rules & add syntax-check rule 2012-11-02 14:00:32 +00:00
daemon build: Regenerate man pages on version bump 2013-01-29 13:23:19 +01:00
docs docs: don't ignore virEvent API 2013-02-01 16:01:45 -07:00
examples examples: Fix balloon event callback 2012-12-11 13:25:50 +01:00
gnulib maint: update to latest gnulib 2013-01-02 09:38:30 -07:00
include libvirt.h.in: document virConnectDomainEventCallback's return value 2013-02-01 08:47:04 +01:00
m4 Fix typo in configure.ac causing $LIBS to gain a copy of $CFLAGS 2013-02-05 18:04:16 +00:00
po Release of libvirt-1.0.2 2013-01-30 10:42:05 +01:00
python Fix missing error constants in libvirt python module 2013-02-05 15:40:20 +00:00
src Merge virDomainObjListIsDuplicate into virDomainObjListAdd 2013-02-05 19:22:25 +00:00
tests tests: reserve more fds for commandtest 2013-02-05 10:47:00 -07:00
tools virsh-secret: Refactor error paths 2013-02-04 14:17:45 +01:00
.dir-locals.el build: avoid tabs that failed syntax-check 2012-09-06 09:43:46 -06:00
.gitignore Ignore '.trs' files 2013-01-30 09:37:03 +01:00
.gitmodules
.mailmap Autogenerate AUTHORS 2012-10-19 12:44:56 -04:00
AUTHORS.in Add John Ferlan to the committers list 2013-02-05 10:59:32 -05:00
autobuild.sh Switch automated builds to use Mingw64 toolchain instead of Mingw32 2012-06-25 10:41:10 +01:00
autogen.sh build: fix incremental autogen.sh when no AUTHORS is present 2012-12-03 14:59:09 -07:00
bootstrap maint: update to latest gnulib 2013-02-01 09:24:00 -07:00
bootstrap.conf build: use autobuild module to make build logs nicer 2013-01-02 16:43:58 -07:00
cfg.mk vbox: Adjust the UTF FREE macros 2013-01-25 16:16:35 -07:00
ChangeLog-old
configure.ac Release of libvirt-1.0.2 2013-01-30 10:42:05 +01:00
COPYING.LIB
HACKING docs: aesthetical cleanups 2013-01-30 09:37:03 +01:00
libvirt.pc.in build: silence warning from autoconf 2012-05-30 09:22:02 -06:00
libvirt.spec.in spec: Fix minor changelog issues 2013-02-05 10:00:32 +01:00
Makefile.am build: Fix AUTHORS generation 2012-12-17 21:17:55 +01:00
Makefile.nonreentrant
mingw-libvirt.spec.in spec: indent %if to make it easier to see conditions 2013-01-21 10:36:14 -07:00
README
README-hacking
run.in Add a virtlockd client as a lock driver impl 2012-12-13 15:26:57 +00: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>