]> xenbits.xensource.com Git - libvirt.git/log
libvirt.git
13 years agomaint: exclude more files from syntax check
Eric Blake [Fri, 8 Jul 2011 15:13:53 +0000 (09:13 -0600)]
maint: exclude more files from syntax check

* cfg.mk (VC_LIST_ALWAYS_EXCLUDE_REGEX): Exempt
docs/api_extension/*.patch.
(exclude_file_name_regexp--sc_prohibit_always_true_header_tests)
(exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF)
(exclude_file_name_regexp--sc_prohibit_fork_wrappers)
(exclude_file_name_regexp--sc_trailing_blank): Simplify.
(exclude_file_name_regexp--sc_prohibit_gettext_noop): Delete.
(exclude_file_name_regexp--sc_prohibit_close)
(exclude_file_name_regexp--sc_prohibit_nonreentrant)
(exclude_file_name_regexp--sc_prohibit_sprintf): Tighten.

13 years agoutil: honor anchored names when searching for executables
Eric Blake [Tue, 12 Jul 2011 22:47:01 +0000 (16:47 -0600)]
util: honor anchored names when searching for executables

I got bit in a debugging session on an uninstalled libvirtd; the
code tried to call out to the installed $LIBEXECDIR/libvirt_iohelper
instead of my just-built version.  So I set a breakpoint and altered
the binary name to be "./src/libvirt_iohelper", and it still failed
because I don't have "." on my PATH.

According to POSIX, execvp only searches PATH if the name does
not contain a slash.  Since we are trying to mimic that behavior,
an anchored name should be relative to the current working dir.

This tightens existing behavior, but most callers already pass
an absolute name or a name with no slashes, so it probably won't
be noticeable.

* src/util/util.c (virFindFileInPath): Anchored relative names do
not invoke a PATH search.

13 years agoEnsure signal handler propagates fatal signals to default handler
Daniel P. Berrange [Wed, 6 Jul 2011 16:11:03 +0000 (17:11 +0100)]
Ensure signal handler propagates fatal signals to default handler

When replacing the default SEGV/ABORT/BUS signal handlers you
can't rely on the process being terminated after your custom
handler runs. It is neccessary to manually restore the default
handler and then re-raise the signal

* src/rpc/virnetserver.c: Restore default handler and raise
  signal

13 years agoRemove unused virNetServerProgramErrorHander typedef
Daniel P. Berrange [Wed, 6 Jul 2011 16:05:40 +0000 (17:05 +0100)]
Remove unused virNetServerProgramErrorHander typedef

* src/rpc/virnetserverprogram.h: Remove unused typedef for
  virNetServerProgramErrorHander function callback
* daemon/remote.h: Remove decl for non-existant variables

13 years agoqemu: Fix monitor unlocking in some error paths
Jiri Denemark [Mon, 4 Jul 2011 14:35:03 +0000 (16:35 +0200)]
qemu: Fix monitor unlocking in some error paths

When monitor is entered with qemuDomainObjEnterMonitorWithDriver, the
correct method for leaving and unlocking the monitor is
qemuDomainObjExitMonitorWithDriver.

13 years agoqemu: Consolidate qemuMigrationPrepare{Direct,Tunnel}
Jiri Denemark [Mon, 13 Jun 2011 08:48:34 +0000 (10:48 +0200)]
qemu: Consolidate qemuMigrationPrepare{Direct,Tunnel}

Most of the code in these two functions is supposed to be identical but
currently it isn't (which is natural since the code is duplicated).
Let's move common parts of these functions into qemuMigrationPrepareAny.

This also fixes qemuMigrationPrepareTunnel which didn't store received
lockState in the domain object.

13 years agoqemu: Add support for job phase
Jiri Denemark [Mon, 6 Jun 2011 08:30:54 +0000 (10:30 +0200)]
qemu: Add support for job phase

Asynchronous jobs may take long time to finish and may consist of
several phases which we need to now about to help with recovery/rollback
after libvirtd restarts.

13 years agoqemu: Recover from interrupted jobs
Jiri Denemark [Mon, 4 Jul 2011 21:33:39 +0000 (23:33 +0200)]
qemu: Recover from interrupted jobs

Detect and react on situations when libvirtd was restarted or killed
when a job was active.

13 years agoqemu: Save job type in domain status XML
Jiri Denemark [Mon, 6 Jun 2011 08:28:38 +0000 (10:28 +0200)]
qemu: Save job type in domain status XML

If libvirtd is restarted when a job is running, the new libvirtd process
needs to know about that to be able to recover and rollback the
operation.

13 years agoqemu: Allow all query commands to be run during long jobs
Jiri Denemark [Thu, 30 Jun 2011 09:23:50 +0000 (11:23 +0200)]
qemu: Allow all query commands to be run during long jobs

Query commands are safe to be called during long running jobs (such as
migration). This patch makes them all work without the need to
special-case every single one of them.

The patch introduces new job.asyncCond condition and associated
job.asyncJob which are dedicated to asynchronous (from qemu monitor
point of view) jobs that can take arbitrarily long time to finish while
qemu monitor is still usable for other commands.

The existing job.active (and job.cond condition) is used all other
synchronous jobs (including the commands run during async job).

Locking schema is changed to use these two conditions. While asyncJob is
active, only allowed set of synchronous jobs is allowed (the set can be
different according to a particular asyncJob) so any method that
communicates to qemu monitor needs to check if it is allowed to be
executed during current asyncJob (if any). Once the check passes, the
method needs to normally acquire job.cond to ensure no other command is
running. Since domain object lock is released during that time, asyncJob
could have been started in the meantime so the method needs to recheck
the first condition. Then, normal jobs set job.active and asynchronous
jobs set job.asyncJob and optionally change the list of allowed job
groups.

Since asynchronous jobs only set job.asyncJob, other allowed commands
can still be run when domain object is unlocked (when communicating to
remote libvirtd or sleeping). To protect its own internal synchronous
commands, the asynchronous job needs to start a special nested job
before entering qemu monitor. The nested job doesn't check asyncJob, it
only acquires job.cond and sets job.active to block other jobs.

13 years agoqemu: Consolidate {Enter,Exit}Monitor{,WithDriver}
Jiri Denemark [Sun, 3 Jul 2011 21:55:47 +0000 (23:55 +0200)]
qemu: Consolidate {Enter,Exit}Monitor{,WithDriver}

EnterMonitor and ExitMonitor methods are very similar to their
*WithDriver variants; consolidate them into EnterMonitorInternal and
ExitMonitorInternal to avoid (mainly future) code duplication.

13 years agoqemu: Consolidate BeginJob{,WithDriver} into a single method
Jiri Denemark [Thu, 30 Jun 2011 09:21:34 +0000 (11:21 +0200)]
qemu: Consolidate BeginJob{,WithDriver} into a single method

This avoids code duplication and also avoids relying on good luck that
ignore_value(virDomainObjUnref(obj)) doesn't set errno.

13 years agoqemu: Separate job related data into a new object
Jiri Denemark [Mon, 6 Jun 2011 08:34:33 +0000 (10:34 +0200)]
qemu: Separate job related data into a new object

13 years agomaint: avoid incremental 'make syntax-check' failure
Eric Blake [Tue, 12 Jul 2011 16:52:56 +0000 (10:52 -0600)]
maint: avoid incremental 'make syntax-check' failure

Incrementally running 'make syntax-check' on a tree previously
built after commit 62dee6f but before 44036460 fails sc_po_check
(because the generated qemu_dispatch.h gained translatable strings).
This is a followup to commit addaa537 for that scenario.

* cfg.mk (sc_po_check): Add another prereq.
($(srcdir)/daemon/qemu_dispatch.h): Add rule.

13 years agoSkip bugs which are CLOSED in todo list
Daniel P. Berrange [Thu, 7 Jul 2011 15:03:22 +0000 (16:03 +0100)]
Skip bugs which are CLOSED in todo list

* docs/todo.pl: Skip closed bugs

13 years agoAdd missing cleanup for transient guests in UML driver
Daniel P. Berrange [Mon, 4 Jul 2011 11:11:56 +0000 (12:11 +0100)]
Add missing cleanup for transient guests in UML driver

The UML inotify handler would kill off guests when certain
conditions arise, but it forgot to remove transient guests
from the list of domains

* src/uml/uml_driver.c: Cleanup transient guests

13 years agoAdd auditing to the UML driver
Daniel P. Berrange [Mon, 4 Jul 2011 11:10:30 +0000 (12:10 +0100)]
Add auditing to the UML driver

* src/uml/uml_driver.c: Add audit hooks

13 years agoAdd auditing to the LXC driver
Daniel P. Berrange [Mon, 4 Jul 2011 11:06:14 +0000 (12:06 +0100)]
Add auditing to the LXC driver

* src/lxc/lxc_driver.c: Add auditing hooks

13 years agoAdd virtualization type in audit messages
Daniel P. Berrange [Mon, 4 Jul 2011 11:21:21 +0000 (12:21 +0100)]
Add virtualization type in audit messages

Since a host can run several different virtualization types at
the same time, audit messages should allow domains to be identified.
Add a 'virt={qemu,kvm,uml,lxc,...}' key to domain audit messages

* src/conf/domain_audit.c: Identify virt type of guest

13 years agoAdd auditing of filesystems
Daniel P. Berrange [Mon, 4 Jul 2011 11:00:33 +0000 (12:00 +0100)]
Add auditing of filesystems

When passing through filesystems from the host to a guest, the
host filesystem passed must be audited

* src/conf/domain_audit.{c,h}: Add virDomainAuditFS

13 years agoMove qemu_audit.h helpers into shared code
Daniel P. Berrange [Mon, 4 Jul 2011 10:56:13 +0000 (11:56 +0100)]
Move qemu_audit.h helpers into shared code

The LXC and UML drivers can both make use of auditing. Move
the qemu_audit.{c,h} files to src/conf/domain_audit.{c,h}

* src/conf/domain_audit.c: Rename from src/qemu/qemu_audit.c
* src/conf/domain_audit.h: Rename from src/qemu/qemu_audit.h
* src/Makefile.am: Remove qemu_audit.{c,h}, add domain_audit.{c,h}
* src/qemu/qemu_audit.h, src/qemu/qemu_cgroup.c,
  src/qemu/qemu_command.c, src/qemu/qemu_driver.c,
  src/qemu/qemu_hotplug.c, src/qemu/qemu_migration.c,
  src/qemu/qemu_process.c: Update for changed audit API names

13 years agoesx: Initialize all instances of esxVMX_Data to zero
Matthias Bolte [Tue, 12 Jul 2011 09:34:55 +0000 (11:34 +0200)]
esx: Initialize all instances of esxVMX_Data to zero

To avoid using or freeing uninitialized memory or pointers.

13 years agorpc: Fix compile error due to potentially unused parameter
Matthias Bolte [Tue, 12 Jul 2011 15:06:16 +0000 (17:06 +0200)]
rpc: Fix compile error due to potentially unused parameter

connectDBus is only used if HAVE_DBUS is set. Therefore mark
it as potentially unused.

13 years agoFix build when using polkit0
Jim Fehlig [Thu, 7 Jul 2011 21:12:26 +0000 (15:12 -0600)]
Fix build when using polkit0

V2: Remove policy kit references from virNetServer and use DBus APIs
    directly, if available.

13 years agoImplement code to attach to external QEMU instances.
Daniel P. Berrange [Thu, 5 May 2011 16:32:21 +0000 (17:32 +0100)]
Implement code to attach to external QEMU instances.

Given a PID, the QEMU driver reads /proc/$PID/cmdline and
/proc/$PID/environ to get the configuration. This is fed
into the ARGV->XML convertor to build an XML configuration
for the process.

/proc/$PID/exe is resolved to identify the full command
binary path

After checking for name/uuid uniqueness, an attempt is
made to connect to the monitor socket. If successful
then 'info status' and 'info kvm' are issued to determine
whether the CPUs are running and if KVM is enabled.

* src/qemu/qemu_driver.c: Implement virDomainQemuAttach
* src/qemu/qemu_process.h, src/qemu/qemu_process.c: Add
  qemuProcessAttach to connect to the monitor of an
  existing QEMU process

13 years agoAdd monitor API for checking whether KVM is enabled
Daniel P. Berrange [Fri, 17 Jun 2011 14:31:45 +0000 (15:31 +0100)]
Add monitor API for checking whether KVM is enabled

When attaching to an external QEMU process, it is neccessary
to check if the process is using KVM or not. This can be done
using a monitor command

* src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
  src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_json.h,
  src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h: Add
  API for checking if KVM is enabled

13 years agoAdd a method for extracting QEMU argv from /proc
Daniel P. Berrange [Fri, 17 Jun 2011 14:34:00 +0000 (15:34 +0100)]
Add a method for extracting QEMU argv from /proc

To enable attaching to externally launched QEMU, we need
to be able to reverse engineer a guest XML config based
on the argv for a PID in /proc

* src/qemu/qemu_command.c, src/qemu/qemu_command.h: Add
  qemuParseCommandLinePid which extracts QEMU config from
  argv in /proc, given a PID number

13 years agoChange extract pidfile & monitor config from QEMU command line
Daniel P. Berrange [Fri, 17 Jun 2011 14:31:02 +0000 (15:31 +0100)]
Change extract pidfile & monitor config from QEMU command line

When converting QEMU argv into a virDomainDefPtr, also extract
the pidfile, monitor character device config and the monitor
mode.

* src/qemu/qemu_command.c, src/qemu/qemu_command.h: Extract
  pidfile & monitor config from QEMU argv
* src/qemu/qemu_driver.c, tests/qemuargv2xmltest.c: Add extra
  params when calling qemuParseCommandLineString

13 years agoKeep pidfile path in qemuDomainObjPrivate struct
Daniel P. Berrange [Fri, 17 Jun 2011 13:43:54 +0000 (14:43 +0100)]
Keep pidfile path in qemuDomainObjPrivate struct

Avoid re-formatting the pidfile path everytime we need it. Create
it once when starting the guest, and preserve it until the guest
is shutdown.

* src/libvirt_private.syms, src/util/util.c,
  src/util/util.h: Add virFileReadPidPath
* src/qemu/qemu_domain.h: Add pidfile field
* src/qemu/qemu_process.c: Store pidfile path in qemuDomainObjPrivate

13 years agoAdd a new 'virsh qemu-attach' command.
Daniel P. Berrange [Thu, 5 May 2011 16:32:07 +0000 (17:32 +0100)]
Add a new 'virsh qemu-attach' command.

This command allows libvirt to attach to an existing QEMU
instance.

 $ qemu-kvm -cdrom ~/demo.iso \
     -monitor unix:/tmp/demo,server,nowait \
     -name foo \
     -uuid cece4f9f-dff0-575d-0e8e-01fe380f12ea  &
 $ QEMUPID=$!
 $ virsh qemu-attach $QEMUPID

13 years agoDefine remote wire protocol & impls for virDomainQemuAttach
Daniel P. Berrange [Thu, 5 May 2011 16:31:58 +0000 (17:31 +0100)]
Define remote wire protocol & impls for virDomainQemuAttach

This tweaks the RPC generator to cope with some naming
conventions used for the QEMU specific APIs

* daemon/remote.c: Server side dispatcher
* src/remote/remote_driver.c: Client side dispatcher
* src/remote/qemu_protocol.x: Wire protocol definition
* src/rpc/gendispatch.pl: Use '$structprefix' in method
  names, fix QEMU flags and fix dispatcher method names

13 years agoDefine a QEMU specific API to attach to a running QEMU process
Daniel P. Berrange [Thu, 5 May 2011 14:05:40 +0000 (15:05 +0100)]
Define a QEMU specific API to attach to a running QEMU process

Introduce a new API in libvirt-qemu.so

 virDomainPtr virDomainQemuAttach(virConnectPtr domain,
                                  unsigned long long pid,
                                  unsigned int flags);

This allows libvirtd to attach to an existing, externally
launched QEMU process. This is useful for QEMU developers who
prefer to launch QEMU themselves for debugging/devel reasons,
but still want the benefit of libvirt based tools like
virt-top, virt-viewer, etc

* include/libvirt/libvirt-qemu.h: Define virDomainQemuAttach
* src/driver.h, src/libvirt-qemu.c, src/libvirt_qemu.syms:
  Driver glue for virDomainQemuAttach

13 years agoqemu: update configuration file
Alex Jia [Tue, 12 Jul 2011 10:42:41 +0000 (18:42 +0800)]
qemu: update configuration file

* src/qemu/qemu.conf: Add blkio controller into qemu.conf.

13 years agoqemu: avoid fd leak on core dump failure
Eric Blake [Mon, 11 Jul 2011 18:07:11 +0000 (12:07 -0600)]
qemu: avoid fd leak on core dump failure

* src/qemu/qemu_driver.c (doCoreDump): Guarantee fd is closed.

13 years agomaint: rename virtaudit to match file contents
Eric Blake [Mon, 11 Jul 2011 19:42:15 +0000 (13:42 -0600)]
maint: rename virtaudit to match file contents

* src/util/virtaudit.[ch]: Rename...
* src/util/viraudit.[ch]: ...to match virAudit* API.
* src/Makefile.am (UTIL_SOURCES): Reflect rename.
* daemon/libvirtd.c: Likewise.
* po/POTFILES.in: Likewise.
* src/libvirt_private.syms: Likewise.
* src/qemu/qemu_audit.c: Likewise.

13 years agoremote/ssh: support for no_verify.
Oskari Saarenmaa [Mon, 11 Jul 2011 19:50:31 +0000 (22:50 +0300)]
remote/ssh: support for no_verify.

Set StrictHostKeyChecking=no to auto-accept new ssh host keys if the
no_verify extra parameter was specified.  This won't disable host key
checking for already known hosts.  Includes a test and documentation.

13 years agoFix virsh inject-nmi man page
KAMEZAWA Hiroyuki [Tue, 12 Jul 2011 09:40:16 +0000 (17:40 +0800)]
Fix virsh inject-nmi man page

* tools/virsh.pod: move the description which was misplaced

13 years agodomain_conf: Free temporary variable
Michal Privoznik [Tue, 12 Jul 2011 09:01:37 +0000 (17:01 +0800)]
domain_conf: Free temporary variable

* src/conf/domain_conf.c: caller must free returned value of
  virXPathString in useserial

13 years agoesx: Fix a potential crash
Osier Yang [Tue, 12 Jul 2011 09:23:35 +0000 (17:23 +0800)]
esx: Fix a potential crash

Initialize ptr data.datastorePathWithoutFileName as NULL, otherwise
it might cause crash when trying to free it in cleanup.

13 years agobuild: also check qemu_protocol for on-the-wire stability
Eric Blake [Fri, 8 Jul 2011 16:54:02 +0000 (10:54 -0600)]
build: also check qemu_protocol for on-the-wire stability

Since we are going to add some libvirt-qemu.so entry points in
0.9.4, we might as well start checking for RPC stability, just
as for libvirt.so.

* src/Makefile.am (PROTOCOL_STRUCTS): New variable.
(remote_protocol-structs): Rename...
(%_protocol-structs): ...and make more generic.
* src/qemu_protocol-structs: New file.

13 years agobuild: avoid requiring -lm
Eric Blake [Mon, 11 Jul 2011 23:22:20 +0000 (17:22 -0600)]
build: avoid requiring -lm

log2() is heavy when ffs() can do the same thing.  But ffs()
requires gnulib support for mingw.

This patch solves this linker error on Fedora 14.

/usr/bin/ld: libvirt_lxc-domain_conf.o: undefined reference to symbol 'log2@@GLIBC_2.2.5'
/usr/bin/ld: note: 'log2@@GLIBC_2.2.5' is defined in DSO /lib64/libm.so.6 so try adding it to the linker command line
/lib64/libm.so.6: could not read symbols: Invalid operation
collect2: ld returned 1 exit status

* .gnulib: Update to latest, for ffs.
* bootstrap.conf (gnulib_modules): Import ffs.
* src/conf/domain_conf.c (virDomainDefParseXML): Use ffs instead
of log2.
Reported by Dave Allan.

13 years agoRemove code no longer used after commit df0b57a9
Jim Fehlig [Mon, 11 Jul 2011 20:38:03 +0000 (14:38 -0600)]
Remove code no longer used after commit df0b57a9

13 years agoAdd domain type checking
Matthias Bolte [Mon, 11 Jul 2011 17:29:09 +0000 (19:29 +0200)]
Add domain type checking

The drivers were accepting domain configs without checking if those
were actually meant for them. For example the LXC driver happily
accepts configs with type QEMU.

Add a check for the expected domain types to the virDomainDefParse*
functions.

13 years agoremote: Fix memory leak
Alex Jia [Mon, 11 Jul 2011 05:14:45 +0000 (13:14 +0800)]
remote: Fix memory leak

Detected in valgrind run:

==9184== 1 bytes in 1 blocks are definitely lost in loss record 1 of 19
==9184==    at 0x4A04A28: calloc (vg_replace_malloc.c:467)
==9184==    by 0x3073715F78: xdr_array (xdr_array.c:97)
==9184==    by 0x4CF97C9: xdr_remote_domain_get_security_label_ret (remote_protocol.c:1696)
==9184==    by 0x4D08741: virNetMessageDecodePayload (virnetmessage.c:286)
==9184==    by 0x4D00F78: virNetClientProgramCall (virnetclientprogram.c:318)
==9184==    by 0x4CE3887: call (remote_driver.c:3933)
==9184==    by 0x4CF71C6: remoteDomainGetSecurityLabel (remote_driver.c:1580)
==9184==    by 0x4CCA480: virDomainGetSecurityLabel (libvirt.c:7340)
==9184==    by 0x41993A: cmdDominfo (virsh.c:2414)
==9184==    by 0x411E92: vshCommandRun (virsh.c:12730)
==9184==    by 0x4211ED: main (virsh.c:14076)
==9184==
==9184== 2 bytes in 1 blocks are definitely lost in loss record 2 of 19
==9184==    at 0x4A04A28: calloc (vg_replace_malloc.c:467)
==9184==    by 0x3073715F78: xdr_array (xdr_array.c:97)
==9184==    by 0x4CF974F: xdr_remote_node_get_security_model_ret (remote_protocol.c:1713)
==9184==    by 0x4D08741: virNetMessageDecodePayload (virnetmessage.c:286)
==9184==    by 0x4D00F78: virNetClientProgramCall (virnetclientprogram.c:318)
==9184==    by 0x4CE3887: call (remote_driver.c:3933)
==9184==    by 0x4CF6F96: remoteNodeGetSecurityModel (remote_driver.c:1648)
==9184==    by 0x4CBF799: virNodeGetSecurityModel (libvirt.c:7382)
==9184==    by 0x4197D7: cmdDominfo (virsh.c:2394)
==9184==    by 0x411E92: vshCommandRun (virsh.c:12730)
==9184==    by 0x4211ED: main (virsh.c:14076)
==9184==
==9184== 8 bytes in 1 blocks are definitely lost in loss record 3 of 19
==9184==    at 0x4A04A28: calloc (vg_replace_malloc.c:467)
==9184==    by 0x3073715F78: xdr_array (xdr_array.c:97)
==9184==    by 0x4CF9729: xdr_remote_node_get_security_model_ret (remote_protocol.c:1710)
==9184==    by 0x4D08741: virNetMessageDecodePayload (virnetmessage.c:286)
==9184==    by 0x4D00F78: virNetClientProgramCall (virnetclientprogram.c:318)
==9184==    by 0x4CE3887: call (remote_driver.c:3933)
==9184==    by 0x4CF6F96: remoteNodeGetSecurityModel (remote_driver.c:1648)
==9184==    by 0x4CBF799: virNodeGetSecurityModel (libvirt.c:7382)
==9184==    by 0x4197D7: cmdDominfo (virsh.c:2394)
==9184==    by 0x411E92: vshCommandRun (virsh.c:12730)
==9184==    by 0x4211ED: main (virsh.c:14076)
==9184==
==9184== LEAK SUMMARY:
==9184==    definitely lost: 11 bytes in 3 blocks

* src/remote/remote_driver.c: Avoid leak on remoteDomainGetSecurityLabel
  and remoteNodeGetSecurityModel.

13 years agotests: simplify formatting
Eric Blake [Mon, 11 Jul 2011 15:19:11 +0000 (09:19 -0600)]
tests: simplify formatting

The shell version would output 40 extra spaces for a test with
a multiple of 40 sub-tests, and the C version can use the same
printf optimization for avoiding a loop over single space output
as the shell version.

* tests/testutils.c (virtTestMain): Avoid loop for alignment.
* tests/test-lib.sh: Fix formatting when counter is multiple of 40.

13 years agoDo not drop kernel cmdline for xen pv domains
Jim Fehlig [Thu, 7 Jul 2011 01:17:16 +0000 (19:17 -0600)]
Do not drop kernel cmdline for xen pv domains

Kernel cmdline args can be passed to xen pv domains even when a
bootloader is specified.  The current config-to-sxpr mapping
ignores cmdline when bootloader is present.

Since the xend sub-driver is used with many xen toolstack versions,
this patch takes conservative approach of adding an else block to
existing !def->os.bootloader, and only appends sxpr if def->os.cmdline
is non-NULL.

V2: Fix existing testcase broken by this patch and add new testcases

13 years agokill vm if saving config failed in v3 protocol
Wen Congyang [Fri, 1 Jul 2011 10:05:43 +0000 (18:05 +0800)]
kill vm if saving config failed in v3 protocol

If virDomainSaveConfig() failed, we will return NULL to source,
and the vm is still available to restart during confirm() step in
v3 protocol. So we should kill it off in qemuMigrationFinish().

In v2 protocol, we should not set vm to NULL, because we hold
a reference of vm and should unrefernce it.

13 years agoRPC: fix argument's name
Wen Congyang [Mon, 11 Jul 2011 08:26:34 +0000 (16:26 +0800)]
RPC: fix argument's name

13 years agofix typo error
Wen Congyang [Mon, 11 Jul 2011 08:26:16 +0000 (16:26 +0800)]
fix typo error

13 years agobios: Add support for SGA
Michal Privoznik [Fri, 8 Jul 2011 07:56:17 +0000 (09:56 +0200)]
bios: Add support for SGA

This patch creates new <bios> element which, at this time has only the
attribute useserial='yes|no'. This attribute allow users to use
Serial Graphics Adapter and see BIOS messages from the very first moment
domain boots up. Therefore, users can choose boot medium, set PXE, etc.

13 years agoFix rpm build with sanlock and without QEmu
Daniel Veillard [Mon, 11 Jul 2011 07:57:01 +0000 (15:57 +0800)]
Fix rpm build with sanlock and without QEmu

The qemu-sanlock.conf file is not installed in this case

13 years agovbox: Fix logic in storage driver open function
Matthias Bolte [Thu, 7 Jul 2011 07:21:37 +0000 (09:21 +0200)]
vbox: Fix logic in storage driver open function

If the main driver is the vbox driver, then the open function
has to return an error if the private data is invalid.

13 years agotests: Improve output of tests that decide to skip at runtime
Matthias Bolte [Sat, 9 Jul 2011 09:50:38 +0000 (11:50 +0200)]
tests: Improve output of tests that decide to skip at runtime

Don't print OK/FAIL for tests that decide to be skipped after
calling virtTestMain. Delay printing of the indentation before
the first test until we know that the test didn't decide to be
skipped.

Also make the reconnect test use VIRT_TEST_MAIN.

13 years agotests: Fix compressed test output padding logic
Matthias Bolte [Sat, 9 Jul 2011 08:40:37 +0000 (10:40 +0200)]
tests: Fix compressed test output padding logic

The current logic tries to count from 1 to 40 and ignores paddings
of 0 and 1 to 40. This doesn't work for counter + 1 mod 40 == 0
like here for counter value 159

TEST: virsh-all
      ........................................ 40
      ........................................ 80
      ........................................ 120
      ....................................... 159 OK
PASS: virsh-all

Also seq isn't portable. Therefore, calculate the correct padding
length directly and use printf to output it at once.

13 years agotests: Use EXIT_AM_SKIP instead of 77 directly
Matthias Bolte [Fri, 8 Jul 2011 23:24:44 +0000 (01:24 +0200)]
tests: Use EXIT_AM_SKIP instead of 77 directly

13 years agorpc: Fix whitespace problem in generated code
Matthias Bolte [Fri, 8 Jul 2011 22:10:04 +0000 (00:10 +0200)]
rpc: Fix whitespace problem in generated code

Add missing line break and fix indention level.

Reported by Cole Robinson.

13 years agosanlock: avoid lockspace setup when auto_disk_lease is off
Federico Simoncelli [Fri, 8 Jul 2011 10:18:35 +0000 (10:18 +0000)]
sanlock: avoid lockspace setup when auto_disk_lease is off

When auto_disk_lease is off we should avoid the automatic lockspace
creation.

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
13 years agolibvirtd: diagnose explicitly requested but missing conf file
Eric Blake [Fri, 8 Jul 2011 17:44:25 +0000 (11:44 -0600)]
libvirtd: diagnose explicitly requested but missing conf file

Fixes test regression introduced in commit 8e2e4780.

* daemon/libvirtd.c (daemonConfigLoad): Add argument.
(main): Update caller.

13 years agoqemu: clean up OOM checks
Michael Santos [Fri, 8 Jul 2011 15:13:54 +0000 (11:13 -0400)]
qemu: clean up OOM checks

13 years agoDon't exit if the libvirtd config does not exist
Daniel P. Berrange [Fri, 8 Jul 2011 14:27:42 +0000 (15:27 +0100)]
Don't exit if the libvirtd config does not exist

It is common for the $HOME/.libvirt/libvirtd.conf file to not
exist. Treat this situation as non-fatal since we can carry
on with our default settings just fine.

* daemon/libvirtd.c: Treat ENOENT as non-fatal when loading
  config

13 years agoFix sending of reply to final RPC message
Daniel P. Berrange [Fri, 8 Jul 2011 11:54:29 +0000 (12:54 +0100)]
Fix sending of reply to final RPC message

The dispatch for the CLOSE RPC call was invoking the method
virNetServerClientClose(). This caused the client connection
to be immediately terminated. This meant the reply to the
final RPC message was never sent. Prior to the RPC rewrite
we merely flagged the connection for closing, and actually
closed it when the next RPC call dispatch had completed.

* daemon/remote.c: Flag connection for a delayed close
* daemon/stream.c: Update to use new API for closing
  failed connection
* src/rpc/virnetserverclient.c, src/rpc/virnetserverclient.h:
  Add support for a delayed connection close. Rename the
  virNetServerClientMarkClose method to virNetServerClientImmediateClose
  to clarify its semantics

13 years agoFix leak of remote driver if final 'CLOSE' RPC call fails
Daniel P. Berrange [Fri, 8 Jul 2011 11:41:06 +0000 (12:41 +0100)]
Fix leak of remote driver if final 'CLOSE' RPC call fails

When closing a remote connection we issue a (fairly pointless)
'CLOSE' RPC call to the daemon. If this fails we skip all the
cleanup of private data, but the virConnectPtr object still
gets released as normal. This causes a memory leak. Since the
CLOSE RPC call is pretty pointless, just carry on freeing the
remote driver if it fails.

* src/remote/remote_driver.c: Ignore failure to issue CLOSE
  RPC call

13 years agoFix release of outgoing stream confirmation/abort message
Daniel P. Berrange [Fri, 8 Jul 2011 11:37:22 +0000 (12:37 +0100)]
Fix release of outgoing stream confirmation/abort message

When sending back the final OK or ERROR message on completion
of a stream, we were not decrementing the 'nrequests' tracker
on the client. With the default requests limit of '5', this
meant once a client had created 5 streams, they are unable to
process any further RPC calls.  There was also a bug when
handling an error from decoding a message length header, which
meant a client connection would not immediately be closed.

* src/rpc/virnetserverclient.c: Fix release of request after
  stream completion & mark client for close on error

13 years agoFix leak of 'msg' object in client stream code
Daniel P. Berrange [Fri, 8 Jul 2011 11:35:36 +0000 (12:35 +0100)]
Fix leak of 'msg' object in client stream code

In one exit path we forgot to free the virNetMessage object causing
a large memory leak for streams which send a lot of data. Some other
paths were calling VIR_FREE directly instead of virNetMessageFree
although this was (currently) harmless.

* src/rpc/virnetclientstream.c: Fix leak of msg object
* src/rpc/virnetclientprogram.c: Call virNetMessageFree instead
  of VIR_FREE

13 years agoFix potential crash in libvirtd with active streams
Daniel P. Berrange [Fri, 8 Jul 2011 11:33:52 +0000 (12:33 +0100)]
Fix potential crash in libvirtd with active streams

If a client disconnects while it has a stream active, there is
a race condition which could see libvirtd crash. This is because
the client struct may be freed before the last stream event has
triggered. This is trivially solved by holding an extra reference
on the client for the stream callbak

* daemon/stream.c: Acquire reference on client when adding the
  stream callback

13 years agoFix mistaken order of server cert/key parameters in constructor
Daniel P. Berrange [Fri, 8 Jul 2011 10:14:20 +0000 (11:14 +0100)]
Fix mistaken order of server cert/key parameters in constructor

The virNetTLSContextNew was being passed key/cert parameters in
the wrong order. This wasn't immediately visible because if
virNetTLSContextNewPath was used, a second bug reversed the order
of those parameters again.

Only if the paths were manually specified in /etc/libvirt/libvirtd.conf
did the bug appear

* src/rpc/virnettlscontext.c: Fix order of params passed to
  virNetTLSContextNew

13 years agographics: add support for action_if_connected in qemu
Michal Privoznik [Thu, 26 May 2011 14:15:54 +0000 (16:15 +0200)]
graphics: add support for action_if_connected in qemu

This option accepts 3 values:
-keep, to keep current client connected (Spice+VNC)
-disconnect, to disconnect client (Spice)
-fail, to fail setting password if there is a client connected (Spice)

13 years agoutil: Don't try to fchown files opened as non-root
Jiri Denemark [Fri, 8 Jul 2011 12:11:01 +0000 (14:11 +0200)]
util: Don't try to fchown files opened as non-root

When virFileOpenAs is called with VIR_FILE_OPEN_AS_UID flag and uid/gid
different from root/root while libvirtd is running as root, we fork a
new child, change its effective UID/GID to uid/gid and run
virFileOpenAsNoFork. It doesn't make any sense to fchown() the opened
file in this case since we already know that uid/gid can access the file
when open succeeds and one of the following situations may happen:

- the file is already owned by uid/gid and we skip fchown even before
  this patch
- the file is owned by uid but not gid because it was created in a
  directory with SETGID set, in which case it is desirable not to change
  the group
- the file may be owned by a completely different user and/or group
  because it was created on a root-squashed or even all-squashed NFS
  filesystem, in which case fchown would most likely fail anyway

13 years agoqemu: Don't chown files on NFS share if dynamic_ownership is off
Michal Privoznik [Thu, 7 Jul 2011 15:33:15 +0000 (17:33 +0200)]
qemu: Don't chown files on NFS share if dynamic_ownership is off

When dynamic ownership is disabled we don't want to chown any files,
not just local.

13 years agomicroblaze: Add architecture support
John Williams [Thu, 7 Jul 2011 02:45:05 +0000 (12:45 +1000)]
microblaze: Add architecture support

Add libvirt support for MicroBlaze architecture as a QEMU target.  Based on mips/mipsel pattern.

Signed-off-by: John Williams <john.williams@petalogix.com>
13 years agoSkip some xen tests if xend is not running
Jim Fehlig [Thu, 7 Jul 2011 21:53:41 +0000 (15:53 -0600)]
Skip some xen tests if xend is not running

Currently, the xen statstest and reconnect tests are only compiled
if xend is running.  Compile them unconditionally if xen headers
are present, but skip the tests at runtime if xend is not running.

This is in response to Eric's suggestion here

https://www.redhat.com/archives/libvir-list/2011-July/msg00367.html

13 years agoutil: drop unused safezero argument
Eric Blake [Wed, 6 Jul 2011 22:32:10 +0000 (16:32 -0600)]
util: drop unused safezero argument

No caller was using the flags argument, and this function is internal
only, so we might as well skip it.

* src/util/util.h (safezero): Update signature.
* src/util/util.c (safezero): Update function.
* src/locking/lock_driver_sanlock.c
(virLockManagerSanlockSetupLockspace)
(virLockManagerSanlockCreateLease): Update all callers.
* src/storage/storage_backend.c (createRawFile): Likewise.

13 years agoconf: prefer unsigned int for flags
Eric Blake [Wed, 6 Jul 2011 22:05:03 +0000 (16:05 -0600)]
conf: prefer unsigned int for flags

* src/conf/domain_conf.c (virDomainGraphicsDefParseXML)
(virDomainDeviceInfoFormat, virDomainDeviceInfoParseXML)
(virDomainDiskDefParseXML, virDomainControllerDefParseXML)
(virDomainFSDefParseXML, virDomainNetDefParseXML)
(virDomainChrDefParseTargetXML, virDomainChrDefParseXML)
(virDomainSmartcardDefParseXML, virDomainInputDefParseXML)
(virDomainTimerDefParseXML, virDomainSoundDefParseXML)
(virDomainWatchdogDefParseXML, virDomainMemballoonDefParseXML)
(virDomainVideoDefParseXML)
(virDomainHostdevSubsysUsbDefParseXML)
(virDomainHostdevSubsysPciDefParseXML)
(virDomainHostdevDefParseXML, virSecurityLabelDefParseXML)
(virDomainVcpuPinDefParseXML, virDomainDefParseXML)
(virDomainDefParse, virDomainDiskDefFormat)
(virDomainControllerDefFormat, virDomainFSDefFormat)
(virDomainNetDefFormat, virDomainChrSourceDefFormat)
(virDomainChrDefFormat, virDomainSmartcardDefFormat)
(virDomainSoundDefFormat, virDomainMemballoonDefFormat)
(virDomainWatchdogDefFormat, virDomainVideoDefFormat)
(virDomainInputDefFormat, virDomainGraphicsDefFormat)
(virDomainHostdevDefFormat, virDomainObjFormat): Switch signature.
(virDomainObjTaint, virDomainSaveStatus): Use unsigned flags.

13 years agodrivers: prefer unsigned int for flags
Eric Blake [Wed, 6 Jul 2011 20:40:19 +0000 (14:40 -0600)]
drivers: prefer unsigned int for flags

Now that the public APIs always use unsigned flags, the internal
driver callbacks might as well do likewise.

* src/driver.h (vrDrvOpen, virDrvDomainCoreDump)
(virDrvDomainGetXMLDesc, virDrvNetworkGetXMLDesc)
(virDrvNWFilterGetXMLDesc): Update type.
* src/remote/remote_protocol.x (remote_open_args)
(remote_domain_core_dump_args, remote_domain_get_xml_desc_args)
(remote_network_get_xml_desc_args)
(remote_nwfilter_get_xml_desc_args): Likewise.
* src/test/test_driver.c: Update clients.
* src/remote/remote_driver.c: Likewise.
* src/xen/xen_hypervisor.c: Likewise.
* src/xen/xen_hypervisor.h: Likewise.
* src/xen/xen_driver.c: Likewise.
* src/xen/xend_internal.c: Likewise.
* src/xen/xend_internal.h: Likewise.
* src/xen/xm_internal.c: Likewise.
* src/xen/xm_internal.h: Likewise.
* src/xen/xs_internal.c: Likewise.
* src/xen/xs_internal.h: Likewise.
* src/xen/xen_inotify.c: Likewise.
* src/xen/xen_inotify.h: Likewise.
* src/phyp/phyp_driver.c: Likewise.
* src/openvz/openvz_driver.c: Likewise.
* src/vmware/vmware_driver.c: Likewise.
* src/vbox/vbox_driver.c: Likewise.
* src/vbox/vbox_tmpl.c: Likewise.
* src/xenapi/xenapi_driver.c: Likewise.
* src/esx/esx_driver.c: Likewise.
* src/esx/esx_interface_driver.c: Likewise.
* src/esx/esx_network_driver.c: Likewise.
* src/esx/esx_storage_driver.c: Likewise.
* src/esx/esx_device_monitor.c: Likewise.
* src/esx/esx_secret_driver.c: Likewise.
* src/esx/esx_nwfilter_driver.c: Likewise.
* src/interface/netcf_driver.c: Likewise.
* src/nwfilter/nwfilter_driver.c: Likewise.
* src/libxl/libxl_driver.c: Likewise.
* src/qemu/qemu_driver.c: Likewise.
* src/lxc/lxc_driver.c: Likewise.
* src/uml/uml_driver.c: Likewise.
* src/network/bridge_driver.c: Likewise.
* src/secret/secret_driver.c: Likewise.
* src/storage/storage_driver.c: Likewise.
* src/node_device/node_device_hal.c: Likewise.
* src/node_device/node_device_udev.c: Likewise.
* src/remote_protocol-structs: Likewise.

13 years agopublic API: prefer unsigned int for flags
Eric Blake [Wed, 6 Jul 2011 19:55:47 +0000 (13:55 -0600)]
public API: prefer unsigned int for flags

Most APIs use 'unsigned int flags'; but a few stragglers were using
a signed value.  In particular, the vir*GetXMLDesc APIs were
split-brain, with inconsistent choice of types.  Although it is
an API break to use 'int' instead of 'unsigned int', it is ABI
compatible (pre-compiled apps will have no difference in behavior),
and generally apps can be recompiled without any issue (only rare
apps that compiled with extremely high warning levels, or which
pass libvirt API around as typed function pointers, would have to
make any code changes to deal with the change).

The migrate APIs use 'unsigned long flags', which can't be changed,
due to ABI constraints.

This patch intentionally touches only the public API, to prove the
claim that most existing code (including driver callbacks and virsh)
still compiles just fine in spite of the type change.

* include/libvirt/libvirt.h.in (virConnectOpenAuth)
(virDomainCoreDump, virDomainGetXMLDesc, virNetworkGetXMLDesc)
(virNWFilterGetXMLDesc): Use unsigned int for flags.
(virDomainHasCurrentSnapshot): Use consistent spelling.
* src/libvirt.c (virConnectOpenAuth, virDomainCoreDump)
(virDomainGetXMLDesc, virNetworkGetXMLDesc)
(virNWFilterGetXMLDesc, do_open): Update accordingly.

13 years agomaint: print flags in hex during debug
Eric Blake [Wed, 6 Jul 2011 18:18:34 +0000 (12:18 -0600)]
maint: print flags in hex during debug

Debugging decimal flags is a pain.

* src/libvirt.c: Always print flags in hex.

13 years agovirsh: make destroy sound less scary
Eric Blake [Wed, 6 Jul 2011 21:42:47 +0000 (15:42 -0600)]
virsh: make destroy sound less scary

Destroy has a rather negative English connotation.  Try to reduce
the impact, so newbies aren't as scared to use it.

* tools/virsh.c: Tweak all destroy documentation.
* tools/virsh.pod: Likewise.

13 years agobuild: use gnulib pthread_sigmask
Eric Blake [Wed, 6 Jul 2011 14:46:15 +0000 (08:46 -0600)]
build: use gnulib pthread_sigmask

Gnulib finally learned how to do pthread_sigmask on mingw.

* .gnulib: Update to latest, for pthread_sigmask.
* bootstrap.conf (gnulib_modules): Add pthread_sigmask.
* configure.ac (AC_CHECK_FUNCS): Drop redundant check.
* src/rpc/virnetclient.c (virNetClientSetTLSSession)
(virNetClientIOEventLoop): Make code unconditional.
* src/util/command.c (virFork): Likewise.
* tools/virsh.c (doMigrate, cmdMigrate): Likewise.

13 years agobuild: fix virBufferVasprintf on mingw
Eric Blake [Thu, 30 Jun 2011 17:57:42 +0000 (11:57 -0600)]
build: fix virBufferVasprintf on mingw

Gnulib documents that mingw vsnprintf is broken (it returns -1
on out-of-space, instead of the count of what would have been
printed); but while we were using the snprintf wrapper, we had
not yet been using the vsnprintf wrapper.

Meanwhile, mingw (but not mingw64) has a replacement snprintf
that fixes return values, but still lacks %1$s support; so in
that case, gnulib didn't replace snprintf, but libintl then
went ahead and installed a version that supported %1$s but not
return values.  Gnulib has since been fixed to guarantee that
the snprintf module will always guarantee the constraints needed
by libintl.

Also, we want to guarantee that strdup sets errno on failure.

* .gnulib: Update to latest, for vsnprintf fix.
* bootstrap.conf (gnulib_modules): Add vsnprintf, strdup-posix.
Reported by Matthias Bolte.

13 years agoFix compilation of statstest.c during make check
Jim Fehlig [Thu, 7 Jul 2011 16:15:05 +0000 (10:15 -0600)]
Fix compilation of statstest.c during make check

13 years agopython: Fix bogus label placement
Matthias Bolte [Wed, 6 Jul 2011 17:25:18 +0000 (19:25 +0200)]
python: Fix bogus label placement

13 years agoutil: close the ioctl socket at the end of if(Get|Set)MacAddress
Laine Stump [Wed, 6 Jul 2011 06:50:06 +0000 (02:50 -0400)]
util: close the ioctl socket at the end of if(Get|Set)MacAddress

Otherwise this will leak an fd each time one of these functions is
called.

13 years agoutil: rename err_exit to cleanup in interface.c
Laine Stump [Wed, 6 Jul 2011 13:33:54 +0000 (09:33 -0400)]
util: rename err_exit to cleanup in interface.c

This brings it in line with the recommendations in HACKING.

13 years agosysinfo: delete unnecessary white space of sysinfo.
Minoru Usui [Wed, 29 Jun 2011 04:43:35 +0000 (13:43 +0900)]
sysinfo: delete unnecessary white space of sysinfo.

  * Trim each element and delete null entry of sysinfo by
  virSkipSpacesBackwards().

Signed-off-by: Minoru Usui <usui@mxm.nes.nec.co.jp>
13 years agoutil: add virTrimSpaces
Eric Blake [Wed, 29 Jun 2011 17:47:08 +0000 (11:47 -0600)]
util: add virTrimSpaces

The next patch wants to adjust an end pointer to trim trailing
spaces but without modifying the underlying string, but a more
generally useful ability to trim trailing spaces in place is
also worth providing.

* src/util/util.h (virTrimSpaces, virSkipSpacesBackwards): New
prototypes.
* src/util/util.c (virTrimSpaces, virSkipSpacesBackwards): New
functions.
* src/libvirt_private.syms (util.h): Export new functions.
Inspired by a patch by Minoru Usui.

13 years agoutil: fix virSkipSpaces
Eric Blake [Wed, 29 Jun 2011 17:30:43 +0000 (11:30 -0600)]
util: fix virSkipSpaces

Most clients of virSkipSpaces don't want to omit backslashes.
Also, open-coding the list of spaces is not as nice as using
c_isspace.

* src/util/util.c (virSkipSpaces): Use c_isspace.
(virSkipSpacesAndBackslash): New function.
* src/util/util.h (virSkipSpacesAndBackslash): New prototype.
* src/xen/xend_internal.c (sexpr_to_xend_topology): Update caller.
* src/libvirt_private.syms (util.h): Export new function.

13 years agodocs: minor whitespace cleanups
Eric Blake [Wed, 6 Jul 2011 19:49:28 +0000 (13:49 -0600)]
docs: minor whitespace cleanups

No change in wording.  One spacing change in a <pre>, noticed because
of odd XML formatting online; the rest is in free-flowing text to
make it easier to see nesting levels in the document.

* docs/formatdomain.html.in: Adjust spacing.  Break long lines.

13 years agoReduce code duplication in virFileMakePath(Helper)
Matthias Bolte [Wed, 6 Jul 2011 13:39:21 +0000 (15:39 +0200)]
Reduce code duplication in virFileMakePath(Helper)

Move stat and mkdir to virFileMakePathHelper.

Also use the stat result to detect whether the existing path
is a directory and set errno accordingly if it's not.

13 years agoapparmor: Finish incomplete renaming of relabel to norelabel
Matthias Bolte [Wed, 6 Jul 2011 12:15:05 +0000 (14:15 +0200)]
apparmor: Finish incomplete renaming of relabel to norelabel

Commit 693eac388f1759d was incomplete here.

13 years agoFix default value of security label 'relabel' attribute
Daniel P. Berrange [Tue, 5 Jul 2011 09:49:51 +0000 (10:49 +0100)]
Fix default value of security label 'relabel' attribute

When no <seclabel> is present in the XML, the virDomainSeclabelDef
struct is left as all zeros. Unfortunately, this means it gets setup
as type=dynamic, with relabel=no, which is an illegal combination.

Change the 'bool relabel' attribute in virDomainSeclabelDef to
the inverse 'bool norelabel' so that the default initialization
is sensible

* src/conf/domain_conf.c, src/conf/domain_conf.h,
  src/security/security_apparmor.c, src/security/security_selinux.c:
  Replace 'relabel' with 'norelabel'

13 years agoFix return value semantic of virFileMakePath
Matthias Bolte [Tue, 5 Jul 2011 21:02:53 +0000 (23:02 +0200)]
Fix return value semantic of virFileMakePath

Some callers expected virFileMakePath to set errno, some expected
it to return an errno value. Unify this to return 0 on success and
-1 on error. Set errno to report detailed error information.

Also optimize virFileMakePath if stat fails with an errno different
from ENOENT.

13 years agonodedev: Let check_fc_host_linux report errors to the caller
Matthias Bolte [Tue, 5 Jul 2011 21:57:14 +0000 (23:57 +0200)]
nodedev: Let check_fc_host_linux report errors to the caller

13 years agoFix compilation error when SASL support is disabled
Jean-Baptiste Rouault [Tue, 5 Jul 2011 15:30:09 +0000 (17:30 +0200)]
Fix compilation error when SASL support is disabled

This patch adds #if HAVE_SASL where needed in libvirtd.h

13 years agopci: initialize state values on reattach
Guannan Ren [Sun, 3 Jul 2011 12:09:44 +0000 (20:09 +0800)]
pci: initialize state values on reattach

add a new API pciDeviceReAttachInit() in pci.c to initialize state values for nodedev reattach

Initialize three state value of device driver to 1. This is just for a new call to
qemudNodeDeviceReAttach()

13 years agoxml: create an RNG file for common types and move some definitions there
Laine Stump [Sun, 26 Jun 2011 09:13:10 +0000 (05:13 -0400)]
xml: create an RNG file for common types and move some definitions there

domain.rng, network.rng, and interface.rng already use a few of the
same types (or in some cases *should* but don't), and an upcoming code
change will have them sharing even more. To prepare for that, this
patch takes those common data type definitions and moves them into
basictypes.rng.

This may break some rule about the need to RNG files to be autonomous
or something, but I saw that storageencryption.rng is used in this
way, so I figured it must not be completely against the law...

13 years agodocs: sort the file list in the schemas Makefile
Laine Stump [Tue, 5 Jul 2011 02:19:09 +0000 (22:19 -0400)]
docs: sort the file list in the schemas Makefile

13 years agoqemu: check flags in qemuDomainGetXMLDesc
Laine Stump [Sat, 2 Jul 2011 04:53:06 +0000 (00:53 -0400)]
qemu: check flags in qemuDomainGetXMLDesc

Although most functions with flags check to verify no application is
passing in flag bits that are currently undefined, for some reason
this function wasn't.

13 years agoconf: fix domain parse flags
Laine Stump [Mon, 4 Jul 2011 19:06:07 +0000 (15:06 -0400)]
conf: fix domain parse flags

* Change all flags args from int to unsigned int

* Allow passing flags in virDomainObjParseFile (and propogate those
  flags all the way down the call chain). Previously the flags were
  hardcoded (to VIR_DOMAIN_XML_INTERNAL_STATUS) several layers down
  the chain. Pass that value in at the one place that is currently
  calling virDomainObjParseFile.

13 years agotests: Disable networkxml2argvtest when configured without network
Matthias Bolte [Tue, 5 Jul 2011 13:26:18 +0000 (15:26 +0200)]
tests: Disable networkxml2argvtest when configured without network

Reported by Ruben Kerkhof.

13 years agoqemu: Fix virFileMakePath error handling in snapshot creation
Matthias Bolte [Mon, 4 Jul 2011 08:49:54 +0000 (10:49 +0200)]
qemu: Fix virFileMakePath error handling in snapshot creation

virFileMakePath returns an errno value on error, that will never
be negative. An virFileMakePath error would have been ignored here,
instead of being reported correctly.