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 47e7a258db Fix UUID handling in secrets/storage encryption APIs
Convert all the secret/storage encryption APIs / wire format to
handle UUIDs in raw format instead of non-canonical printable
format. Guarentees data format correctness.

* docs/schemas/storageencryption.rng: Make UUID mandatory for a secret
  and validate fully
* docs/schemas/secret.rng: Fully validate UUID
* include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add
  virSecretLookupByUUID and virSecretGetUUID. Make
  virSecretGetUUIDString follow normal API design pattern
* python/generator.py: Skip generation of virSecretGetUUID,
  virSecretGetUUIDString and virSecretLookupByUUID
* python/libvir.c, python/libvirt-python-api.xml: Manual impl
  of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID
* qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/
  Fix get_nonnull_secret/make_nonnull_secret to use unsigned char
* qemud/remote_protocol.x: Fix remote_nonnull_secret to use a
  remote_uuid instead of remote_nonnull_string for UUID field.
  Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to
  REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an
  remote_uuid  value
* qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h,
  qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h,
  qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate
* src/datatypes.h, src/datatypes.c: Store UUID in raw format instead
  of printable. Change virGetSecret to use raw format UUID
* src/driver.h: Rename virDrvSecretLookupByUUIDString to
  virDrvSecretLookupByUUID and use raw format UUID
* src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID
  and re-implement virSecretLookupByUUIDString and
  virSecretGetUUIDString in terms of those
* src/libvirt_public.syms: Add virSecretLookupByUUID and
  virSecretGetUUID
* src/remote_internal.c: Rename remoteSecretLookupByUUIDString
  to remoteSecretLookupByUUID. Fix typo in args for
  remoteSecretDefineXML impl. Use raw UUID format for
  get_nonnull_secret and make_nonnull_secret
* src/storage_encryption_conf.c, src/storage_encryption_conf.h:
  Storage UUID in raw format, and require it to be present in
  XML. Use UUID parser to validate.
* secret_conf.h, secret_conf.c: Generate a UUID if none is provided.
  Storage UUID in raw format.
* src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets
  in a filed with printable UUID, instead of base64 UUID.
* src/virsh.c: Adjust for changed public API contract of
  virSecretGetUUIDString.
* src/storage_Backend.c: DOn't undefine secret we just generated
  upon successful volume creation. Fix to handle raw UUIDs. Generate
  a non-clashing UUID
* src/qemu_driver.c: Change to use lookupByUUID instead of
  lookupByUUIDString
2009-09-14 17:48:29 +01:00
.gnulib@28db629d4f build: update gnulib submodule to latest 2009-09-09 12:11:29 +02:00
build-aux generate ChangeLog from git logs into distribution tarball 2009-07-08 16:17:51 +02:00
docs Fix UUID handling in secrets/storage encryption APIs 2009-09-14 17:48:29 +01:00
examples remove all trailing blank lines 2009-07-16 15:06:42 +02:00
include Fix UUID handling in secrets/storage encryption APIs 2009-09-14 17:48:29 +01:00
m4 remove all .cvsignore files 2009-07-08 16:17:51 +02:00
po Local file implementation of secret driver API 2009-09-11 14:54:46 +01:00
proxy Misc fixes to secrets API code 2009-09-01 21:37:42 +01:00
python Fix UUID handling in secrets/storage encryption APIs 2009-09-14 17:48:29 +01:00
qemud Fix UUID handling in secrets/storage encryption APIs 2009-09-14 17:48:29 +01:00
src Fix UUID handling in secrets/storage encryption APIs 2009-09-14 17:48:29 +01:00
tests Fix more OOM handling bugs 2009-09-10 14:30:00 +01:00
tools remove all .cvsignore files 2009-07-08 16:17:51 +02:00
.gitignore build: automatically rerun ./bootstrap when needed 2009-07-10 13:39:28 +02:00
.gitmodules make .gnulib a submodule 2009-07-08 16:17:51 +02:00
.hgignore Add qemuhelptest to .*ignore files 2009-06-16 14:06:48 +00:00
.x-sc_avoid_ctype_macros exempt gnulib from ctype-macros prohibition 2008-10-28 17:36:31 +00:00
.x-sc_avoid_if_before_free avoid a "make syntax-check" failure 2009-07-09 20:00:37 +02:00
.x-sc_avoid_write Make error reporting threadsafe by avoiding strerror 2009-01-20 17:13:33 +00:00
.x-sc_m4_quote_check syntax-check: enable more checks 2009-02-03 13:08:36 +00:00
.x-sc_prohibit_asprintf add .x-sc_prohibit_asprintf 2008-12-23 13:40:42 +00:00
.x-sc_prohibit_gethostby add more files pulled in via yesterday's gnulib upgrade 2009-01-07 17:11:02 +00:00
.x-sc_prohibit_have_config_h maint: sync from coreutils 2009-01-29 18:06:19 +00:00
.x-sc_prohibit_HAVE_MBRTOWC maint: sync from coreutils 2009-01-29 18:06:19 +00:00
.x-sc_prohibit_nonreentrant syntax-check: enable prohibit_nonreentrant 2009-02-05 16:28:41 +00:00
.x-sc_prohibit_strcmp exempt gnulib/ from "make syntax-check" strcmp prohibition 2008-05-14 21:18:27 +00:00
.x-sc_prohibit_strcmp_and_strncmp Prepare to use maint.mk from gnulib 2009-07-08 16:17:51 +02:00
.x-sc_prohibit_VIR_ERR_NO_MEMORY Split generic RPC message dispatch code out from remote protocol API handlers 2009-07-16 16:09:41 +01:00
.x-sc_require_config_h Enable the <config.h>-requiring test; fix violations 2008-01-29 18:15:54 +00:00
.x-sc_require_config_h_first enforce the "include <config.h> first" rule 2008-12-17 17:23:21 +00:00
.x-sc_trailing_blank build: exempt *.ico files from the trailing blank check 2008-10-16 13:28:07 +00:00
acinclude.m4 remove all trailing blank lines 2009-07-16 15:06:42 +02:00
AUTHORS Add Miloslav Trmač to AUTHORS file 2009-09-01 18:37:38 +01:00
autobuild.sh Enable ESX driver build on Mingw32 2009-07-31 16:15:51 +01:00
autogen.sh build: automatically rerun ./bootstrap when needed 2009-07-10 13:39:28 +02:00
bootstrap Local file implementation of secret driver API 2009-09-11 14:54:46 +01:00
cfg.mk build: submodule machinery now works also when no tag is reachable 2009-07-16 18:42:47 +02:00
ChangeLog-old generate ChangeLog from git logs into distribution tarball 2009-07-08 16:17:51 +02:00
configure.in Fix win32 platform build 2009-09-14 14:53:21 +01:00
COPYING.LIB remove all trailing blank lines 2009-07-16 15:06:42 +02:00
HACKING Fix misc Win32 compile warnings 2009-07-23 16:07:32 +01:00
libvirt.pc.in * libvirt.pc.in: applied patch from Daniel Berrange to fix --cflags 2006-03-24 13:18:12 +00:00
libvirt.spec.in Restart libvirtd upon RPM upgrade 2009-09-14 13:42:18 +01:00
Makefile.am build: automatically rerun ./bootstrap when needed 2009-07-10 13:39:28 +02:00
Makefile.nonreentrant syntax-check: enable prohibit_nonreentrant 2009-02-05 16:28:41 +00:00
mingw32-libvirt.spec.in Add volume encryption information handling. 2009-09-01 18:27:28 +01:00
mylibtool Add libtool wrapper to allow quiet build with "make -s" 2009-05-12 15:40:03 +00:00
NEWS Release of libvirt-0.7.0 2009-08-05 16:00:41 +02:00
README Correct typos in the documentation (Atsushi SAKAI) 2008-01-24 10:15:13 +00:00
README-hacking build: automatically rerun ./bootstrap when needed 2009-07-10 13:39:28 +02:00
RENAMES remove cvs $Id$ strings 2008-12-12 12:45:34 +00:00
TODO Remove all trailing blanks; turn on the rule to detect them. 2008-02-05 19:27:37 +00:00
virsh.1 Add virsh commands for secrets APIs 2009-09-11 14:54:57 +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>