[libvirt] Release of libvirt-1.0.3
by Daniel Veillard
So that release took a bit longuer to stabilize, but as a result we
hopefully have a good release :-) . It is tagged in git now, so the
freeze is over, and the source tarball and F17 rpms are available at
the usual place at :
ftp://libvirt.org/libvirt/
Except for a few new API this release is more oriented toward
incremental improvements and bug fixes, with also a large amount of
documentation improvements and portability fixes:
Features:
- Introduce virDomainMigrate*CompressionCache APIs (Jiri Denemark)
- Introduce virDomainGetJobStats API (Jiri Denemark)
- Add basic support for VDI images (Martin Kletzander)
- Introduce API virNodeDeviceLookupSCSIHostByWWN (Osier Yang)
- Various locking improvements (Daniel P. Berrange)
Documentation:
- internals: Update to include RPC and Lock links and add new data (John Ferlan)
- Add references for phyp and parallels (John Ferlan)
- api: Add text and references for daemon (John Ferlan)
- api: Add text and references for drivers section (John Ferlan)
- api: Complete list of function and naming conventions (John Ferlan)
- api: Reword and clean lists for object description (John Ferlan)
- api: Reword objects exposed section (John Ferlan)
- hellolibvirt: Adjust code to use new APIs (John Ferlan)
- libvirt: Update headers for doc (John Ferlan)
- hook: log the exit status of the hook not 256 (Guido Günther)
- maint: fix typo in network docs (Eric Blake)
- util: Add docs for virXMLProp string (Peter Krempa)
- Fix attribute name for virtio-rng backend (Peter Krempa)
- document new storage volume/pool types (Philipp Hahn)
- schema: Add basic documentation for the virtual RNG device support (Peter Krempa)
- util: fix typo in comment (Laine Stump)
- Add missing 'vram' in QXL video device doc (Christophe Fergeau)
- Fix HTML errors (Jiri Denemark)
- fix 1.0.2 release date (Eric Blake)
- HACKING: Sync with docs/hacking.html.in (John Ferlan)
- hacking: Add some details to handle Valgrind output (John Ferlan)
- don't ignore virEvent API (Eric Blake)
- use div, not table, for notices on opaque types (Claudio Bley)
- abort when missing return or argument documentation (Claudio Bley)
- libvirt.h.in: document virConnectDomainEventCallback's return value (Claudio Bley)
- libvirt.h.in: add missing return doc for virEventRemoveHandleFunc (Claudio Bley)
- libvirt.h.in: fix documentation for virConnectDomainEventBlockJobCallback (Claudio Bley)
- libvirt.h.in: add missing documentation for virConnectCloseFunc (Claudio Bley)
- Sync HACKING and hacking.html.in (Martin Kletzander)
Portability:
- build: don't use gcrypt.h without gnutls support (Eric Blake)
- tests: skip virstoragetest on RHEL 5 (Eric Blake)
- Remove some C99 variable decls in parallels driver (Daniel P. Berrange)
- tests: old automake lacks abs_builddir (Eric Blake)
- tests: consistent skip messages (Eric Blake)
- tests: don't test json when not compiled in (Eric Blake)
- tests: avoid segfault if json monitor not present (Eric Blake)
- run: use portable shell (Eric Blake)
- s/arm/armv7l/ in caps-qemu-kvm.xml (Daniel P. Berrange)
- build: force correct gcc syntax for attribute_nonnull (Eric Blake)
- build: more mingw fixes (Eric Blake)
- build: fix mingw build (Eric Blake)
- build: fix vircommand build on mingw (Eric Blake)
- regex: gnulib guarantees that we have regex support (Eric Blake)
- build: fix compilation of selinux on RHEL 5 (Eric Blake)
- build: fix VPATH testsuite (Eric Blake)
- build: fix build of HAL node backend (Eric Blake)
- sanitytest.py: Do not rely on system libvirt (Jiri Denemark)
- tests: reserve more fds for commandtest (Eric Blake)
- build: Add libcurl dependency to libvirt_driver.la (Jiri Denemark)
- tests: Don't build securityselinuxlabeltest without qemu (Jiri Denemark)
Bug Fixes:
- Fix TLS tests with gnutls 3 (Daniel P. Berrange)
- qemu: fix wrong evaluation in qemuDomainSetMemoryParameters (Satoru Moriya)
- libvirt does not logout of iscsi targets, causing system hang on shutdown (Fritz Elfert)
- qemu: Remove managed save flag from VM when starting with --force-boot (Peter Krempa)
- qemu: Use -1 as unpriviledged uid/gid (Christophe Fergeau)
- virnetdevmacvlan.c: Introduce mutex for macvlan creation (Michal Privoznik)
- Fix deadlock in QEMU close callback APIs (Daniel P. Berrange)
- Fix crash in QEMU auto-destroy with transient guests (Daniel P. Berrange)
- python: fix fd leak in generator.py (Guannan Ren)
- qemu: Make sure qemuProcessStart is run within a job (Jiri Denemark)
- Fix starting qemu instances when apparmor driver is enabled (Jim Fehlig)
- qemu: Don't fail to shutdown domains with unresponsive agent (Michal Privoznik)
- qemu: virConnectGetVersion returns bogus value (Viktor Mihajlovski)
- qemu: fix use-after-free when parsing NBD disk (Paolo Bonzini)
- Don't try to add non-existant devices to ACL (Daniel P. Berrange)
- Fix typo in internal VIR_QEMU_PROCESS_START_AUTODESROY constant (Daniel P. Berrange)
- Fix autodestroy of QEMU guests (Daniel P. Berrange)
- qemu: -numa doesn't (yet) support disjoint range (Eric Blake)
- interface: udev backend coverity NULL deref (Doug Goldstein)
- Fix crash changing CDROM media (Daniel P. Berrange)
- qemu: do not set unpriv_sgio if neither supported nor requested (Paolo Bonzini)
- conf: Avoid leaking of RNG device definition (Peter Krempa)
- interface: Fix udev backend bridge device display (Doug Goldstein)
- storage: use f_frsize, not f_bsize, for calculating available space (Sage Weil)
- conf: Don't leak 'ram' video property on error (Christophe Fergeau)
- conf: Don't leak 'primary' video property on error (Christophe Fergeau)
- qemu: check backing chains even when cgroup is omitted (Eric Blake)
- qemu: Avoid deadlock in autodestroy (Jiri Denemark)
- qemu: fix an off-by-one error in qemuDomainGetPercpuStats (Guannan Ren)
- qemu: Fix the memory leak (Osier Yang)
- keepalive: Guard against integer overflow (John Ferlan)
- libxl: Fix setting of disk backend (Jim Fehlig)
- Remove a couple of misplaced VIR_FREE (John Ferlan)
- Fix memory leak in virNetClientIOWriteMessage (Sergey Fionov)
- qemu: Do not ignore mandatory features in migration cookie (Jiri Denemark)
- rpc: Avoid deadlock when closing client connection (Jiri Denemark)
- Avoid resetting errors in virTypedParamsFree (Jiri Denemark)
- interface: fix udev backend use after free (Doug Goldstein)
- virsh: Resolve possible NULL dereference (John Ferlan)
- commandtest: Resolve some coverity resource leaks (John Ferlan)
- Fix libvirt upgrade path when nwfilter is used (Stefan Berger)
- util: maintain caps when running command with uid != 0 (Laine Stump)
- virCommand: Don't misuse the eventloop for async IO (Michal Privoznik)
- Release VM lock before acquiring virDomainObjListPtr lock (Daniel P. Berrange)
- Fix potential deadlock across fork() in QEMU driver (Daniel P. Berrange)
- hypervisor: Restore pm initialization (John Ferlan)
- Remove re-entrant API call in SELinux/AppArmor security managers (Daniel P. Berrange)
- xend: Fix a memory leak found by Coverity (John Ferlan)
- network_conf.c: Free xmlDoc after use (Michal Privoznik)
- virsh-snapshot: Fix XPath query to determine snapshot state (Peter Krempa)
- virnetttlcontext: Resolve issues found by Valgrind (John Ferlan)
- qemumonitortestutils: Resolve resource leaks found by Valgrind (John Ferlan)
- qemumonitorjsontest: Resolve resource leaks found by Valgrind (John Ferlan)
- qemu_command: Resolve resource leaks found by Valgrind (John Ferlan)
- domain_conf: Resolve resource leaks found by Valgrind (John Ferlan)
- vport_profile_conf: Resolve memory leak found by Valgrind (John Ferlan)
- netdev_vlan_conf: Resolve memory leak found by Valgrind. (John Ferlan)
- qemuxml2argvtest: Resolve resource leaks found by Valgrind (John Ferlan)
- virnettlscontexttest: Resolve memory leak found by Valgrind (John Ferlan)
- qemu_hotplug: Need to call virUSBDeviceFree() (John Ferlan)
- rpc: Need to virCommandFree on error path (John Ferlan)
- uml: Resolve leak if need to requery in umlIdentifyOneChrPTY() (John Ferlan)
- openvz: Need to error check openvzDomainSetVcpusFlagsInternal() (John Ferlan)
- parallels: Need to free memory on error path (John Ferlan)
- network: Remove conditional settings to resolve resource leak (John Ferlan)
- storage: Resolve resource leaks with cmd processing (John Ferlan)
- keepalive: Resolve Coverity complaint (John Ferlan)
- tlscontext: Make sure to get proper pointer to 'dname' (John Ferlan)
- Fix leak of usbDevice struct when initializing cgroups (Daniel P. Berrange)
- Fix typo in configure.ac causing $LIBS to gain a copy of $CFLAGS (Daniel P. Berrange)
- util: Fix mask for 172.16.0.0 private address range (Jiri Denemark)
Improvements:
- rng: restrict passthrough names to known-good files (Eric Blake)
- util: use string libvirt to prefix error message instead of libvir (Guannan Ren)
- python: fix typoes and repeated global vars references (Guannan Ren)
- Fix a message typo (Serge Hallyn)
- Avoid spamming logs with cgroups warnings (Daniel P. Berrange)
- tests: Test XML entities in source path for RNG device (Peter Krempa)
- tests: fix leaks in storagevolxml2argvtest (Ján Tomko)
- libvirt.c: Make VIR_MIGRATE_NON_SHARED_{INC,DISK} mutually exclusive (Michal Privoznik)
- schema: Restrict mode to octal (Philipp Hahn)
- libvirt: fix error message when connection can't be opened (Ján Tomko)
- tests: uniformly report test failures (Eric Blake)
- qemu: minor monitor lock cleanups (Eric Blake)
- qemu: don't override earlier json error (Eric Blake)
- qemu: Refactor qemuDomainSetMemoryParameters (Peter Krempa)
- storage: cast -1 for uid_t|gid_t (Philipp Hahn)
- storage: Cast uid_t|gid_t to unsigned int (Philipp Hahn)
- util: Fix printf format for uid_t|gid_t (Philipp Hahn)
- tests: Add tests for virtio-rng device handling (Peter Krempa)
- qemu: Implement support for EGD backend for virtio-rng (Peter Krempa)
- qemu: Implement support for default 'random' backend for virtio-rng (Peter Krempa)
- conf: Add RNG device ABI compatibility check (Peter Krempa)
- conf: Add support for RNG device configuration in XML (Peter Krempa)
- conf: Add fake switch statement to warn for new device types (Peter Krempa)
- use client id for IPv6 DHCP host definition (Gene Czarcinski)
- Trivial fix: in dhcp-host the name is optional (Gene Czarcinski)
- storage: qemu-img: change INFO to DEBUG (Ján Tomko)
- storage: move qemu-img options before positional arguments (Ján Tomko)
- storage: add test for qemu-img command line generation (Ján Tomko)
- storage: separate qemu-img command generation and execution (Ján Tomko)
- storage: move flag setting after declarations (Ján Tomko)
- run: license as LGPL (Eric Blake)
- qemu_migration: Cancel running jobs on failed migration (Michal Privoznik)
- qemu_migration: Stop NBD server at Finish phase (Michal Privoznik)
- qemu_migration: Introduce qemuMigrationDriveMirror (Michal Privoznik)
- qemu_migration: Introduce qemuMigrationStartNBDServer() (Michal Privoznik)
- qemu: Introduce nbd-server-stop command (Michal Privoznik)
- qemu: Introduce nbd-server-add command (Michal Privoznik)
- qemu: Introduce nbd-server-start command (Michal Privoznik)
- Introduce NBD migration cookie (Michal Privoznik)
- qemu: Introduce NBD_SERVER capability (Michal Privoznik)
- Add support for <option> tag in network config (Pieter Hollants)
- maint: check all symfiles for sorting (Eric Blake)
- qemu: Implement virDomainMigrate*CompressionCache (Jiri Denemark)
- virsh: Add migrate-compcache command (Jiri Denemark)
- remote: Implement virDomainMigrate*CompressionCache (Jiri Denemark)
- python: Implement virDomainMigrateGetCompressionCache wrapper (Jiri Denemark)
- qemu: Implement virDomainGetJobStats (Jiri Denemark)
- qemu: Parse more fields from query-migrate QMP command (Jiri Denemark)
- virsh: Use virDomainGetJobStats in domjobinfo if available (Jiri Denemark)
- remote: Implement virDomainGetJobStats (Jiri Denemark)
- remote: Auto-allocate params in remoteDeserializeTypedParameters (Jiri Denemark)
- python: Implement virDomainGetJobStats wrapper (Jiri Denemark)
- qemu: Add support for compressed migration (Jiri Denemark)
- Introduce VIR_MIGRATE_COMPRESSED flag (Jiri Denemark)
- Update arch names in RNG schema to match virarch.c (Daniel P. Berrange)
- interface: dev type support for bond interfaces (Doug Goldstein)
- interface: add bond support to udev backend (Doug Goldstein)
- interface: Improve udev backend device type id (Doug Goldstein)
- interface: Refactor interface vlan to helper func (Doug Goldstein)
- interface: udev bridge code error handling updates (Doug Goldstein)
- interface: Refactor udev bridge to helper func (Doug Goldstein)
- conf: Refactor ABI stability checking and break long lines (Peter Krempa)
- conf: Refactor cpumask handling (Peter Krempa)
- conf: Reformat many function headers in domain_conf.c (Peter Krempa)
- conf: Fix label naming in virDomainDefFormatInternal (Peter Krempa)
- conf: Ensure that new devices are added to conf copy function (Peter Krempa)
- qemu: Refactor error paths in virQEMUDriverCreateCapabilities (Peter Krempa)
- conf: Improve core dump config error message (Peter Krempa)
- qemu: Turn closeCallbacks into virObjectLockable (Jiri Denemark)
- qemu: Run lzop with '--ignore-warn' (Michal Privoznik)
- qemu: Remove the shared disk entry if the operation is ejecting or updating (Osier Yang)
- qemu: Move the shared disk adding and sgio setting prior to attaching (Osier Yang)
- qemu: Update shared disk table when reconnecting qemu process (Osier Yang)
- qemu: Record names of domain which uses the shared disk in hash table (Osier Yang)
- qemu: Merge qemuCheckSharedDisk into qemuAddSharedDisk (Osier Yang)
- qemu: Add checking in helpers for sgio setting (Osier Yang)
- maint: enforce private symbol section sorting (Eric Blake)
- qemu: switch PCI address alocation to use virDevicePCIAddress (Ján Tomko)
- virsh: distinguish errors between missing argument and wrong option (Guannan Ren)
- maint: sort private syms to reflect recent header renames (Eric Blake)
- maint: fix header file owners of private symbols (Eric Blake)
- net: use structs for address and port ranges (Natanael Copa)
- net: add support for specifying port range for forward mode nat (Natanael Copa)
- net: support set public ip range for forward mode nat (Natanael Copa)
- qemu: Use atomic ops for driver->nactive (Jiri Denemark)
- virsh: Always print capacity unit (Jiri Denemark)
- qemu: pass "-1" as uid/gid for unprivileged qemu (Guido Günther)
- Add capabilities bit for -no-kvm-pit-reinjection (Doug Goldstein)
- Add autogenerated lxc_protocol.[ch] to gitignore (Doug Goldstein)
- drivermodule: Ignore coverity warning about leaked_storage (John Ferlan)
- storage: test backing chain traversal (Eric Blake)
- storage: don't follow backing chain symlinks too eagerly (Eric Blake)
- storage: refactor metadata lookup (Eric Blake)
- storage: prepare for refactoring (Eric Blake)
- storage: rearrange functions (Eric Blake)
- vbox: Don't overwrite errors returned by virDomainDeviceDefParse (Jiri Denemark)
- util: virSetUIDGIDWithCaps - change uid while keeping caps (Laine Stump)
- util: drop capabilities immediately after changing uid/gid of child (Laine Stump)
- qemu: let virCommand set child process security labels/uid/gid (Laine Stump)
- security: add new virSecurityManagerSetChildProcessLabel API (Laine Stump)
- util: add security label setting to virCommand (Laine Stump)
- build: define SECDRIVER_LIBS in Makefile.am (Laine Stump)
- qemu: replace exec hook with virCommandSetUID/GID in storage_backend (Laine Stump)
- qemu: replace exec hook with virCommandSetUID/GID in qemuCaps* (Laine Stump)
- util: make virSetUIDGID a NOP only when uid or gid is -1 (Laine Stump)
- util: add virCommandSetUID and virCommandSetGID (Laine Stump)
- util: refactor virCommandHook into virExec and virCommandHandshakeChild (Laine Stump)
- util: eliminate extra args from virExec (Laine Stump)
- util: eliminate generic hook from virExecWithHook (Laine Stump)
- Remove qemuDriverLock from almost everywhere (Daniel P. Berrange)
- virsh-volume.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-snapshot.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-secret.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-pool.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-nwfilter.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-nodedev.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-network.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-interface.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-host.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-domain.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-domain-monitor.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh: Switch to c99 initialization of vshCmdDef (Michal Privoznik)
- xen: clean up the mess with cpumap (Eric Blake)
- util: use new virendian.h macros (Eric Blake)
- util: add virendian.h macros (Eric Blake)
- Check if classes are derived from object (Guido Günther)
- virsh: Use virNodeDeviceLookupSCSIHostByWWN (Osier Yang)
- nodedev: Implement virNodeDeviceLookupSCSIHostByWWN (Osier Yang)
- remote: Wire up the remote protocol (Osier Yang)
- hypervisor: Revisit Coverity issues regarding cpumap (John Ferlan)
- hypervisor: Remove redundant validity checks, clean up function headers (John Ferlan)
- xend: Remove redundant validity checks, clean up function headers (John Ferlan)
- xm: Remove redundant validity checks, clean up function headers (John Ferlan)
- inotify: Clean up some function headers (John Ferlan)
- xs: Remove redundant validity checks, clean up function headers (John Ferlan)
- virsh-snapshot: Reject --no-metadata together with --print-xml (Peter Krempa)
- virsh-snapshot: Refactor some details in virsh snapshot-create-as (Peter Krempa)
- Pass virQEMUDriverPtr into APIs managed shared disk list (Daniel P. Berrange)
- Serialize execution of security manager APIs (Daniel P. Berrange)
- Turn virSecurityManager into a virObjectLockable (Daniel P. Berrange)
- sheepdog: skip refresh on creation failure (Harry Wei)
- util: refactor iptables command construction into multiple steps (Natanael Copa)
- qemu: support vhost-net for generic ethernet devices (Laine Stump)
- Stop accessing driver->caps directly in QEMU driver (Daniel P. Berrange)
- Rename 'qemuCapsXXX' to 'virQEMUCapsXXX' (Daniel P. Berrange)
- Turn virCapabilities into a virObject (Daniel P. Berrange)
- Fix comment about virCgroupPtr locking rules in QEMU driver (Daniel P. Berrange)
- Fix PKI directory used for QEMU test suite (Daniel P. Berrange)
- virCondDestroy: Lose attribute RETURN_CHECK (Michal Privoznik)
- Drop useless virFileWrapperFdCatchError (Michal Privoznik)
- valgrind: Adjust the suppression file (John Ferlan)
- Add syntax-check to make sure Python files don't contain trailing semicolon (Guido Günther)
- Remove more trailing semicolons in Python files (Guido Günther)
- syntax-check: Don't check non-reentrant functions in docs (Peter Krempa)
- Cosmetics: Remove semicolons (Guido Günther)
- bitmap: add way to find next clear bit (Eric Blake)
- Initialize qemuImageBinary path at startup (Daniel P. Berrange)
- Introduce annotations for virQEMUDriverPtr fields (Daniel P. Berrange)
- Protect USB/PCI device list access in QEMU with dedicated locks (Daniel P. Berrange)
- Convert virPCIDeviceList and virUSBDeviceList into virObjectLockable (Daniel P. Berrange)
- Rename all USB device functions to have a standard name prefix (Daniel P. Berrange)
- Rename all PCI device functions to have a standard name prefix (Daniel P. Berrange)
- Remove pointless 'qemuVersion' field from virQEMUDriverPtr (Daniel P. Berrange)
- Use atomic ops to increment nextvmid (Daniel P. Berrange)
- Make virDomainObjList self-locking via virObjectLockable (Daniel P. Berrange)
- Merge virDomainObjListIsDuplicate into virDomainObjListAdd (Daniel P. Berrange)
- qemu: don't log failure during QMP add-fd probe (Eric Blake)
- Turn virDomainObjList into an opaque virObject (Daniel P. Berrange)
- Rename all domain list APIs to have virDomainObjList prefix (Daniel P. Berrange)
- Introduce a virQEMUDriverConfigPtr object (Daniel P. Berrange)
- Fix missing error constants in libvirt python module (Daniel P. Berrange)
- qemu: Catch stderr of image compression binary (Michal Privoznik)
- qemu: Catch stderr of image decompression binary (Michal Privoznik)
- virFileWrapperFd: Switch to new virCommandDoAsyncIO (Michal Privoznik)
- tests: Create test for virCommandDoAsyncIO (Michal Privoznik)
- Introduce event loop to commandtest (Michal Privoznik)
- virCommand: Introduce virCommandDoAsyncIO (Michal Privoznik)
- conf: Use correct type for device type enum in virDomainDeviceDefFree (Peter Krempa)
- Support shifted magic in storage files (Martin Kletzander)
- virsh-secret: Refactor error paths (Peter Krempa)
- virsh-nwfilter: Update nwfilter commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-snapshot: Update snapshot commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-snapshot: Refactor cmdSnapshotDumpXML (Peter Krempa)
- virsh-nodedev: Refactor error paths, error messages and whitespace (Peter Krempa)
- virsh-nodedev: Update node device commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-interface: Update interface commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-network: Update network commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-host: Update host commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-domain: Update domain commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-domain-monitor: Update domain commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-volume: Update volume commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-pool: Update pool commands to use vshCommandOptStringReq (Peter Krempa)
- virsh: Add helper to request string arguments with error reporting (Peter Krempa)
- virsh-pool: Rename helper function buildPoolXML to vshBuildPoolXML (Peter Krempa)
- virsh-volume: Rename helper function makeCloneXML to vshMakeCloneXML (Peter Krempa)
- virsh-snapshot: Fix coding style and remove dead code (Peter Krempa)
- hyperv: Simplify hypervPrivate pointer handling in hypervOpen (Matthias Bolte)
- esx: Simplify esxPrivate pointer handling in esxOpen (Matthias Bolte)
- maint: update to latest gnulib (Eric Blake)
- Add support for QEMU -add-fd support detection (Stefan Berger)
- qemu: expose qemu 1.3 add-fd monitor command (Eric Blake)
- tests: add a comment about our fake qmp (Eric Blake)
- spec: Avoid using makeinstall relic (Jiri Denemark)
- complete virterror->virerror name change (Serge Hallyn)
- apibuild.py: fix TypeError raised in except clause (Claudio Bley)
- Enforce return check on virAsprintf() calls (John Ferlan)
- snapshot: Mention disk-only snapshots in error message (Peter Krempa)
Cleanups:
- Revert hack for autodestroy in qemuProcessStop (Daniel P. Berrange)
- Revert "Add support for <option> tag in network config" (Laine Stump)
- security: Remove unnecessary checks for mgr == NULL (John Ferlan)
- vircommand: Remove unnecessary sa_assert (John Ferlan)
- build: fix make check of remote_protocol-structs (Laine Stump)
- spec: Fix minor changelog issues (Jiri Denemark)
Thanks everybody for your contributions !
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
12 years, 3 months
[libvirt] [PATCH 0/8] Web page updates/changes
by John Ferlan
I was [t]asked to make updates to the api webpage including an example
of a code path from application into the driver. As I started on the task
I found that the api webpage first needed a couple of updates just to fill
in what seems to have been missing information. As I went through the
various pages I realized that the 'better' location for the example code
path seemed to be the internals page and thus I added it there. My simple
example (hah!) was the virConnectOpen code path - I figured for a intro-
duction to the internals web page - it'd be a good place to start.
While I was doing this I used the hellolibvirt example a bit and based on
information found on the 'api' page I added some more calls into the example
to print network and disk information as well as more domain data.
Finally while going through the pages I found a couple of places where
drv pages weren't referenced although they were available, so I updated
those (phyp and parallels).
Hopefully I've figured things out correctly, but I'm sure if I have something
a bit wrong someone will correct me. Making the figure was quite frustrating
as xfig is a bit less forgiving than say office writer.
John Ferlan (8):
hellolibvirt: Update hellolibvirt example
api: Reword objects exposed section
api: Reword and clean lists for object description
api: Complete list of function and naming conventions
api: Add text and references for drivers section
api: Add text and references for daemon
Add references for phyp and parallels
internals: Update to include RPC and Lock links and add new data
docs/api.html.in | 261 +++++++++++++++++++++++++----------
docs/drivers.html.in | 1 +
docs/index.html.in | 6 +
docs/internals.html.in | 102 +++++++++++++-
docs/libvirt-virConnect-example.fig | 58 ++++++++
docs/libvirt-virConnect-example.png | Bin 0 -> 10464 bytes
docs/sitemap.html.in | 8 ++
examples/hellolibvirt/hellolibvirt.c | 201 +++++++++++++++++++++++----
8 files changed, 530 insertions(+), 107 deletions(-)
create mode 100644 docs/libvirt-virConnect-example.fig
create mode 100644 docs/libvirt-virConnect-example.png
--
1.7.11.7
12 years, 3 months
Re: [libvirt] virtio-rng and fd passing
by Eric Blake
[adding libvirt]
On 03/03/2013 02:05 PM, Anthony Liguori wrote:
> Paolo Bonzini <pbonzini(a)redhat.com> writes:
>
>> Il 02/03/2013 04:13, Anthony Liguori ha scritto:
>>> There is no valid use-case of rng-random other than using /dev/random.
>>> In fact, it was probably a mistake to even allow a filename to be
>>> specified because it lets people do silly things (like /dev/urandom).
>>>
>>> If you want anything other than /dev/random, you should use rng-egd.
>>
>> /dev/hwrng makes sense too.
>
> Good point. Perhaps we should issue a warning when anything is used
> other than /dev/random or /dev/hwrng to discourage people from doing the
> wrong thing. I completely understand the confusion and I think we
> should try a bit harder to prevent people from getting it wrong.
Then libvirt should also make sure that the XML we allow for non-egd
virtio-rng is restricted to the two filenames that won't cause a qemu
warning, or even modify the XML to not expose a filename in the first
place. We haven't released libvirt 1.0.3 yet, so we still have a few
hours in which such a change could be made before the XML becomes baked
by a release.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
12 years, 3 months
[libvirt] vm can not be shutdown
by yue
i use libvirt-python call shutdownFlags, but it can not assure VM can be shutdown.
how to make shutdownFlags call work? install or configure something?
thanks
12 years, 3 months
[libvirt] [PATCH] Fix TLS tests with gnutls 3
by Daniel P. Berrange
From: "Daniel P. Berrange" <berrange(a)redhat.com>
When given a CA cert with basic constraints to set non-critical,
and key usage of 'key signing', this should be rejected. Version
of GNUTLS < 3 do not rejecte it though, so we never noticed the
test case was broken
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
tests/virnettlscontexttest.c | 29 +++++++++++++++++++----------
1 file changed, 19 insertions(+), 10 deletions(-)
diff --git a/tests/virnettlscontexttest.c b/tests/virnettlscontexttest.c
index 3df8a70..f53ea0e 100644
--- a/tests/virnettlscontexttest.c
+++ b/tests/virnettlscontexttest.c
@@ -873,15 +873,6 @@ mymain(void)
false, false, NULL, NULL,
0, 0,
};
- /* Key usage:dig-sig:not-critical */
- static struct testTLSCertReq cacert5req = {
- NULL, NULL, "cacert5.pem", "UK",
- "libvirt CA 5", NULL, NULL, NULL, NULL,
- true, true, true,
- true, false, GNUTLS_KEY_DIGITAL_SIGNATURE,
- false, false, NULL, NULL,
- 0, 0,
- };
DO_CTX_TEST(true, cacert1req, servercertreq, false);
DO_CTX_TEST(true, cacert2req, servercertreq, false);
@@ -889,10 +880,18 @@ mymain(void)
DO_CTX_TEST(true, cacert3req, servercertreq, false);
# endif
DO_CTX_TEST(true, cacert4req, servercertreq, false);
- DO_CTX_TEST(true, cacert5req, servercertreq, false);
/* Now some bad certs */
+ /* Key usage:dig-sig:not-critical */
+ static struct testTLSCertReq cacert5req = {
+ NULL, NULL, "cacert5.pem", "UK",
+ "libvirt CA 5", NULL, NULL, NULL, NULL,
+ true, true, true,
+ true, false, GNUTLS_KEY_DIGITAL_SIGNATURE,
+ false, false, NULL, NULL,
+ 0, 0,
+ };
/* no-basic */
static struct testTLSCertReq cacert6req = {
NULL, NULL, "cacert6.pem", "UK",
@@ -912,6 +911,16 @@ mymain(void)
0, 0,
};
+ /* Technically a CA cert with basic constraints
+ * key purpose == key signing + non-critical should
+ * be rejected. GNUTLS < 3 does not reject it and
+ * we don't anticipate them changing this behaviour
+ */
+# if GNUTLS_VERSION_MAJOR >= 3
+ DO_CTX_TEST(true, cacert5req, servercertreq, true);
+# else
+ DO_CTX_TEST(true, cacert5req, servercertreq, false);
+# endif
DO_CTX_TEST(true, cacert6req, servercertreq, true);
DO_CTX_TEST(true, cacert7req, servercertreq, true);
--
1.8.1.2
12 years, 3 months
[libvirt] [PATCH] qemu: fix wrong evaluation in qemuDomainSetMemoryParameters
by Satoru Moriya
19c6ad9a (qemu: Refactor qemuDomainSetMemoryParameters) introduced
a new macro, VIR_GET_LIMIT_PARAMETER(PARAM, VALUE). But if statement
in the macro is not correct and so set_XXXX flags are set to false
in the wrong. As a result, libvirt ignores all memtune parameters.
This patch fixes the conditional expression to work correctly.
Signed-off-by: Satoru Moriya <satoru.moriya(a)hds.com>
---
src/qemu/qemu_driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 7048ce9..42b8c77 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -7280,7 +7280,7 @@ qemuDomainSetMemoryParameters(virDomainPtr dom,
}
#define VIR_GET_LIMIT_PARAMETER(PARAM, VALUE) \
- if ((rc = virTypedParamsGetULLong(params, nparams, PARAM, &VALUE) < 0)) \
+ if ((rc = virTypedParamsGetULLong(params, nparams, PARAM, &VALUE)) < 0) \
goto cleanup; \
\
if (rc == 1) \
--
1.7.11.7
12 years, 3 months
[libvirt] [PATCH] util: use string libvirt to prefix error message instead of libvir
by Guannan Ren
BZ:https://bugzilla.redhat.com/show_bug.cgi?id=912021
Without error handler set, virDefaultErrorFunc will be called, the
error message is prefixed with "libvir:". It become a little better
by using prefix "libvirt:" when working with upper application.
For example:
1, stop libvirtd daemon
2, run virt-top.
libvir: XML-RPC error : Failed to connect \
socket to '/var/run/libvirt/libvirt-sock-ro': \
No such file or directory
libvirt: VIR_ERR_SYSTEM_ERROR: VIR_FROM_RPC: \
Failed to connect socket to '/var/run/libvirt/libvirt-sock-ro': \
No such file or directory
---
src/util/virerror.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/util/virerror.c b/src/util/virerror.c
index 301a1ac..40c3b25 100644
--- a/src/util/virerror.c
+++ b/src/util/virerror.c
@@ -525,13 +525,13 @@ virDefaultErrorFunc(virErrorPtr err)
len = strlen(err->message);
if ((err->domain == VIR_FROM_XML) && (err->code == VIR_ERR_XML_DETAIL) &&
(err->int1 != 0))
- fprintf(stderr, "libvir: %s %s %s%s: line %d: %s",
+ fprintf(stderr, "libvirt: %s %s %s%s: line %d: %s",
dom, lvl, domain, network, err->int1, err->message);
else if ((len == 0) || (err->message[len - 1] != '\n'))
- fprintf(stderr, "libvir: %s %s %s%s: %s\n",
+ fprintf(stderr, "libvirt: %s %s %s%s: %s\n",
dom, lvl, domain, network, err->message);
else
- fprintf(stderr, "libvir: %s %s %s%s: %s",
+ fprintf(stderr, "libvirt: %s %s %s%s: %s",
dom, lvl, domain, network, err->message);
}
--
1.7.11.2
12 years, 3 months
[libvirt] libvirt does not logout of iscsi targets, causing system hang on shutdown
by Fritz Elfert
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi guys,
There's a quite old bug entry here:
https://bugzilla.redhat.com/show_bug.cgi?id=700010
I just stumbled over that very issue on F18. Doing a little bit
debugging of the shutdown sequence, it turns out that - at least on my
F18 installation - libvirtd is shutdown *after* iscsid, which makes it
impossible for libvirt to perform the logout of the iscsi session properly.
My local fix (diff) is attached. It simply adds another startup
dependancy on iscsid.service which in turn delays iscsid shutdown until
after libvirtd has stopped. Having that applied, the system shuts down
properly again.
I was asked to post that here for discussion...
So please consider this trivial change for the next update.
Cheers
-Fritz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iEYEARECAAYFAlEvwhoACgkQboM4mAMyprB9agCgpIkGbSBKpfB4e0q6aqSMVGam
rMoAnAtBpp3nFbleWLxJTbCt9EKO9Yx3
=2hHf
-----END PGP SIGNATURE-----
12 years, 3 months
[libvirt] [PATCH] qemu: Remove managed save flag from VM when starting with --force-boot
by Peter Krempa
At the start of the guest after the image is unlinked the state wasn't
touched up to match the state on disk.
---
src/qemu/qemu_driver.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index d40b5d5..7048ce9 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -5421,20 +5421,21 @@ qemuDomainObjStart(virConnectPtr conn,
goto cleanup;
if (virFileExists(managed_save)) {
if (force_boot) {
if (unlink(managed_save) < 0) {
virReportSystemError(errno,
_("cannot remove managed save file %s"),
managed_save);
goto cleanup;
}
+ vm->hasManagedSave = false;
} else {
ret = qemuDomainObjRestore(conn, driver, vm, managed_save,
start_paused, bypass_cache);
if (ret == 0) {
if (unlink(managed_save) < 0)
VIR_WARN("Failed to remove the managed state %s", managed_save);
else
vm->hasManagedSave = false;
}
--
1.8.1.1
12 years, 3 months
[libvirt] libvirt-1.0.2 qith lxc and /proc/meminfo
by Thierry Parmentelat
Hello there
I'm using libvirt-1.0.2 to spawn off linux containers
We currently have 2 very similar setups that run on fedora 16 and f18 respectively
And I'm seeing one weird difference concerning /proc/meminfo
While everything is fine on the fedora16 world, on the fedora18 side here is what the container sees
bash-4.2# ls /proc
ls: cannot access /proc/meminfo: Permission denied
1 257 bus devices fb irq kpagecount mdstat net schedstat swaps tty
10 377 cgroups diskstats filesystems kallsyms kpageflags meminfo pagetypeinfo scsi sys uptime
15 522 cmdline dma fs kcore latency_stats misc partitions self sysrq-trigger version
16 542 consoles dri interrupts key-users loadavg modules pidsu slabinfo sysvipc vmallocinfo
18 acpi cpuinfo driver iomem keys locks mounts procprotect softirqs timer_list vmstat
19 buddyinfo crypto execdomains ioports kmsg lxcsu mtrr sched_debug stat timer_stats zoneinfo
bash-4.2# ls -l /proc | grep meminfo
ls: cannot access /proc/meminfo: Permission denied
-????????? ? ? ? ? ? meminfo
bash-4.2# cat /proc/meminfo
cat: /proc/meminfo: Permission denied
=====
we rebuild libvirt-1.0.2 more or less as is modulo a few features that are turned off, our specfile can be found here
http://git.onelab.eu/?p=libvirt.git;a=blob;f=libvirt.spec
the most obvious difference between both builds lies in using fuse:
---
# fuse is used to provide virtualized /proc for LXC
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
%define with_fuse 0%{!?_without_fuse:1}
%endif
---
I was wondering what exactly should be the requirements on the root context for running this properly
In particular the fuse rpm was not pulled as part of the libvirt dependencies, which might be an omission ?
Can I expect my problem to go away if I make sure fuse gets installed ?
Otherwise where should I try to look to solve this issue ?
many thanks in advance -- Thierry
12 years, 3 months