]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/log
people/liuw/libxenctrl-split/libvirt.git
13 years agovirsh: Make "DEBUG" loglevel the superset
Supriya Kannery [Thu, 30 Jun 2011 08:22:32 +0000 (13:52 +0530)]
virsh: Make "DEBUG" loglevel the superset

Aligning loglevel values of virsh to that of libvirt.
"DEBUG"=0 loglevel, when specified through commandline or
env variable, should log all the messages. "ERROR=4"
should log only error messages.

Signed-off-by: Supriya Kannery <supriyak@in.ibm.com>
13 years agovirsh: Avoid using magic numbers for logging
Supriya Kannery [Thu, 30 Jun 2011 08:22:20 +0000 (13:52 +0530)]
virsh: Avoid using magic numbers for logging

Replace magic numbers with loglevel variables.

Signed-off-by: Supriya Kannery <supriyak@in.ibm.com>
13 years agoutil: Avoid duplicating virFileOpenAsNoFork in virFileOpenAs
Jiri Denemark [Thu, 14 Jul 2011 03:04:16 +0000 (11:04 +0800)]
util: Avoid duplicating virFileOpenAsNoFork in virFileOpenAs

In 2f4d2496a88055a8343b3efca618522da8715d92 I didn't notice that one
part of virFileOpenAs doesn't actually call to virFileOpenAsNoFork but
rather includes a copy of the code from there.

13 years agobuild: don't hand-roll cloexec code
Eric Blake [Thu, 7 Jul 2011 23:42:05 +0000 (17:42 -0600)]
build: don't hand-roll cloexec code

No need to repeat common code.

* bootstrap.conf (gnulib_modules): Import calloc-posix.
* src/util/bridge.c (brInit): Use virSetCloseExec.
(brSetInterfaceUp): Adjust flags name.
* src/uml/uml_driver.c (umlSetCloseExec): Delete.
(umlStartVMDaemon): Use util version instead.

13 years agoconf: prefer unsigned flags
Eric Blake [Thu, 7 Jul 2011 23:29:42 +0000 (17:29 -0600)]
conf: prefer unsigned flags

* src/conf/cpu_conf.h (virCPUDefFormat, virCPUDefFormatBuf):
Change flags type.
* src/conf/cpu_conf.c (virCPUDefFormat, virCPUDefFormatBuf):
Likewise.
* src/conf/storage_conf.c (_virStoragePoolOptions): Likewise.
* src/datatypes.h (_virConnect, _virStream): Likewise.

13 years agopython: prefer unsigned flags
Eric Blake [Thu, 7 Jul 2011 18:13:45 +0000 (12:13 -0600)]
python: prefer unsigned flags

* python/libvirt-override.c (libvirt_virConnectOpenAuth)
(libvirt_virDomainSnapshotListNames)
(libvirt_virDomainRevertToSnapshot): Change flags type.

13 years agonode_device: avoid implicit int
Eric Blake [Thu, 7 Jul 2011 18:04:41 +0000 (12:04 -0600)]
node_device: avoid implicit int

'unsigned a' and 'unsigned int a' are synonyms, but we generally
always spell out the 'int' in that case.  Fixing this will avoid
a false positive in the next syntax-check commit.

* src/conf/node_device_conf.h (pci_config_address)
(_virNodeDevCapsDef): Prefer 'unsigned int' over 'unsigned'.

13 years agovirsh, daemon: prefer unsigned flags
Eric Blake [Thu, 7 Jul 2011 17:53:04 +0000 (11:53 -0600)]
virsh, daemon: prefer unsigned flags

* tools/virsh.c (vshCmdDef): Change flags type.
* daemon/remote.c (remoteDispatchOpen): Likewise.

13 years agoxenapi: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 23:09:40 +0000 (17:09 -0600)]
xenapi: reject unknown flags

* src/xenapi/xenapi_driver.c (xenapiOpen, xenapiDomainReboot):
Reject unknown flags.
(xenapiDomainGetXMLDesc): Likewise, and pass known flags through
to XML generation.

13 years agovmware: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 23:08:28 +0000 (17:08 -0600)]
vmware: reject unknown flags

* src/vmware/vmware_driver.c (vmwareOpen, vmwareDomainReboot)
(vmwareDomainCreateXML, vmwareDomainCreateWithFlags): Reject
unknown flags.

13 years agovbox: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 23:06:11 +0000 (17:06 -0600)]
vbox: reject unknown flags

* src/vbox/vbox_driver.c (vboxOpenDummy): Reject unknown flags.
* src/vbox/vbox_tmpl.c (vboxOpen, vboxDomainReboot)
(vboxNetworkOpen, vboxNetworkGetXMLDesc, vboxStorageOpen)
(vboxStorageVolCreateXML, vboxStorageVolDelete)
(vboxStorageVolGetXMLDesc, vboxDomainScreenshot): Likewise.

13 years agouml: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 23:02:14 +0000 (17:02 -0600)]
uml: reject unknown flags

* src/uml/uml_driver.c (umlOpen, umlDomainGetXMLDesc)
(umlDomainBlockPeek): Reject unknown flags.

13 years agotest: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 23:00:08 +0000 (17:00 -0600)]
test: reject unknown flags

* src/test/test_driver.c (testOpen, testDomainCoreDump)
(testOpenNetwork, testNetworkGetXMLDesc, testOpenInterface)
(testInterfaceChangeBegin, testInterfaceChangeCommit)
(testInterfaceChangeRollback, testInterfaceGetXMLDesc)
(testInterfaceDefineXML, testInterfaceCreate)
(testInterfaceDestroy, testStorageOpen, testStoragePoolStart)
(testStorageFindPoolSources, testStoragePoolCreate)
(testStoragePoolDefine, testStoragePoolBuild)
(testStoragePoolDelete, testStoragePoolRefresh)
(testStoragePoolGetXMLDesc, testStorageVolumeCreateXML)
(testStorageVolumeCreateXMLFrom, testStorageVolumeDelete)
(testStorageVolumeGetXMLDesc, testDevMonOpen)
(testNodeNumOfDevices, testNodeListDevices)
(testNodeDeviceGetXMLDesc, testNodeDeviceCreateXML)
(testSecretOpen, testNWFilterOpen): Reject unknown flags.

13 years agoqemu: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 22:42:06 +0000 (16:42 -0600)]
qemu: reject unknown flags

* src/qemu/qemu_driver.c (qemudOpen, qemuDomainScreenshot)
(qemuDomainXMLFromNative, qemuDomainXMLToNative)
(qemudDomainBlockPeek, qemuCPUCompare, qemuCPUBaseline): Reject
unknown flags.
* src/qemu/qemu_migration.c (qemuMigrationConfirm): Likewise.
(_qemuMigrationCookie, qemuMigrationCookieXMLParse)
(qemuMigrationCookieXMLParseStr, qemuMigrationBakeCookie)
(qemuMigrationEatCookie): Make flags unsigned.
* src/qemu/qemu_domain.h: (qemuDomainDefFormatXML)
(qemuDomainFormatXML): Prefer unsigned flags.
* src/qemu/qemu_domain.c (qemuDomainDefFormatXML)
(qemuDomainFormatXML): Likewise.
(qemuDomainOpenLogHelper, qemuDomainCreateLog): Rename variable.

13 years agophyp: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 22:36:33 +0000 (16:36 -0600)]
phyp: reject unknown flags

* src/phyp/phyp_driver.c (phypOpen, phypDomainReboot)
(phypVIOSDriverOpen): Reject unknown flags.

13 years agoopenvz: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 22:34:58 +0000 (16:34 -0600)]
openvz: reject unknown flags

* src/openvz/openvz_driver.c (openvzDomainReboot, openvzOpen):
Reject unknown flags.

13 years agolxc: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 22:33:53 +0000 (16:33 -0600)]
lxc: reject unknown flags

* src/lxc/lxc_driver.c (lxcOpen, lxcDomainSetMemoryParameters)
(lxcDomainGetMemoryParameters): Reject unknown flags.
* src/lxc/lxc_container.c (lxcContainerStart): Rename flags to
cflags to reflect that it is not tied to libvirt.

13 years agolibxl: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 22:17:10 +0000 (16:17 -0600)]
libxl: reject unknown flags

* src/libxl/libxl_driver.c (libxlOpen, libxlDomainReboot)
(libxlDomainXMLFromNative, libxlDomainXMLToNative)
(libxlDomainCreateWithFlags): Reject unknown flags.

13 years agovirsh: fix missing prompt message for 'snapshot-delete' command
Nan Zhang [Wed, 13 Jul 2011 08:36:32 +0000 (16:36 +0800)]
virsh: fix missing prompt message for 'snapshot-delete' command

Make the command 'virsh snapshot-delete' has the appropriate prompt
message when executing sucessful or failed.

13 years agoqemu: build failed due to unused variables
Peter Krempa [Wed, 13 Jul 2011 10:11:43 +0000 (12:11 +0200)]
qemu: build failed due to unused variables

While compiling on F15 build crashed (probably because of new GCC).

13 years agostorage: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 22:51:23 +0000 (16:51 -0600)]
storage: reject unknown flags

* src/storage/storage_backend.c (virStorageBackendCreateBlockFrom)
(virStorageBackendCreateQemuImg)
(virStorageBackendCreateQcowCreate): Reject unknown flags.
* src/storage/storage_backend_disk.c (virStorageBackendDiskBuildPool)
(virStorageBackendDiskDeleteVol): Likewise.
* src/storage/storage_backend_fs.c
(virStorageBackendFileSystemNetFindPoolSources)
(virStorageBackendFileSystemBuild)
(virStorageBackendFileSystemDelete, createFileDir)
(virStorageBackendFileSystemVolBuildFrom)
(virStorageBackendFileSystemVolDelete): Likewise.
* src/storage/storage_backend_iscsi.c
(virStorageBackendISCSIFindPoolSources): Likewise.
* src/storage/storage_backend_logical.c
(virStorageBackendLogicalFindPoolSources)
(virStorageBackendLogicalBuildPool)
(virStorageBackendLogicalDeletePool)
(virStorageBackendLogicalDeleteVol): Likewise.
* src/storage/storage_driver.c (storageOpen, storagePoolCreate)
(storagePoolDefine, storagePoolRefresh, storagePoolGetXMLDesc)
(storageVolumeCreateXML, storageVolumeCreateXMLFrom)
(storageVolumeGetXMLDesc): Likewise.

13 years agonode_device: reject unknown flags
Eric Blake [Wed, 6 Jul 2011 22:21:23 +0000 (16:21 -0600)]
node_device: reject unknown flags

* src/node_device/node_device_driver.c (nodeNumOfDevices)
(nodeListDevices, nodeDeviceGetXMLDesc, nodeDeviceCreateXML):
Reject unknown flags.
* src/node_device/node_device_hal.c (halNodeDrvOpen): Likewise.
* src/node_device/node_device_udev.c (udevNodeDrvOpen): Likewise.

13 years agoutil: reject unknown flags, and prefer unsigned flags
Eric Blake [Wed, 6 Jul 2011 22:29:02 +0000 (16:29 -0600)]
util: reject unknown flags, and prefer unsigned flags

Silently ignored flags get in the way of new features that
use those flags.  Also, an upcoming syntax check will favor
unsigned flags.

* src/nodeinfo.h (nodeGetCPUStats, nodeGetMemoryStats): Drop
unused attribute.
* src/interface/netcf_driver.c (interfaceOpenInterface)
(interfaceDefineXML, interfaceCreate, interfaceDestroy): Reject
unknown flags.
* src/network/bridge_driver.c (networkOpenNetwork)
(networkGetXMLDesc): Likewise.
* src/nwfilter/nwfilter_driver.c (nwfilterOpen): Likewise.
* src/secret/secret_driver.c (secretOpen, secretDefineXML)
(secretGetXMLDesc, secretSetValue): Likewise.
* src/util/logging.c (virLogDefineFilter, virLogDefineOutput)
(virLogMessage): Likewise; also use unsigned flags.
* src/util/logging.h (virLogDefineFilter, virLogDefineOutput)
(virLogMessage): Change signature.
* src/util/command.c (virExecWithHook): Likewise.

13 years agolibvirt-qemu: use unsigned flags
Eric Blake [Fri, 8 Jul 2011 16:56:15 +0000 (10:56 -0600)]
libvirt-qemu: use unsigned flags

Like commit 1740c381, but for libvirt-qemu.

* src/remote/qemu_protocol.x (qemu_monitor_command_args): Adjust
type to match API.
* src/qemu_protocol-structs: Update accordingly.

13 years agomaint: print flags in hex during debug
Eric Blake [Fri, 8 Jul 2011 15:18:48 +0000 (09:18 -0600)]
maint: print flags in hex during debug

Continuation of commit 313ac7fd, and enforce things with a syntax
check.

Technically, virNetServerClientCalculateHandleMode is not printing
a mode_t, but rather a collection of VIR_EVENT_HANDLE_* bits;
however, these bits are < 8, so there is no different in the
output, and that was the easiest way to silence the new syntax check.

* cfg.mk (sc_flags_debug): New syntax check.
(exclude_file_name_regexp--sc_flags_debug): Add exemptions.
* src/fdstream.c (virFDStreamOpenFileInternal): Print flags in
hex, mode_t in octal.
* src/libvirt-qemu.c (virDomainQemuMonitorCommand)
(virDomainQemuAttach): Likewise.
* src/locking/lock_driver_nop.c (virLockManagerNopInit): Likewise.
* src/locking/lock_driver_sanlock.c (virLockManagerSanlockInit):
Likewise.
* src/locking/lock_manager.c: Likewise.
* src/qemu/qemu_migration.c: Likewise.
* src/qemu/qemu_monitor.c: Likewise.
* src/rpc/virnetserverclient.c
(virNetServerClientCalculateHandleMode): Print mode with %o.

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.