Commit Graph

5934 Commits

Author SHA1 Message Date
Stefan Berger
c4bd44d927 macvtap: libvirtd forgot macvtap dev name when restarted
During a shutdown/restart cycle libvirtd forgot the macvtap device name that it had created on behalf of a VM so that a stale macvtap device remained on the host when the VM terminated. Libvirtd has to actively tear down a macvtap device and it uses its name for identifying which device to tear down.

The solution is to not blank out the <target dev='...'/> completely, but only blank it out on VMs that are not active. So, if a VM is active, the device name makes it into the XML and is also being parsed. If a VM is not active, the device name is discarded.
2010-11-03 07:26:29 -04:00
Osier Yang
d9c75c8d37 tests: fix daemon-conf testing failure
libvirtd.conf uses "libvirt" as the value of "unix_sock_group",
however, group "libvirt" may not exist on the system, in this case
the case will always fail.

As a solution, replace "libvirt" with "$USER" in "tmp.conf".
2010-11-03 11:43:11 +01:00
Daniel Veillard
04cbfa4fae Fix virPipeReadUntilEOF on more than 1024 bytes of data
virPipeReadUntilEOF is used to read the stdout of exec'ed
and this could fail to capture the full output and read only
1024 bytes.
  The problem is that this is based on a poll loop, and in the
loop we read at most 1024 bytes per file descriptor, but we also
note in the loop if poll indicates that the process won't output
more than that on that fd by setting finished[i] = 1.
  The simplest way is that if we read a full buffer make sure
finished[i] is still 0 because we will need another pass in the
loop.
2010-11-03 08:43:43 +01:00
Eric Blake
b50408c143 virterror: supply missing spaces
* src/util/virterror.c (virErrorDomainName): Always supply
trailing space if category was present.
2010-11-02 15:34:52 -06:00
Eric Blake
8dd22be93e xen: work with xen 4.0.1 headers
* src/xen/xen_driver.h (includes): Include main xen headers
here...
* src/xen/xs_internal.c (includes): ...rather than in just one of
the sub-drivers.
2010-11-02 10:19:55 -06:00
Jim Fehlig
98b8424ed8 Fix build with polkit 0
Commit e8066d53 broke the build with polkit0:

remote.c: In function 'remoteDispatchAuthPolkit':
remote.c:4177: error: 'rv' undeclared (first use in this function)

Add missing identifier.
2010-11-02 10:11:16 -06:00
Daniel P. Berrange
a75cf152a5 Change calling conventions in remote driver client internals
The remoteIO() method has wierd calling conventions, where
it is passed a pre-allocated 'struct remote_call *' but
then free()s it itself, instead of letting the caller free().
This fixes those weird semantics

* src/remote/remote_driver.c: Sanitize semantics of remoteIO
  method wrt to memory release
2010-11-02 14:50:32 +00:00
Daniel P. Berrange
d532296cfa Fix comment for <video> tag in domain RNG schema
The comment for the <video> tag was a cut+paste error duplicating
info about the <graphics> tag

* docs/schemas/domain.rng: Fix comment for <video> tag
2010-11-02 14:46:54 +00:00
Daniel P. Berrange
a1de6ba0f1 Misc error handling fixes in text mode monitor commands
A couple of places in the text monitor were overwriting the
'ret' variable with a >= 0 value before success was actually
determined. So later error paths would not correctly return
the -1 value. The drive_add code was not checking for errors
like missing command

* src/qemu/qemu_monitor_text.c: Misc error handling fixes
2010-11-02 14:38:23 +00:00
Daniel P. Berrange
347d266c51 Ignore open failures when relabelling disk images
NFS in root squash mode may prevent opening disk images to
determine backing store. Ignore errors in this scenario.

* src/security/security_selinux.c: Ignore open failures on disk
  images
2010-11-02 14:38:23 +00:00
Daniel P. Berrange
93a18bbafa Treat failure to relabel stdin_path as non-fatal on NFS
NFS does not support file labelling, so ignore this error
for stdin_path when on NFS.

* src/security/security_selinux.c: Ignore failures on labelling
  stdin_path on NFS
* src/util/storage_file.c, src/util/storage_file.h: Refine
  virStorageFileIsSharedFS() to allow it to check for a
  specific FS type.
2010-11-02 14:38:19 +00:00
Daniel P. Berrange
a51ccaf828 Revert commit 06f81c63eb
Commit 06f81c63eb attempted to make
QEMU driver ignore the failure to relabel 'stdin_path' if it was
on NFS. The actual result was that it ignores *all* failures to
label any aspect of the VM, unless stdin_path is non-NULL and
is not on NFS.

* src/qemu/qemu_driver.c: Treat all relabel failures as terminal
2010-11-02 14:37:26 +00:00
Jiri Denemark
53618145ee Fix several warnings about a non-literal format string
They only popped up during --disable-nls build. Without this configure
option, gcc wasn't able to detect them.
2010-11-02 09:47:22 +01:00
Osier Yang
af3ba2cd50 util: Add helper function to build timestamp string
* src/util/util.h
* src/util/util.c
* src/libvirt_private.syms
2010-11-01 17:05:11 -06:00
Eric Blake
d02d548e2a docs: fix typo
* docs/drvqemu.html.in (qemu): Fix typo.
2010-11-01 15:24:44 -06:00
Eric Blake
b164db623c build: avoid compiler warning in xen code
* src/xen/xend_internal.c (xenDaemonFormatSxpr): Hoist verify
outside of function to avoid a -Wnested-externs warning.
* src/xen/xm_internal.c (xenXMDomainConfigFormat): Likewise.
Reported by Daniel P. Berrange.
2010-11-01 12:18:06 -06:00
Diego Elio Pettenò
d8c9001435 misc: encode the Emacs suggstions from HACKING into a .dir-locals.el file
With this file in place, opening any source file in libvirt will set up
Emacs for proper indentation.
2010-11-01 10:22:58 -06:00
Diego Elio Pettenò
5919afe3c6 qemu: add the USB devices to the cgroup whitelist
Make sure that the QEmu process within the cgroup can access the device
file for the USB device that has to be connected to the virtual domain.
2010-11-01 10:19:51 -06:00
Eric Blake
dc27e089bf xen: work with ia64 MAX_VIRT_CPUS of 64
* src/xen/xen_hypervisor.c (MAX_VIRT_CPUS): Move...
* src/xen/xen_driver.h (MAX_VIRT_CPUS): ...so all xen code can see
same value.
* src/xen/xend_internal.c (sexpr_to_xend_domain_info)
(xenDaemonDomainGetVcpusFlags, xenDaemonParseSxpr)
(xenDaemonFormatSxpr): Work if MAX_VIRT_CPUS is 64 on a platform
where long is 64-bits.
* src/xen/xm_internal.c (xenXMDomainConfigParse)
(xenXMDomainConfigFormat): Likewise.
2010-11-01 09:31:23 -06:00
Diego Elio Pettenò
2f88770b44 build: cleanup declaration of xen tests.
Only build statstest and reconnect if they should be used, so add them
behind the ENABLE_XEN_TESTS conditional.
2010-10-29 10:45:03 -06:00
KAMEZAWA Hiroyuki
f69ce3feb0 qemu: check compression program availability of virsh save and dump 2010-10-29 10:22:08 -06:00
KAMEZAWA Hiroyuki
95a17abda7 add compression support for "virsh dump"
Add dump_image_format[] to qemu.conf and support compressed dump
at virsh dump. coredump compression is important for saving disk space
in an environment where multiple guests run.

In general, "disk space for dump" is specially allocated and will be
a dead space in the system. It's used only at emergency. So, it's better
to have both of save_image_format and dump_image_format. "save" is done
in scheduled manner with enough calculated disk space for it.

This code reuses some of save_image_format[] and supports the same format.

Changelog:
 - modified libvirtd_qemu.aug
 - modified test_libvirtd_qemu.aug
 - fixed error handling of qemudSaveCompressionTypeFromString()
2010-10-29 10:04:34 -06:00
Lai Jiangshan
41b2cee2a8 qemu_driver: add virCgroupMounted
When we mount any cgroup without "-o devices", we will fail to start vms:

error: Failed to start domain vm1
error: Unable to deny all devices for vm1: No such file or directory

When we mount any cgroup without "-o cpu", we will fail to get schedinfo:
Scheduler      : posix
error: unable to get cpu shares tunable: No such file or directory

We should only use the cgroup controllers which are mounted on host.
So I add virCgroupMounted() for qemuCgroupControllerActive()

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
2010-10-29 09:46:25 -06:00
Daniel Veillard
4c2b3e1d29 Release of libvirt-0.8.5
* configure.ac libvirt.spec.in: new version
* docs/news.html.in: update news page and improve format
* po/*.po*: Update po again
2010-10-29 16:54:07 +02:00
Daniel Veillard
a6ce6a5c5a Updating localization and regenerating before release 2010-10-29 16:38:43 +02:00
Matthias Bolte
2eb99c4a6c vbox: Don't warn when the linker search path doesn't contain VBoxXPCOMC.so
This is actually a workaround, to unbreak make check on systems
without VirtualBox.
2010-10-29 16:33:31 +02:00
Matthias Bolte
f4a8542dd5 vbox: Stop hardcoding a single path for VBoxXPCOMC.so
This partly reverts df90ca7661.

Don't disable the VirtualBox driver when configure can't find
VBoxXPCOMC.so, rely on detection at runtime again instead.

Keep --with-vbox=/path/to/virtualbox intact, added to for:
https://bugzilla.redhat.com/show_bug.cgi?id=609185

Detection order for VBoxXPCOMC.so:

1. VBOX_APP_HOME environment variable
2. configure provided location
3. hardcoded list of known locations
4. dynamic linker search path

Also cleanup the glue code and improve error reporting.
2010-10-29 15:50:38 +02:00
Justin Clift
3fb71895e8 virsh: improve the help description for managedsave and start
Updated the descriptions for managedsave and start in virsh and
the virsh man page, and also for managedsave-remove in the virsh
man page.
2010-10-29 11:52:31 +11:00
KAMEZAWA Hiroyuki
5546034210 audit: printf warning fix
fix warning
  CC     libvirt_util_la-virtaudit.lo
cc1: warnings being treated as errors
util/virtaudit.c: In function 'virAuditEncode':
util/virtaudit.c:146: error: implicit declaration of function 'virAsprintf' [-Wimplicit-function-declaration]
util/virtaudit.c:146: error: nested extern declaration of 'virAsprintf' [-Wnested-externs]
2010-10-28 11:23:42 -06:00
Stefan Berger
e92848ebfd eliminate possibility of a double-closed file descriptor
The 2nd and 3rd hunk show the only double-closed file descriptor code part that I found while trying to clean up close(). The first hunk seems a harmless cleanup in that same file.
2010-10-28 11:43:16 -04:00
Eric Blake
054d43f570 qemu: check for vm after starting a job
https://bugzilla.redhat.com/show_bug.cgi?id=638285 - when migrating
a guest, it was very easy to provoke a race where an application
could query block information on a VM that had just been migrated
away.  Any time qemu code obtains a job lock, it must also check
that the VM was not taken down in the time where it was waiting
for the lock.

* src/qemu/qemu_driver.c (qemudDomainSetMemory)
(qemudDomainGetInfo, qemuDomainGetBlockInfo): Check that vm still
exists after obtaining job lock, before starting monitor action.
2010-10-28 08:56:03 -06:00
Laine Stump
0111cebb5a Only attempt removal of the rule allowing tftp if it was added
During virtual network startup, the iptables rule that allows tftp
traffic is only added if network->def->tftproot is non-empty, but when
the virtual network is destroyed, we had been unconditionally trying
to delete the rule. This was harmless, except that it created a bogus
error message.

This patch conditionalizes the delete command in the same manner that
the insert command is already conditionalized.
2010-10-28 09:54:47 -04:00
Justin Clift
1dd49e921f docs: updated the C# bindings page with arnauds latest changes 2010-10-28 19:04:28 +11:00
Justin Clift
8f3ce7d8cf docs: update ruby bindings maintainer to chris lalancette 2010-10-28 09:36:48 +11:00
Eric Blake
f3443f41b0 build: use shorter file names for 'make dist'
* docs/api_extension/{0013,0014}*.patch: Rename to shorter files.
* docs/api_extension.html.in: Reflect rename.
2010-10-27 16:29:25 -06:00
Justin Clift
ae641fcfc5 docs: reworded and reordered the bindings page, plus minor tweaks
Reordered the bindings into alphabetical order, added a link to
the php-libvirt source on Github, plus gave the direct package
names needed for Python usage on RHEL/Fedora, and Ubuntu.
2010-10-28 09:26:11 +11:00
Matthias Bolte
8578df6a49 mingw: Add body for virFork and remove double virDriverLoadModule export
Commit 9bd3cce0d2 added virFork and
virDriverLoadModule to libvirt_private.syms, but virFork didn't have
a body on Win32 and virDriverLoadModule was already correctly
exported conditional via libvirt_driver_modules.syms.
2010-10-27 21:27:19 +02:00
Daniel P. Berrange
8dc136b5fc Add disk/net resource auditing to QEMU driver
Add auditing of all initial disk/net assignments to QEMU guests
at startup. Add auditing for all hotplug & unplug events and
disk media changes.

* src/qemu/qemu_driver.c: Add disk/net resource auditing
2010-10-27 17:03:22 +01:00
Daniel P. Berrange
160b5479f2 Add auditing of security label in QEMU driver
Add auditing of the allocated security label in the QEMU driver
VM startup code

* src/qemu/qemu_driver.c: Audit security label
2010-10-27 17:03:22 +01:00
Daniel P. Berrange
62622f841a Add auditing of start/stop events to the QEMU driver
Add audit hooks to report all start and stop events on QEMU
guest domains.

* src/qemu/qemu_driver.c: Audit start/stop events
2010-10-27 17:03:21 +01:00
Daniel P. Berrange
55a9938333 Add printf format attribute annotation to virAuditSend method
* src/util/virtaudit.h: Add printf format attribute annotation
2010-10-27 17:03:21 +01:00
Daniel P. Berrange
6a75a3fa3d Add audit helper for escaping log message strings
Add a helper API for ecscaping the value in audit log
messages

* src/util/virtaudit.h, src/util/virtaudit.c,
  src/libvirt_private.syms: Add virAuditEncode
2010-10-27 17:03:21 +01:00
Daniel P. Berrange
e06772f006 Remove audit hooks from the selinux security driver code
This reverts commit b8e2de8899
The hooks will be re-added in the QEMU driver itself.

* src/security/security_selinux.c: Remove audit hooks
2010-10-27 17:03:21 +01:00
Daniel P. Berrange
43e7e8f614 Remove all auditing hooks from libvirtd dispatch code
Revert most of commit a8b5f9bd27.
The audit hooks will be re-added directly in the QEMU driver code
in a future commit

* daemon/remote.c: Remove all audit logging hooks
* src/qemu/qemu_driver.c: Remove all audit logging hooks
2010-10-27 17:03:21 +01:00
Philipp Hahn
8da08b9fde Fix xen API documentation
*src/xen/xend_internal.c: fix a couple of comments in function descriptions
2010-10-27 15:25:39 +02:00
Justin Clift
1354b603ae docs: added a table of contents to the first 11 docs files
There are a 58 docs files, so adding an autogenerated Table Of
Contents to them all will take some time.  This is the first
piece of the work done.
2010-10-27 15:01:45 +11:00
Justin Clift
37302c13d1 docs: reformated the bindings page html markup to match other pages 2010-10-27 13:06:17 +11:00
Eric Blake
bac73e7f68 virsh: use - not _ in memtune option names
* tools/virsh.c (opts_memtune): All other options in virsh use -
for separating words.
2010-10-26 15:55:12 -06:00
Eric Blake
5ee03c25f7 build: fix shell detection bug
A missing shell was noisy, and the use of command to decipher a
shell's absolute path requires "" rather than ''.

* configure.ac (lv_cv_wrapper_shell): Fix logic errors if candidate
shell is not available.
* .gitignore: Ignore file created when /bin/sh is old dash.
Reported by Matthias Bolte.
2010-10-26 15:55:12 -06:00
Eric Blake
1987b09093 maint: fix syntax-check failure of previous patch
* cfg.mk (sc_prohibit_trailing_blank_lines): Delete; this is
adequately covered by maint.mk's sc_prohibit_empty_lines_at_EOF.
* .x-sc_prohibit_empty_lines_at_EOF: New file, to exempt raw
patches.
* Makefile.am (EXTRA_DIST): Include new exemption.
2010-10-26 15:50:19 -06:00