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
Eric Blake 35a2f5bc52 blockjob: refactor qemu disk chain permission grants
Previously, snapshot code did its own permission granting (lock
manager, cgroup device controller, and security manager labeling)
inline.  But now that we are adding block-commit and block-copy
which also have to change permissions, it's better to reuse
common code for the task.  While snapshot should fall back to
no access if read-write access failed, block-commit will want to
fall back to read-only access.  The common code doesn't know
whether failure to grant read-write access should revert to no
access (snapshot, block-copy) or read-only access (block-commit).
This code can also be used to revoke access to unused files after
block-pull.

It might be nice to clean things up in a future patch by adding
new functions to the lock manager, cgroup manager, and security
manager that takes a single file name and applies context of a
disk to that file, rather than the current semantics of applying
context to the entire chain already associated to a disk.  That
way, we could avoid the games this patch plays of temporarily
swapping out the disk->src and related fields of the disk.  But
that would involve more code changes, so this patch really is
the smallest hack for doing the necessary work; besides, this
patch is more or less code motion (the hack was already employed
by the snapshot creation code, we are just making it reusable).

* src/qemu/qemu_driver.c (qemuDomainSnapshotCreateSingleDiskActive)
(qemuDomainSnapshotUndoSingleDiskActive): Refactor labeling hacks...
(qemuDomainPrepareDiskChainElement): ...into new function.
2012-10-19 17:49:06 -06:00
.gnulib@2a9edc6f2b build: update gnulib for FreeBSD build 2012-10-03 11:50:02 -06:00
build-aux maint: fix up copyright notice inconsistencies 2012-09-20 16:30:55 -06:00
daemon Add JSON serialization of virNetServerClientPtr objects for process re-exec() 2012-10-16 15:45:55 +01:00
docs storage: match RNG to supported driver types 2012-10-19 17:35:09 -06:00
examples tests: Fix domain-events python test 2012-10-16 16:37:29 +02:00
gnulib build: fix fresh checkout on RHEL5 2012-04-19 17:11:43 -06:00
include Introduce an internal API for handling file based lockspaces 2012-10-16 15:45:55 +01:00
m4 build: avoid -Wno-format on new-enough gcc 2012-10-02 09:48:23 -06:00
po Implement CPU model driver for PowerPC 2012-10-17 10:03:34 +02:00
python Add support for SUSPEND_DISK event 2012-10-15 12:09:10 +02:00
src blockjob: refactor qemu disk chain permission grants 2012-10-19 17:49:06 -06:00
tests storage: treat 'aio' like 'raw' at parse time 2012-10-19 17:35:09 -06:00
tools node_memory: Add new parameter field to tune the new sysfs knob 2012-10-15 17:35:54 +08:00
.dir-locals.el build: avoid tabs that failed syntax-check 2012-09-06 09:43:46 -06:00
.gitignore Autogenerate AUTHORS 2012-10-19 12:44:56 -04:00
.gitmodules
.mailmap Autogenerate AUTHORS 2012-10-19 12:44:56 -04:00
AUTHORS.in Autogenerate AUTHORS 2012-10-19 12:44:56 -04:00
autobuild.sh Switch automated builds to use Mingw64 toolchain instead of Mingw32 2012-06-25 10:41:10 +01:00
autogen.sh build: avoid infinite autogen loop 2012-10-01 09:47:38 -06:00
bootstrap maint: regenerate bootstrap 2012-07-27 09:34:04 -06:00
bootstrap.conf Autogenerate AUTHORS 2012-10-19 12:44:56 -04:00
cfg.mk Autogenerate AUTHORS 2012-10-19 12:44:56 -04:00
ChangeLog-old virterror.c: Fix several spelling mistakes 2012-02-03 11:32:51 -07:00
configure.ac locking: Fix build with sanlock < 2.4 2012-10-16 21:32:05 +02:00
COPYING.LIB
HACKING Various typos and misspellings 2012-10-12 00:03:43 +02:00
libvirt.pc.in build: silence warning from autoconf 2012-05-30 09:22:02 -06:00
libvirt.spec.in spec: Fix dependency for lock-sanlock subpackage 2012-10-18 14:23:24 +02:00
Makefile.am Autogenerate AUTHORS 2012-10-19 12:44:56 -04:00
Makefile.nonreentrant
mingw-libvirt.spec.in parallels: add driver skeleton 2012-08-01 11:44:26 +08:00
README
README-hacking
run.in syntax-check: fix run.in 2012-09-18 13:59:53 +02:00
TODO Update todo list file to point at bugzilla/website 2010-10-13 16:45:26 +01:00

         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>