1
2010-10-29 Daniel Veillard <veillard@redhat.com>
3
Updating localization and regenerating before release
5
2010-10-29 Matthias Bolte <matthias.bolte@googlemail.com>
7
vbox: Don't warn when the linker search path doesn't contain VBoxXPCOMC.so
8
This is actually a workaround, to unbreak make check on systems
11
vbox: Stop hardcoding a single path for VBoxXPCOMC.so
12
This partly reverts df90ca7661b0a789bd790ccf8258a4527c13eb8d.
14
Don't disable the VirtualBox driver when configure can't find
15
VBoxXPCOMC.so, rely on detection at runtime again instead.
17
Keep --with-vbox=/path/to/virtualbox intact, added to for:
18
https://bugzilla.redhat.com/show_bug.cgi?id=609185
20
Detection order for VBoxXPCOMC.so:
22
1. VBOX_APP_HOME environment variable
23
2. configure provided location
24
3. hardcoded list of known locations
25
4. dynamic linker search path
27
Also cleanup the glue code and improve error reporting.
29
2010-10-29 Justin Clift <jclift@redhat.com>
31
virsh: improve the help description for managedsave and start
32
Updated the descriptions for managedsave and start in virsh and
33
the virsh man page, and also for managedsave-remove in the virsh
36
2010-10-28 KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
38
audit: printf warning fix
40
CC libvirt_util_la-virtaudit.lo
41
cc1: warnings being treated as errors
42
util/virtaudit.c: In function 'virAuditEncode':
43
util/virtaudit.c:146: error: implicit declaration of function 'virAsprintf' [-Wimplicit-function-declaration]
44
util/virtaudit.c:146: error: nested extern declaration of 'virAsprintf' [-Wnested-externs]
46
2010-10-28 Stefan Berger <stefanb@us.ibm.com>
48
eliminate possibility of a double-closed file descriptor
49
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.
51
2010-10-28 Eric Blake <eblake@redhat.com>
53
qemu: check for vm after starting a job
54
https://bugzilla.redhat.com/show_bug.cgi?id=638285 - when migrating
55
a guest, it was very easy to provoke a race where an application
56
could query block information on a VM that had just been migrated
57
away. Any time qemu code obtains a job lock, it must also check
58
that the VM was not taken down in the time where it was waiting
61
* src/qemu/qemu_driver.c (qemudDomainSetMemory)
62
(qemudDomainGetInfo, qemuDomainGetBlockInfo): Check that vm still
63
exists after obtaining job lock, before starting monitor action.
65
2010-10-28 Laine Stump <laine@laine.org>
67
Only attempt removal of the rule allowing tftp if it was added
68
During virtual network startup, the iptables rule that allows tftp
69
traffic is only added if network->def->tftproot is non-empty, but when
70
the virtual network is destroyed, we had been unconditionally trying
71
to delete the rule. This was harmless, except that it created a bogus
74
This patch conditionalizes the delete command in the same manner that
75
the insert command is already conditionalized.
77
2010-10-28 Justin Clift <jclift@redhat.com>
79
docs: updated the C# bindings page with arnauds latest changes
81
docs: update ruby bindings maintainer to chris lalancette
83
2010-10-28 Eric Blake <eblake@redhat.com>
85
build: use shorter file names for 'make dist'
86
* docs/api_extension/{0013,0014}*.patch: Rename to shorter files.
87
* docs/api_extension.html.in: Reflect rename.
89
2010-10-28 Justin Clift <jclift@redhat.com>
91
docs: reworded and reordered the bindings page, plus minor tweaks
92
Reordered the bindings into alphabetical order, added a link to
93
the php-libvirt source on Github, plus gave the direct package
94
names needed for Python usage on RHEL/Fedora, and Ubuntu.
96
2010-10-27 Matthias Bolte <matthias.bolte@googlemail.com>
98
mingw: Add body for virFork and remove double virDriverLoadModule export
99
Commit 9bd3cce0d2d54e6ab893bb8137218b83d9294714 added virFork and
100
virDriverLoadModule to libvirt_private.syms, but virFork didn't have
101
a body on Win32 and virDriverLoadModule was already correctly
102
exported conditional via libvirt_driver_modules.syms.
104
2010-10-27 Daniel P. Berrange <berrange@redhat.com>
106
Add disk/net resource auditing to QEMU driver
107
Add auditing of all initial disk/net assignments to QEMU guests
108
at startup. Add auditing for all hotplug & unplug events and
111
* src/qemu/qemu_driver.c: Add disk/net resource auditing
113
Add auditing of security label in QEMU driver
114
Add auditing of the allocated security label in the QEMU driver
117
* src/qemu/qemu_driver.c: Audit security label
119
Add auditing of start/stop events to the QEMU driver
120
Add audit hooks to report all start and stop events on QEMU
123
* src/qemu/qemu_driver.c: Audit start/stop events
125
Add printf format attribute annotation to virAuditSend method
126
* src/util/virtaudit.h: Add printf format attribute annotation
128
Add audit helper for escaping log message strings
129
Add a helper API for ecscaping the value in audit log
132
* src/util/virtaudit.h, src/util/virtaudit.c,
133
src/libvirt_private.syms: Add virAuditEncode
135
Remove audit hooks from the selinux security driver code
136
This reverts commit b8e2de8899594edcd78b3a7cb1b39b89bbed2891
137
The hooks will be re-added in the QEMU driver itself.
139
* src/security/security_selinux.c: Remove audit hooks
141
Remove all auditing hooks from libvirtd dispatch code
142
Revert most of commit a8b5f9bd27d65c2ced064b9267ca31dee7ad9c86.
143
The audit hooks will be re-added directly in the QEMU driver code
146
* daemon/remote.c: Remove all audit logging hooks
147
* src/qemu/qemu_driver.c: Remove all audit logging hooks
149
2010-10-27 Philipp Hahn <hahn@univention.de>
151
Fix xen API documentation
152
*src/xen/xend_internal.c: fix a couple of comments in function descriptions
154
2010-10-27 Justin Clift <jclift@redhat.com>
156
docs: added a table of contents to the first 11 docs files
157
There are a 58 docs files, so adding an autogenerated Table Of
158
Contents to them all will take some time. This is the first
159
piece of the work done.
161
docs: reformated the bindings page html markup to match other pages
163
2010-10-26 Eric Blake <eblake@redhat.com>
165
virsh: use - not _ in memtune option names
166
* tools/virsh.c (opts_memtune): All other options in virsh use -
167
for separating words.
169
build: fix shell detection bug
170
A missing shell was noisy, and the use of command to decipher a
171
shell's absolute path requires "" rather than ''.
173
* configure.ac (lv_cv_wrapper_shell): Fix logic errors if candidate
174
shell is not available.
175
* .gitignore: Ignore file created when /bin/sh is old dash.
176
Reported by Matthias Bolte.
178
maint: fix syntax-check failure of previous patch
179
* cfg.mk (sc_prohibit_trailing_blank_lines): Delete; this is
180
adequately covered by maint.mk's sc_prohibit_empty_lines_at_EOF.
181
* .x-sc_prohibit_empty_lines_at_EOF: New file, to exempt raw
183
* Makefile.am (EXTRA_DIST): Include new exemption.
185
docs: revamp api_extension example, using vcpu patch series
186
* docs/api_extension/*: Replace example files.
187
* docs/api_extension.html.in: Rewrite to match new example files.
189
2010-10-26 Diego Elio Pettenò <flameeyes@gmail.com>
191
qemu: don't use %.3d format for bus/addr of USB devices
192
When using 0-prefixed numbers, QEmu will interpret them as octal numbers
193
(as C convention says); this means that if you attach a device that has
194
addr > 10 (decimal) you're going to attach a different device.
196
2010-10-26 Eric Blake <eblake@redhat.com>
198
virsh: fix range of memtune command
199
* tools/virsh.c (cmdMemtune): Use long long for memory
200
sizes. Simplify allocation, and plug memory leak.
202
virsh: improve help text where integers are expected
203
* tools/virsh.c (opts_freecell, opts_memtune, opts_vcpupin)
204
(opts_setvcpus, opts_setmaxmem, opts_setmem)
205
(opts_migrate_setmaxdowntime): Use VSH_OT_INT when only an integer
207
(vshCmddefHelp, vshCmddefGetData): Allow mandatory VSH_OT_INT
210
qemu: work around dash 0.5.5 bug in managed save
211
Older dash mistakenly truncates regular files when using <> redirection;
212
this kills our use of double dd to reduce storage overhead when
213
saving qemu images. But qemu insists on running a command through
214
/bin/sh, so we work around it by having qemu run $sh -c 'real command'
215
when we have a replacement $sh in mind.
217
* configure.ac (VIR_WRAPPER_SHELL): Define to a replacement shell,
218
if /bin/sh is broken on <> redirection.
219
* src/qemu/qemu_monitor.h (VIR_WRAPPER_SHELL_PREFIX)
220
(VIR_WRAPPER_SHELL_SUFFIX): New macros.
221
* src/qemu/qemu_monitor_text.c (qemuMonitorTextMigrateToFile): Use
223
* src/qemu/qemu_monitor_json.c (qemuMonitorJSONMigrateToFile):
226
2010-10-26 Justin Clift <jclift@redhat.com>
228
docs: make the location of the xml catalog file a configure option
229
The default location for the XML catalog file, /etc/xml/catalog,
230
used when validating the generated html docs, isn't correct for
233
This commit adds an option to the configure script, allowing the
234
default to be overridden:
236
--with-xml-catalog-file=/path/to/xml/catalog/file
238
2010-10-26 Daniel P. Berrange <berrange@redhat.com>
240
Avoid squashing errors during network startup cleanup path
241
When failing to start a virtual network, we have to cleanup,
242
tearing down any iptables rules. If the iptables rules were
243
not present yet though, this raises an error, which squashes
244
the original error we were handling.
246
* src/network/bridge_driver.c: When failing to start a virtual
247
network, don't squash the original error in cleanup
249
2010-10-26 Justin Clift <jclift@redhat.com>
251
docs: install the generated html files when make install is run
252
Previously, only the API docs were installed, rather than the
253
complete documentation set. This commit ensures the complete
254
documentation set is installed.
256
2010-10-26 Matthias Bolte <matthias.bolte@googlemail.com>
258
Fix build for SystemTap 1.0
259
With SystemTap 1.0 a part of the generated macros in probes.h
262
volatile __typeof__(((name))) arg2 = (name);
264
GCC reports an 'invalid initialize' error when name has type
265
char[]. Therfore, add casts to char* to avoid this.
267
2010-10-26 Jiri Denemark <jdenemar@redhat.com>
270
Remove redundant 'live' parameter which caused an error from xend:
272
"xend.err 'Too many values for live'"
274
2010-10-26 Daniel P. Berrange <berrange@redhat.com>
276
Fix formatting of network address in iptables helpers
277
The network address was being set to 192.168.122.0 instead
278
of 192.168.122.0/24. Fix this by removing the unneccessary
279
'network' field from virNetworkDef and just pass the
280
network address and netmask into the iptables APIs directly.
282
* src/conf/network_conf.h, src/conf/network_conf.c: Remove
283
the 'network' field from virNEtworkDef.
284
* src/network/bridge_driver.c: Update for iptables API changes
285
* src/util/iptables.c, src/util/iptables.h: Require the
286
network address + netmask pair to be passed in
288
2010-10-26 Osier Yang <jyang@redhat.com>
290
virsh: Add option 'model' for attach-interface
291
* tools/virsh.c: add missing option from the CLI to allows setting
292
up the NIC model type when attaching an interface
293
* tools/virsh.pod: extend documentation
294
* AUTHORS: add Osier Yang to the list
296
2010-10-26 Jiri Denemark <jdenemar@redhat.com>
298
qemu: Fix detection of drive readonly option
299
So far, readonly=on option is used when qemu supports -device. However,
300
there are qemu versions which support readonly option with -drive
301
although they don't have support for -device.
303
2010-10-26 Philipp Hahn <hahn@univention.de>
305
Fix documentation for virEventAddTimeout()
306
* src/util/event.h: Fix copy&paste error from virEventAddHandle()
308
2010-10-25 Eric Blake <eblake@redhat.com>
310
maint: ignore new test executable
311
* tests/.gitignore: Sort, and add sockettest.
313
2010-10-23 Justin Clift <jclift@redhat.com>
315
daemon: updates previous 1 line patch for correctness
316
The previous commit, 880da47a05b9fb8381e79b03ead5dd2d8a6a937a,
317
worked on my system, but wasn't actually correct. This follow
318
up patch corrects it properly.
320
2010-10-22 Justin Clift <jclift@redhat.com>
322
daemon: exclude requirement for probes.h on systems without systemtap
323
This 1-liner was actually written by Eric Blake, over IRC. It
324
addresses a compilation failure in make dist and make rpm for
325
systems without the dtrace/systemtap development libraries
328
2010-10-22 Matthias Bolte <matthias.bolte@googlemail.com>
330
esx: Add documentation about certificates and connection problems
332
2010-10-22 Jiri Denemark <jdenemar@redhat.com>
334
tests: Silence qemuxml2argv test
336
2010-10-22 Eric Blake <eblake@redhat.com>
338
dnsmasq: avoid potential crash
339
* src/util/dnsmasq.c (hostsfileAdd): Don't free uninitialized
340
memory on allocation failure.
342
2010-10-22 Justin Clift <jclift@redhat.com>
344
docs: added a table of contents to the new c sharp bindings page
346
docs: removed old changelog file, as it is no longer relevant
347
We instead point to the live git log URL for the few links still
348
needing to point to something.
350
2010-10-22 Matthias Bolte <matthias.bolte@googlemail.com>
352
vbox: Fix compile errors due to the virSocketAddr series
354
2010-10-22 Daniel P. Berrange <berrange@redhat.com>
356
Don't try to parse a NULL ip address for boot server
357
The boot server IP address is optional, so it needs to be
358
checked before attempting to parse it.
360
* src/conf/network_conf.c: Don't parse NULL ip address for
363
Convert virNetwork to use virSocketAddr everywhere
364
Instead of storing the IP address string in virNetwork related
365
structs, store the parsed virSocketAddr. This will make it
366
easier to add IPv6 support in the future, by letting driver
367
code directly check what address family is present
369
* src/conf/network_conf.c, src/conf/network_conf.h,
370
src/network/bridge_driver.c: Convert to use virSocketAddr
371
in virNetwork, instead of char *.
372
* src/util/bridge.c, src/util/bridge.h,
373
src/util/dnsmasq.c, src/util/dnsmasq.h,
374
src/util/iptables.c, src/util/iptables.h: Convert to
375
take a virSocketAddr instead of char * for any IP
377
* src/util/network.h: Add macros to determine if an address
378
is set, and what address family is set.
380
Include socket address in client probe data
381
It is useful to know where the client is connecting from,
382
so include the socket address in probe data.
384
* daemon/libvirtd.h: Use virSocketAddr for storing client
385
address and keep printable address handy for logging
386
* daemon/libvirtd.c: Include socket address in client
387
connect/disconnect probes
388
* daemon/probes.d: Add socket address to probes
389
* examples/systemtap/client.stp: Print socket address
390
* src/util/network.h: Add sockaddr_un to virSocketAddr union
392
Add dtrace static probes in libvirtd
393
Adds initial support for dtrace static probes in libvirtd
394
daemon, assuming use of systemtap dtrace compat shim on
395
Linux. The probes are inserted for network client connect,
396
disconnect, TLS handshake states and authentication protocol
399
This can be tested by running the xample program and then
400
attempting to connect with any libvirt client (virsh,
403
# stap examples/systemtap/client.stp
404
Client fd=44 connected readonly=0
405
Client fd=44 auth polkit deny pid:24997,uid:500
406
Client fd=44 disconnected
407
Client fd=46 connected readonly=1
408
Client fd=46 auth sasl allow test
409
Client fd=46 disconnected
411
The libvirtd.stp file should also really not be required,
412
since it is duplicated info that is already available in
413
the main probes.d definition file. A script to autogenerate
414
the .stp file is needed, either in libvirtd tree, or better
415
as part of systemtap itself.
417
* Makefile.am: Add examples/systemtap subdir
418
* autobuild.sh: Disable dtrace for mingw32
419
* configure.ac: Add check for dtrace
420
* daemon/.gitignore: Ignore generated dtrace probe file
421
* daemon/Makefile.am: Build dtrace probe header & object
423
* daemon/libvirtd.stp: SystemTAP convenience probeset
424
* daemon/libvirtd.c: Add connect/disconnect & TLS probes
425
* daemon/remote.c: Add SASL and PolicyKit auth probes
426
* daemon/probes.d: Master probe definition
427
* daemon/libvirtd.h: Add convenience macro for probes
428
so that compilation is a no-op when dtrace is not available
429
* examples/systemtap/Makefile.am, examples/systemtap/client.stp
430
Example systemtap script using dtrace probe markers
431
* libvirt.spec.in: Enable dtrace on F13/RHEL6
432
* mingw32-libvirt.spec.in: Force disable dtrace
434
Add test suite for virSocket APIs
435
Add a test suite for check parsing, formatting, range calculation
436
and netmask checking APIs in virSocketAddr.
438
* tests/sockettest.c, tests/Makefile.am: Add new test case
440
Ban use of all inet_* functions
441
All the inet_* functions can be replaced with calls to the
442
virSocket APIs. Since many of the inet_* funtions are unsafe,
443
and the remainder are obsolete, forbid all future use of them
446
* Makefile.nonreentrant: Ban use of inet_*
448
Remove all use of inet_pton and inet_ntop
449
The inet_pton and inet_ntop functions are obsolete, replaced
450
by getaddrinfo+getnameinfo with the AI_NUMERICHOST flag set.
451
These can be accessed via the virSocket APIs.
453
The bridge.c code had methods for fetching the IP address of
454
a bridge which used inet_ntop. Aside from the use of inet_ntop
455
these methods are broken, because a NIC can have multiple
456
addresses and this only returns one address. Since the methods
457
are never used, just remove them.
459
* src/conf/network_conf.c, src/nwfilter/nwfilter_learnipaddr.c:
460
Replace inet_pton and inet_ntop with virSocket APIs
461
* src/util/bridge.c, src/util/bridge.h: Remove unused methods
462
which called inet_ntop.
464
Remove both addrToString methods
465
The addrToString functionality is now available via the
466
virSocketFormatAddrFull method.
468
* daemon/remote.c, src/remote/remote_driver.c: Remove
471
Fix error reporting for virSocketParse
472
The virSocketParse method was not doing any error reporting
473
which meant the true cause of the problem was lost. Remove
474
all error reporting from callers, and push it into virSocketParse
476
* src/util/network.c: Add error reporting to virSocketParse
477
* src/conf/domain_conf.c, src/conf/network_conf.c,
478
src/network/bridge_driver.c: Remove error reporting in
479
callers of virSocketParse
481
Expand virSocketFormat to be more flexible
482
The getnameinfo() function is more flexible than inet_ntop()
483
avoiding the need to if/else the code based on socket family.
484
Also make it support UNIX socket addrs and allow inclusion
485
of a port (service) address. Finally do proper error reporting
488
* src/conf/domain_conf.c, src/nwfilter/nwfilter_ebiptables_driver.c,
489
src/qemu/qemu_conf.c: Fix error handling with virSocketFormat
490
* src/util/network.c: Rewrite virSocketFormat to use getnameinfo
491
and cope with UNIX socket addrs.
493
Remove pointless nwIPAddress struct & void *casts
494
The nwIPAddress was simply a wrapper about virSocketAddr.
495
Just use the latter directly, removing all the extra field
496
de-references from code & helper APIs for parsing/formatting.
498
Also remove all the redundant casts from strong types to
499
void * and then immediately back to strong types.
501
* src/conf/nwfilter_conf.h: Remove nwIPAddress
502
* src/conf/nwfilter_conf.c, src/nwfilter/nwfilter_ebiptables_driver.c:
503
Update to use virSocketAddr and remove void * casts.
505
Fix netmask checks for IPv6 in virSocketCheckNetmask
506
There was a typo in the IPv6 path of virSocketCheckNetmask which
507
caused it to never execute.
509
* src/util/network.c: s/AF_INET/AF_INET6/ in virSocketCheckNetmask
511
Fix passing of address family to virSocketParseAddr
512
The virSocketParseAddr function was accepting any AF_* constant
513
and using that to set the ai_flags field in struct addrinfo.
514
This is invalid, since address families must go in the ai_family
517
* src/util/network.c: Fix handling of address family
518
* src/conf/network_conf.c, src/network/bridge_driver.c: Pass
519
AF_UNSPEC instead of relying on it being 0.
521
Include length with virSocketAddr data
522
Some operations on socket addresses need to know the length of
523
the sockaddr struct for the particular address family. This
524
info was being discarded when passing around virSocketAddr
525
instances. Turn it from a union into a struct containing
526
union+socklen_t fields, so length is always kept around.
528
* src/util/network.h: Add socklen_t field to virSocketAddr
529
* src/util/network.c, src/network/bridge_driver.c,
530
src/conf/domain_conf.c: Update to take account of new
533
Remove useless code in error path of getnameinfo()
534
If getnameinfo() with NI_NUMERICHOST set fails, there are no
535
grounds to expect inet_ntop to succeed, since these calls
536
are functionally equivalent. Remove useless inet_ntop code
537
in the getnameinfo() error path.
539
* daemon/remote.c, src/remote/remote_driver.c: Remove
542
2010-10-21 Eric Blake <eblake@redhat.com>
544
maint: sort private sym lists
545
* src/libvirt_private.syms: Sort by header name, then within
546
header, and drop duplicate virNetworkDefParseNode,
547
virFileLinkPointsTo and virXPathBoolean.
549
2010-10-21 Daniel P. Berrange <berrange@redhat.com>
551
Enable JSON and netdev features in QEMU >= 0.13
552
The QEMU 0.13 release is finally out and from testing in RHEL-6
553
we know that its JSON and netdev features are now good enough
554
for us to use by default.
556
* src/qemu/qemu_conf.c: Enable JSON + netdev for QEMU >= 0.13
558
2010-10-20 Eric Blake <eblake@redhat.com>
560
audit: simplify declaration
561
* src/util/virtaudit.c (virAuditSend): one less ifdef, since gcc
562
does not care if an ATTRIBUTE_UNUSED var gets used in some paths.
564
2010-10-20 Matthias Bolte <matthias.bolte@googlemail.com>
566
qemu: Exit on first error in qemuDomainGetMemoryParameters
567
There is no point in trying to fill params beyond the first error,
568
because when qemuDomainGetMemoryParameters returns -1 then the caller
569
cannot detect which values in params are valid.
571
virsh: Don't read nparams when virDomainGetMemoryParameters fails
572
Also exit early when nparams is 0.
574
Rename VIR_DOMAIN_SWAP_HARD_LIMIT to VIR_DOMAIN_MEMORY_SWAP_HARD_LIMIT
575
To get them under the common VIR_DOMAIN_MEMORY_* prefix.
577
Fix formatting of the memtune XML element
578
Also output the min_guarantee element when set.
580
2010-10-20 Jiri Denemark <jdenemar@redhat.com>
582
Fix make check on RHEL-5
583
The test for <vcpu> element is unrelated to vnc so the easiest fix is to
584
remove related configuration.
586
2010-10-20 Matthias Bolte <matthias.bolte@googlemail.com>
588
Don't let daemon-conf test fail when auditing is disabled
590
2010-10-20 Nikunj A. Dadhania <nikunj@linux.vnet.ibm.com>
592
Update comments for the memory tunables macros
593
* include/libvirt/libvirt.h.in: Update comment with actual description
595
2010-10-20 Daniel Veillard <veillard@redhat.com>
597
Add John Morrissey to AUTHORS
599
2010-10-20 John Morrissey <jwm@horde.net>
601
Add process= support for 'qemu-kvm -name'
602
This sets the process name to the same value as the Windows title,
603
but since the name is limited to 16 chars only this is kept as a
604
configuration option and turned off by default
605
* src/qemu/qemu.conf src/qemu/qemu_conf.[ch]: hceck for support in the
606
QEmu help output, add the option in qemu conf file and augment
607
qemudBuildCommandLine to add it if switched on
608
* src/qemu/libvirtd_qemu.aug src/qemu/test_libvirtd_qemu.aug: augment
609
the augeas lenses accordingly
610
* tests/qemuhelptest.c: cope with the extra flag being detected now
612
2010-10-20 Stefan Berger <stefanb@us.ibm.com>
614
nwfilter: avoid dir. enforcement for certain types of rules
615
Avoid the enforcement of direction if
616
- icmp rules specify the type/code information
617
- the 'skipMatch' variable is set to 'true'
619
2010-10-19 Justin Clift <jclift@redhat.com>
621
docs: added initial page for c# binding, with links to it
622
Adds a new page for the C# language bindings being developed by Arnaud
625
2010-10-19 Guido Günther <agx@sigxcpu.org>
627
Don't fail lxc domain start when memory controller support is missing
628
Debian stock kernel has CONFIG_CGROUP_MEM_RES_CTLR disabled due to the
629
overhead [1]. Allow to start containers if the corresponding files in
630
the cgroup filesystem are missing. This fixes Debian bug #566180 [2].
632
[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=534964
633
[2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=566180
635
2010-10-19 Matthias Bolte <matthias.bolte@googlemail.com>
637
Fix compile errors in remote.c and newly added audit code
639
2010-10-19 Daniel P. Berrange <berrange@redhat.com>
641
Fix symbol exports & remove duplicated libvirt_util.la linkage
642
The libvirt_util.la library was mistakenly linked into libvirtd
643
directly. Since libvirt_util.la is already linked to libvirt.so,
644
this resulted in libvirtd getting two copies of the code and
645
more critically 2 copies of static global variables.
647
Testing in turn exposed a issue with loadable modules. The
648
gnulib replacement functions are not exported to loadable
649
modules. Rather than trying to figure out the name sof all
650
gnulib functions & export them, just linkage all loadable
651
modules against libgnu.la statically.
653
* daemon/Makefile.am: Remove linkage of libvirt_util.la
654
and libvirt_driver.la
655
* src/Makefile.am: Link driver modules against libgnu.la
656
* src/libvirt.c: Don't try to load modules which were
658
* src/libvirt_private.syms: Export all other internal
659
symbols that are required by drivers
661
2010-10-19 Miloslav Trmač <mitr@redhat.com>
663
Audit SELinux label assignment.
664
A more natural auditing point would perhaps be
665
SELinuxSetSecurityProcessLabel, but this happens in the child after root
666
permissions are dropped, so the kernel would refuse the audit record.
668
Audit VM start/stop/suspend/resume
669
Most operations are audited at the libvirtd level; auditing in
670
src/libvirt.c would result in two audit entries per operation (one in
671
the client, one in libvirtd).
673
The only exception is a domain stopping of its own will (e.g. because
674
the user clicks on "shutdown" inside the interface). There can often be
675
no client connected at the time the domain stops, so libvirtd does not
676
have any virConnectPtr object on which to attach an event watch. This
677
patch therefore adds auditing directly inside the qemu driver (other
678
drivers are not supported).
680
2010-10-19 Daniel P. Berrange <berrange@redhat.com>
682
Basic framework for auditing integration
683
Integrate with libaudit.so for auditing of important operations.
684
libvirtd gains a couple of config entries for auditing. By
685
default it will enable auditing, if its enabled on the host.
686
It can be configured to force exit if auditing is disabled
687
on the host. It will can also send audit messages via libvirt
690
Places requiring audit reporting can use the VIR_AUDIT
691
macro to report data. This is a no-op unless auditing is
694
* autobuild.sh, mingw32-libvirt.spec.in: Disable audit
696
* configure.ac: Add check for libaudit
697
* daemon/libvirtd.aug, daemon/libvirtd.conf,
698
daemon/test_libvirtd.aug, daemon/libvirtd.c: Add config
699
options to enable auditing
700
* include/libvirt/virterror.h, src/util/virterror.c: Add
701
VIR_FROM_AUDIT source
702
* libvirt.spec.in: Enable audit
703
* src/util/virtaudit.h, src/util/virtaudit.c: Simple internal
704
API for auditing messages
706
Fix statstest when driver modules are enabled
707
The statstest is xen specific. Instead of filling the code with
708
a huge number of #ifdef WITH_XEN, just make its entire compilation
709
conditional in the Makefile.am. Also ensure it links to the Xen
710
driver so that it builds when driver modules are enabled
712
* tests/Makefile.am: Make statstest xen conditional. Link to
714
* tests/Makefile.am: Remove all conditionals
716
2010-10-19 Eric Blake <eblake@redhat.com>
718
virsh: consolidate memtune docs
719
* tools/virsh.pod (memtune): Drop second copy, fill to 80 columns,
722
vcpu: remove dead xen code
723
* src/xen/xen_driver.h (xenUnifiedDriver): Remove now-unused
724
domainGetMaxVcpus, domainSetVcpus.
725
* src/xen/proxy_internal.c (xenProxyDriver): Likewise.
726
* src/xen/xen_hypervisor.c (xenHypervisorDriver): Likewise.
727
* src/xen/xen_inotify.c (xenInotifyDriver): Likewise.
728
* src/xen/xend_internal.c (xenDaemonDriver)
729
(xenDaemonDomainSetVcpus): Likewise.
730
* src/xen/xm_internal.c (xenXMDriver, xenXMDomainSetVcpus):
732
* src/xen/xs_internal.c (xenStoreDriver): Likewise.
734
vcpu: improve support for setting xen vcpu counts
735
Tested with RHEL 5.6 (xendConfigVersion 2, where xend_internal
736
controls live domains and xm_internal controls inactive domains).
737
Hopefully this works with xendConfigVersion 3 (where xend_internal
738
controls everything).
740
* src/xen/xen_driver.c (xenUnifiedDomainSetVcpusFlags): Support
742
(xenUnifiedGetMaxVcpus): Export.
743
* src/xen/xm_internal.h (xenXMDomainSetVcpusFlags): New prototype.
744
* src/xen/xend_internal.h (xenDaemonDomainSetVcpusFlags): Likewise.
745
* src/xen/xen_driver.h (xenUnifiedGetMaxVcpus): Likewise.
746
* src/xen/xm_internal.c (xenXMDomainSetVcpusFlags): New function.
747
* src/xen/xend_internal.c (xenDaemonDomainSetVcpusFlags): Likewise.
749
vcpu: improve support for getting xen vcpu counts
750
* src/xen/xen_driver.c (xenUnifiedDomainGetVcpusFlags): Support
752
* src/xen/xend_internal.h (xenDaemonDomainGetVcpusFlags): New
754
* src/xen/xm_internal.h (xenXMDomainGetVcpusFlags): Likewise.
755
* src/xen/xend_internal.c (virDomainGetVcpusFlags): New function.
756
* src/xen/xm_internal.c (xenXMDomainGetVcpusFlags): Likewise.
758
vcpu: improve vcpu support in xen command line
759
This patch series focuses on xendConfigVersion 2 (xm_internal) and 3
760
(xend_internal), but leaves out changes for xenapi drivers.
762
See this link for more details about vcpu_avail for xm usage.
763
http://lists.xensource.com/archives/html/xen-devel/2009-11/msg01061.html
765
This relies on the fact that def->maxvcpus can be at most 32 with xen.
767
* src/xen/xend_internal.c (xenDaemonParseSxpr)
768
(sexpr_to_xend_domain_info, xenDaemonFormatSxpr): Use vcpu_avail
769
when current vcpus is less than maximum.
770
* src/xen/xm_internal.c (xenXMDomainConfigParse)
771
(xenXMDomainConfigFormat): Likewise.
772
* tests/xml2sexprdata/xml2sexpr-pv-vcpus.sexpr: New file.
773
* tests/sexpr2xmldata/sexpr2xml-pv-vcpus.sexpr: Likewise.
774
* tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml: Likewise.
775
* tests/xmconfigdata/test-paravirt-vcpu.cfg: Likewise.
776
* tests/xmconfigdata/test-paravirt-vcpu.xml: Likewise.
777
* tests/xml2sexprtest.c (mymain): New test.
778
* tests/sexpr2xmltest.c (mymain): Likewise.
779
* tests/xmconfigtest.c (mymain): Likewise.
781
vcpu: complete vcpu support in qemu driver
782
* src/qemu/qemu_driver.c (qemudDomainSetVcpusFlags)
783
(qemudDomainGetVcpusFlags): Support all feasible flag
786
vcpu: improve vcpu support in qemu command line
787
* src/qemu/qemu_conf.c (qemuParseCommandLineSmp): Distinguish
788
between vcpus and maxvcpus, for new enough qemu.
789
* tests/qemuargv2xmltest.c (mymain): Add new test.
790
* tests/qemuxml2argvtest.c (mymain): Likewise.
791
* tests/qemuxml2xmltest.c (mymain): Likewise.
792
* tests/qemuxml2argvdata/qemuxml2argv-smp.args: New file.
794
vcpu: support all flags in test driver
795
* src/test/test_driver.c (testDomainGetVcpusFlags)
796
(testDomainSetVcpusFlags): Support all flags.
797
(testDomainUpdateVCPUs): Update cpu count here.
799
vcpu: add virsh support
800
* tools/virsh.c (cmdSetvcpus): Add new flags. Let invalid
801
commands through to driver, to ease testing of hypervisor argument
803
(cmdMaxvcpus, cmdVcpucount): New commands.
804
(commands): Add new commands.
805
* tools/virsh.pod (setvcpus, vcpucount, maxvcpus): Document new
808
vcpu: support maxvcpu in domain_conf
809
Although this patch adds a distinction between maximum vcpus and
810
current vcpus in the XML, the values should be identical for all
811
drivers at this point. Only in subsequent per-driver patches will
812
a distinction be made.
814
In general, virDomainGetInfo should prefer the current vcpus.
816
* src/conf/domain_conf.h (_virDomainDef): Adjust vcpus to unsigned
817
short, to match virDomainGetInfo limit. Add maxvcpus member.
818
* src/conf/domain_conf.c (virDomainDefParseXML)
819
(virDomainDefFormat): parse and print out vcpu details.
820
* src/xen/xend_internal.c (xenDaemonParseSxpr)
821
(xenDaemonFormatSxpr): Manage both vcpu numbers, and require them
823
* src/xen/xm_internal.c (xenXMDomainConfigParse)
824
(xenXMDomainConfigFormat): Likewise.
825
* src/phyp/phyp_driver.c (phypDomainDumpXML): Likewise.
826
* src/openvz/openvz_conf.c (openvzLoadDomains): Likewise.
827
* src/openvz/openvz_driver.c (openvzDomainDefineXML)
828
(openvzDomainCreateXML, openvzDomainSetVcpusInternal): Likewise.
829
* src/vbox/vbox_tmpl.c (vboxDomainDumpXML, vboxDomainDefineXML):
831
* src/xenapi/xenapi_driver.c (xenapiDomainDumpXML): Likewise.
832
* src/xenapi/xenapi_utils.c (createVMRecordFromXml): Likewise.
833
* src/esx/esx_vmx.c (esxVMX_ParseConfig, esxVMX_FormatConfig):
835
* src/qemu/qemu_conf.c (qemuBuildSmpArgStr)
836
(qemuParseCommandLineSmp, qemuParseCommandLine): Likewise.
837
* src/qemu/qemu_driver.c (qemudDomainHotplugVcpus): Likewise.
838
* src/opennebula/one_conf.c (xmlOneTemplate): Likewise.
840
vcpu: make old API trivially wrap to new API
841
Note - this wrapping is completely mechanical; the old API will
842
function identically, since the new API validates that the exact
843
same flags are provided by the old API. On a per-driver basis,
844
it may make sense to have the old API pass a different set of flags,
845
but that should be done in the per-driver patch that implements
846
the full range of flag support in the new API.
848
* src/esx/esx_driver.c (esxDomainSetVcpus, escDomainGetMaxVpcus):
850
(esxDomainSetVcpusFlags, esxDomainGetVcpusFlags): ...to new
852
(esxDriver): Trivially support the new API.
853
* src/openvz/openvz_driver.c (openvzDomainSetVcpus)
854
(openvzDomainSetVcpusFlags, openvzDomainGetMaxVcpus)
855
(openvzDomainGetVcpusFlags, openvzDriver): Likewise.
856
* src/phyp/phyp_driver.c (phypDomainSetCPU)
857
(phypDomainSetVcpusFlags, phypGetLparCPUMAX)
858
(phypDomainGetVcpusFlags, phypDriver): Likewise.
859
* src/qemu/qemu_driver.c (qemudDomainSetVcpus)
860
(qemudDomainSetVcpusFlags, qemudDomainGetMaxVcpus)
861
(qemudDomainGetVcpusFlags, qemuDriver): Likewise.
862
* src/test/test_driver.c (testSetVcpus, testDomainSetVcpusFlags)
863
(testDomainGetMaxVcpus, testDomainGetVcpusFlags, testDriver):
865
* src/vbox/vbox_tmpl.c (vboxDomainSetVcpus)
866
(vboxDomainSetVcpusFlags, virDomainGetMaxVcpus)
867
(virDomainGetVcpusFlags, virDriver): Likewise.
868
* src/xen/xen_driver.c (xenUnifiedDomainSetVcpus)
869
(xenUnifiedDomainSetVcpusFlags, xenUnifiedDomainGetMaxVcpus)
870
(xenUnifiedDomainGetVcpusFlags, xenUnifiedDriver): Likewise.
871
* src/xenapi/xenapi_driver.c (xenapiDomainSetVcpus)
872
(xenapiDomainSetVcpusFlags, xenapiDomainGetMaxVcpus)
873
(xenapiDomainGetVcpusFlags, xenapiDriver): Likewise.
874
(xenapiError): New helper macro.
876
vcpu: implement the remote protocol
877
Done by editing the first three files, then running
878
'make -C src rpcgen', then editing src/remote_protocol-structs
881
* daemon/remote.c (remoteDispatchDomainSetVcpusFlags)
882
(remoteDispatchDomainGetVcpusFlags): New functions.
883
* src/remote/remote_driver.c (remoteDomainSetVcpusFlags)
884
(remoteDomainGetVcpusFlags, remote_driver): Client side
886
* src/remote/remote_protocol.x
887
(remote_domain_set_vcpus_flags_args)
888
(remote_domain_get_vcpus_flags_args)
889
(remote_domain_get_vcpus_flags_ret)
890
(REMOTE_PROC_DOMAIN_SET_VCPUS_FLAGS)
891
(REMOTE_PROC_DOMAIN_GET_VCPUS_FLAGS): Define wire format.
892
* daemon/remote_dispatch_args.h: Regenerate.
893
* daemon/remote_dispatch_prototypes.h: Likewise.
894
* daemon/remote_dispatch_table.h: Likewise.
895
* src/remote/remote_protocol.c: Likewise.
896
* src/remote/remote_protocol.h: Likewise.
897
* src/remote_protocol-structs: Likewise.
899
vcpu: implement the public APIs
900
Factors common checks (such as nonzero vcpu count) up front, but
901
drivers will still need to do additional flag checks.
903
* src/libvirt.c (virDomainSetVcpusFlags, virDomainGetVcpusFlags):
905
(virDomainSetVcpus, virDomainGetMaxVcpus): Refer to new API.
907
vcpu: define internal driver API
908
* src/driver.h (virDrvDomainSetVcpusFlags)
909
(virDrvDomainGetVcpusFlags): New typedefs.
910
(_virDriver): New callback members.
911
* src/esx/esx_driver.c (esxDriver): Add stub for driver.
912
* src/lxc/lxc_driver.c (lxcDriver): Likewise.
913
* src/opennebula/one_driver.c (oneDriver): Likewise.
914
* src/openvz/openvz_driver.c (openvzDriver): Likewise.
915
* src/phyp/phyp_driver.c (phypDriver): Likewise.
916
* src/qemu/qemu_driver.c (qemuDriver): Likewise.
917
* src/remote/remote_driver.c (remote_driver): Likewise.
918
* src/test/test_driver.c (testDriver): Likewise.
919
* src/uml/uml_driver.c (umlDriver): Likewise.
920
* src/vbox/vbox_tmpl.c (Driver): Likewise.
921
* src/xen/xen_driver.c (xenUnifiedDriver): Likewise.
922
* src/xenapi/xenapi_driver.c (xenapiDriver): Likewise.
924
vcpu: add new public API
926
https://www.redhat.com/archives/libvir-list/2010-September/msg00456.html,
927
but modified for enum names to be consistent with virDomainDeviceModifyFlags.
929
* include/libvirt/libvirt.h.in (virDomainVcpuFlags)
930
(virDomainSetVcpusFlags, virDomainGetVcpusFlags): New
932
* src/libvirt_public.syms: Export new symbols.
934
vcpu: add current attribute to <vcpu> element
936
https://www.redhat.com/archives/libvir-list/2010-September/msg00476.html
939
<vcpu current='x'>y</vcpu>
942
can now be used to specify 1 <= x <= y current vcpus, in relation
943
to the boot-time max of y vcpus. If current is omitted, then
944
current and max are assumed to be the same value.
946
* docs/schemas/domain.rng: Add new attribute.
947
* docs/formatdomain.html.in: Document it.
948
* tests/qemuxml2argvdata/qemuxml2argv-smp.xml: Add to
950
* tests/xml2sexprdata/xml2sexpr-pv-vcpus.xml: Likewise.
952
2010-10-19 Stefan Berger <stefanb@us.ibm.com>
954
nwfilter: changes to rules in VM->host table
955
In the table built for traffic coming from the VM going to the host make the following changes:
957
- don't ACCEPT the packets but do a 'RETURN' and let the host-specific firewall rules in subsequent rules evaluate whether the traffic is allowed to enter
959
- use the '-m state' in the rules as everywhere else
961
2010-10-19 Eric Blake <eblake@redhat.com>
963
build: avoid false positive syntax-check failure
964
* .x-sc_po_check: Exclude docs directory.
966
2010-10-19 Matthias Bolte <matthias.bolte@googlemail.com>
968
proxy: Fix undefined reference to virClose
969
Add src/util/files.c to libvirt_proxy_SOURCES.
971
esx: Handle non-UTF-8 encoded VMX files
972
ESX(i) uses UTF-8, but a Windows based GSX server writes
973
Windows-1252 encoded VMX files.
975
Add a test case to ensure that libxml2 provides Windows-1252
978
2010-10-19 Stefan Berger <stefanb@us.ibm.com>
980
Introduce VIR_CLOSE to be used rather than close()
981
Since bugs due to double-closed file descriptors are difficult to track down in a multi-threaded system, I am introducing the VIR_CLOSE(fd) macro to help avoid mistakes here.
983
There are lots of places where close() is being used. In this patch I am only cleaning up usage of close() in src/conf where the problems were.
985
I also dare to declare close() as being deprecated in libvirt code base (HACKING).
987
2010-10-19 Dan Kenigsberg <danken@redhat.com>
989
root_squash: virFileOperation may fail with EPERM too
990
Over root-squashing nfs, when virFileOperation() is called as uid==0,
991
it may fail with EACCES, but also with EPERM, due to
992
virFileOperationNoFork()'s failed attemp to chown a writable file.
994
qemudDomainSaveFlag() should expect this case, too.
996
Run initgroups() in qemudOpenAsUID()
997
qemudOpenAsUID is intended to open a file with the credentials of a
998
specified uid. Current implementation fails if the file is accessible to
999
one of uid's groups but not owned by uid.
1001
This patch replaces the supplementary group list that the child process
1002
inherited from libvirtd with the default group list of uid.
1004
2010-10-19 Nikunj A. Dadhania <nikunj@linux.vnet.ibm.com>
1006
memtune: Add min_guarantee to the virsh memtune command
1007
* tools/virsh.c: Add new memory tunable "min_guarantee", currently only
1009
* tools/virsh.pod: Update the manpage
1011
Update docs for memory parameters and memtune command
1012
* docs/formatdomain.html.in: Add memtune element details, added min_guarantee
1013
* src/libvirt.c: Update virDomainGetMemoryParameters api description, make
1014
it more clear that the user first needs to call the api to get the number
1015
of parameters supported and then call again to get the values.
1016
* tools/virsh.pod: Add usage of new command memtune in virsh manpage
1018
2010-10-18 Dan Kenigsberg <danken@redhat.com>
1020
qemu: let qemu group look below /var/lib/libvirt/qemu/
1021
Vdsm needs to communicate with its guest agent via unix domain socket,
1022
which qemu creates due to the following domain xml device:
1024
<channel type='unix'>
1025
<target type='virtio' name='com.redhat.rhevm.vdsm'/>
1026
<source mode='bind' path='/var/lib/libvirt/qemu/channels/fcp-xp-1.com.redhat.rhevm.vdsm'/>
1029
The location of the socket below /var/lib/libvirt/qemu/channels makes
1030
sense, to humans and selinux policy alike. However, that socket should
1031
be accessible to vdsm, too.
1033
Due to other (storage) reasons, vdsm is to join the "qemu" group. With
1034
this patch, vdsm can look below /var/lib/libvirt/qemu and connect to the
1037
The socket itself should be chmod'ed to allow qemu group read/write, but
1038
that's for another project.
1042
2010-10-16 Matthias Bolte <matthias.bolte@googlemail.com>
1044
esx: Fix check in esxDomainGetInfo's perf metric handling
1046
2010-10-16 Eric Blake <eblake@redhat.com>
1048
build: use latest gnulib, for ignore-value fix
1049
* .gnulib: Update to latest.
1051
2010-10-15 Eric Blake <eblake@redhat.com>
1053
virsh: add tests for recent cli improvements
1054
* tests/virshtest.c (mymain): Add tests of command parsing and
1057
virsh: new echo command
1058
* tools/virsh.c (cmdEcho): New command.
1060
* tools/virsh.pod (echo): Document it.
1062
virsh: add support for accepting arbitrary argv
1063
* tools/virsh.c (vshCmdOptType): Add VSH_OT_ARGV. Delete
1065
(vshCmddefGetData): Special case new opt flag.
1066
(vshCmddefHelp): Display help for argv.
1067
(vshCommandOptArgv): New function.
1069
docs: document how to disable memballoon
1070
https://bugzilla.redhat.com/show_bug.cgi?id=623903 documents a qemu
1071
bug that causes libvirt to hang if virt-manager happens to be
1072
querying balloon info when a guest is paused. Until the qemu bug
1073
is fixed, people need to know how to avoid the issue.
1075
* docs/formatdomain.html.in (Memory balloon device): Mention
1078
2010-10-15 Matthias Bolte <matthias.bolte@googlemail.com>
1080
esx: Explictly declare VMX file content as UTF-8
1082
2010-10-15 Laine Stump <laine@laine.org>
1084
Fix warning about a non-literal format string in qemu_driver.c
1086
2010-10-15 Eric Blake <eblake@redhat.com>
1088
build: skip xenapi driver when building for RHEL
1089
https://bugzilla.redhat.com/show_bug.cgi?id=643118
1091
* libvirt.spec.in: Provide xenapi conditionals.
1093
2010-10-14 Matthias Bolte <matthias.bolte@googlemail.com>
1095
esx: Handle name escaping properly
1096
VMware uses a mix of percent-, pipe- and base64-encoding in
1097
different combinations in different places.
1099
Add a testcase for this.
1101
2010-10-14 Stefan Berger <stefanb@us.ibm.com>
1103
nwfilter: prevent filters with different name but same UUID
1104
Patch to prevent multiple nwfilters with different name but same UUID.
1106
2010-10-14 Eric Blake <eblake@redhat.com>
1108
maint: add recent author
1109
* AUTHORS: List Harsh Prateek Bora, for 'make syntax-check'.
1111
build: fix accidental submodule reversion
1112
* .gnulib: Undo change in previous commit.
1114
2010-10-14 Harsh Prateek Bora <harsh@linux.vnet.ibm.com>
1116
new attribute accessmode to filesystem element
1117
This introduces new attribute to filesystem element
1118
to support customizable access mode for mount type.
1119
Valid accessmode are: passthrough, mapped and squash.
1122
<filesystem type='mount' accessmode='passthrough'>
1123
<source dir='/export/to/guest'/>
1124
<target dir='mount_tag'/>
1127
passthrough is the default model if not specified, that's
1128
also the current behaviour.
1130
2010-10-14 Stefan Berger <stefanb@us.ibm.com>
1132
nwfilter: cut off connections after changing filters
1133
The following filter transition from a filter allowing incoming TCP connections
1135
<rule action='accept' direction='in' priority='401'>
1138
<rule action='accept' direction='out' priority='500'>
1142
to one that does not allow them
1144
<rule action='drop' direction='in' priority='401'>
1147
<rule action='accept' direction='out' priority='500'>
1151
did previously not cut off existing (ssh) connections but only prevented newly initiated ones. The attached patch allows to cut off existing connections as well, thus enforcing what the filter is showing.
1153
I had only tested with a configuration where the physical interface is connected to the bridge where the filters are applied. This patch now also solves a filtering problem where the physical interface is not connected to the bridge, but the bridge is given an IP address and the host routes between bridge and physical interface. Here the filters drop non-allowed traffic on the outgoing side on the host.
1155
2010-10-14 Eric Blake <eblake@redhat.com>
1157
build: provide URL in 'configure --help'
1158
* configure.ac (AC_INIT): Provide email and URL.
1160
build: fix mingw build
1161
* .gnulib: Update to latest, for termios fix.
1162
* configure.ac (AC_CHECK_HEADERS): Drop redundent check.
1163
* bootstrap: Synchronize from upstream.
1164
Reported by Daniel P. Berrange.
1166
2010-10-14 Jiri Denemark <jdenemar@redhat.com>
1168
qemu: Prohibit migration of guests with host devices
1169
Explicitly raising a nice error in the case user tries to migrate a
1170
guest with assigned host devices is much better than waiting for a
1171
mysterious error with no clue for the reason.
1173
tests: Honor LIBVIRT_{DEBUG,LOG_*} variables
1175
tests: Do not override LIBVIRT_DEBUG variable
1177
cpu: Use vendor in baseline CPU only if all hosts use it
1178
When only some host CPUs given to cpuBaseline contain <vendor> element,
1179
baseline CPU should not contain it. Otherwise the result would not be
1180
compatible with the host CPUs without vendor. CPU vendors are still
1181
taken into account when computing baseline CPU, it's just removed from
1184
cpu: Fix vendor for recent CPU models
1185
Recent CPU models were specified using invalid vendor element
1186
<vendor>NAME</vendor>, which was silently ignored due to a bug in the
1187
code which was parsing it.
1189
2010-10-14 Stefan Berger <stefanb@us.ibm.com>
1191
test: silence nwfilter test
1192
This patch silences the nwfilter test case.
1194
2010-10-13 Eric Blake <eblake@redhat.com>
1196
tests: fix spurious test failure
1197
Failure introduced in commit 3a092f389.
1199
* tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr: Fix typo.
1201
memory: fix remote protocol compilation
1202
'make -C src rpcgen' is supposed to be idempotent. But commit
1203
f928f43b7b mistakently manually edited a generated file rather
1204
than fixing the upstream file.
1206
* src/remote/remote_protocol.x (remote_memory_param_value): Use
1207
correct spelling of enum values.
1208
* src/remote/remote_protocol.c: Regenerate.
1210
2010-10-13 Daniel P. Berrange <berrange@redhat.com>
1212
Enable support for nested SVM
1213
This enables support for nested SVM using the regular CPU
1214
model/features block. If the CPU model or features include
1215
'svm', then the '-enable-nesting' flag will be added to the
1216
QEMU command line. Latest out of tree patches for nested
1217
'vmx', no longer require the '-enable-nesting' flag. They
1218
instead just look at the cpu features. Several of the models
1219
already include svm support, but QEMU was just masking out
1220
the svm bit silently. So this will enable SVM on such
1223
* src/qemu/qemu_conf.h: flag for -enable-nesting
1224
* src/qemu/qemu_conf.c: Use -enable-nesting if VMX or SVM are in
1226
* src/cpu/cpu.h, src/cpu/cpu.c: API to check for a named feature
1227
* src/cpu/cpu_x86.c: x86 impl of feature check
1228
* src/libvirt_private.syms: Add cpuHasFeature
1229
* src/qemuhelptest.c: Add nesting flag where required
1231
Improve error reporting in test suites
1232
Before running each test case clear the thread local error
1233
indicator. After running each test case, dispatch any error
1236
* tests/testutils.c: Fix error reporting in test suites
1238
Update todo list file to point at bugzilla/website
1239
The TODO list changes frequently so cannot be well maintained
1240
under GIT. Update the TODO file to point people at bugzilla
1241
and the libvirt website
1243
* TODO: Point at bugzilla/website
1245
Fix Xen SEXPR generation to properly quote strings containing ()
1246
* src/xen/sexpr.c: Ensure () are escaped in sexpr2string
1247
* tests/sexpr2xmldata/sexpr2xml-boot-grub.sexpr,
1248
tests/sexpr2xmldata/sexpr2xml-boot-grub.xml,
1249
tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr,
1250
tests/xml2sexprdata/xml2sexpr-boot-grub.xml: Data files to
1252
* tests/sexpr2xmltest.c, tests/xml2sexprtest.c: Add boot-grub
1255
2010-10-13 Stefan Berger <stefanb@us.ibm.com>
1257
nwfilter: resolve deadlock between VM ops and filter update
1258
This is from a bug report and conversation on IRC where Soren reported that while a filter update is occurring on one or more VMs (due to a rule having been edited for example), a deadlock can occur when a VM referencing a filter is started.
1260
The problem is caused by the two locking sequences of
1262
qemu driver, qemu domain, filter # for the VM start operation
1263
filter, qemu_driver, qemu_domain # for the filter update operation
1265
that obviously don't lock in the same order. The problem is the 2nd lock sequence. Here the qemu_driver lock is being grabbed in qemu_driver:qemudVMFilterRebuild()
1267
The following solution is based on the idea of trying to re-arrange the 2nd sequence of locks as follows:
1269
qemu_driver, filter, qemu_driver, qemu_domain
1271
and making the qemu driver recursively lockable so that a second lock can occur, this would then lead to the following net-locking sequence
1273
qemu_driver, filter, qemu_domain
1275
where the 2nd qemu_driver lock has been ( logically ) eliminated.
1277
The 2nd part of the idea is that the sequence of locks (filter, qemu_domain) and (qemu_domain, filter) becomes interchangeable if all code paths where filter AND qemu_domain are locked have a preceding qemu_domain lock that basically blocks their concurrent execution
1279
So, the following code paths exist towards qemu_driver:qemudVMFilterRebuild where we now want to put a qemu_driver lock in front of the filter lock.
1281
-> nwfilterUndefine() [ locks the filter ]
1282
-> virNWFilterTestUnassignDef()
1283
-> virNWFilterTriggerVMFilterRebuild()
1284
-> qemudVMFilterRebuild()
1287
-> virNWFilterPoolAssignDef() [ locks the filter ]
1288
-> virNWFilterTriggerVMFilterRebuild()
1289
-> qemudVMFilterRebuild()
1291
-> nwfilterDriverReload()
1292
-> virNWFilterPoolLoadAllConfigs()
1293
->virNWFilterPoolObjLoad()
1294
-> virNWFilterPoolAssignDef() [ locks the filter ]
1295
-> virNWFilterTriggerVMFilterRebuild()
1296
-> qemudVMFilterRebuild()
1298
-> nwfilterDriverStartup()
1299
-> virNWFilterPoolLoadAllConfigs()
1300
->virNWFilterPoolObjLoad()
1301
-> virNWFilterPoolAssignDef() [ locks the filter ]
1302
-> virNWFilterTriggerVMFilterRebuild()
1303
-> qemudVMFilterRebuild()
1305
Qemu is not the only driver using the nwfilter driver, but also the UML driver calls into it. Therefore qemuVMFilterRebuild() can be exchanged with umlVMFilterRebuild() along with the driver lock of qemu_driver that can now be a uml_driver. Further, since UML and Qemu domains can be running on the same machine, the triggering of a rebuild of the filter can touch both types of drivers and their domains.
1307
In the patch below I am now extending each nwfilter callback driver with functions for locking and unlocking the (VM) driver (UML, QEMU) and introduce new functions for locking all registered callback drivers and unlocking them. Then I am distributing the lock-all-cbdrivers/unlock-all-cbdrivers call into the above call paths. The last shown callpath starting with nwfilterDriverStart() is problematic since it is initialize before the Qemu and UML drives are and thus a lock in the path would result in a NULL pointer attempted to be locked -- the call to virNWFilterTriggerVMFilterRebuild() is never called, so we never lock either the qemu_driver or the uml_driver in that path. Therefore, only the first 3 paths now receive calls to lock and unlock all callback drivers. Now that the locks are distributed where it matters I can remove the qemu_driver and uml_driver lock from qemudVMFilterRebuild() and umlVMFilterRebuild() and not requiring the recursive locks.
1309
For now I want to put this out as an RFC patch. I have tested it by 'stretching' the critical section after the define/undefine functions each lock the filter so I can (easily) concurrently execute another VM operation (suspend,start). That code is in this patch and if you want you can de-activate it. It seems to work ok and operations are being blocked while the update is being done.
1310
I still also want to verify the other assumption above that locking filter and qemu_domain always has a preceding qemu_driver lock.
1312
2010-10-13 Eric Blake <eblake@redhat.com>
1314
virsh: update comment about parsing
1315
* tools/virsh.c: Update comments to match patch series.
1317
virsh: move code into topological order
1318
* tools/virsh.c (vshCommandParse): Float up, to avoid the need for
1319
a forward declaration.
1321
virsh: simplify top-level option parsing
1322
This makes 'virsh --conn test:///default help help' work right;
1323
previously, the abbreviation confused our hand-rolled option parsing.
1325
* tools/virsh.c (vshParseArgv): Use getopt_long feature, rather
1326
than (incorrectly) reparsing options ourselves.
1328
2010-10-13 Lai Jiangshan <laijs@cn.fujitsu.com>
1330
virsh: add -- support
1331
"--" means no option at the following arguments.
1333
virsh: support single quote
1334
Some users may type command like this at the virsh shell:
1335
virsh # somecmd 'some arg'
1337
because they often use single quote in linux shell.
1339
virsh: add escaper \ for command string parsing
1340
add escaper \ for command string parsing, example:
1342
virsh # cd /path/which/have/a/double\"quote
1344
2010-10-13 Eric Blake <eblake@redhat.com>
1346
virsh: document options in man page
1347
* tools/virsh.pod: Document top-level options.
1349
2010-10-13 Lai Jiangshan <laijs@cn.fujitsu.com>
1351
virsh: rework command parsing
1352
Old virsh command parsing mashes all the args back into a string and
1353
miss the quotes, this patches fix it. It is also needed for introducing
1354
qemu-monitor-command which is very useful.
1356
This patches uses the new vshCommandParser abstraction and adds
1357
vshCommandArgvParse() for arguments vector, so we don't need
1358
to mash arguments vector into a command sting.
1360
And the usage was changed:
1362
virsh [options] [commands]
1365
virsh [options]... [<command_string>]
1366
virsh [options]... <command> [args...]
1368
So we still support commands like:
1369
"define D.xml; dumpxml D" was parsed as a commands-string.
1371
and support commands like:
1372
we will not mash them into a string, we use new argv parser for it.
1374
But we don't support the command like:
1375
"define D.xml; dumpxml" was parsed as a command-name, but we have no such command-name.
1377
virsh: add vshCommandParser abstraction
1378
add vshCommandParser and make vshCommandParse() accept different
1381
the current code for parse command string is integrated as
1382
vshCommandStringParse().
1384
virsh: better handling the boolean option
1385
in old code the following commands are equivalent:
1386
virsh # dumpxml --update-cpu=vm1
1387
virsh # dumpxml --update-cpu vm1
1388
because the old code split the option argument into 2 parts:
1389
--update-cpu=vm1 is split into update-cpu and vm1,
1390
and update-cpu is a boolean option, so the parser takes vm1 as another
1391
argument, very strange.
1393
after this patch applied, the first one will become illegal.
1395
To achieve this, we don't parse/check options when parsing command sting,
1396
but check options when parsing a command argument. And the argument is
1397
not split when parsing command sting.
1399
virsh: allow zero length arguments
1400
the following command is allowed at shell, we also make it allowed at virsh shell.
1402
2010-10-13 Eric Blake <eblake@redhat.com>
1404
virsh: poison raw allocation routines
1405
* tools/virsh.c (malloc, calloc, realloc, strdup): Enforce that
1406
within this file, we use the safe vsh wrappers instead.
1407
(cmdNodeListDevices, cmdSnapshotCreate, main): Fix violations of
1410
2010-10-13 Lai Jiangshan <laijs@cn.fujitsu.com>
1412
virsh: better support double quote
1413
In origin code, double quote is only allowed at the begin or end
1414
"complicated argument"
1415
--some_opt="complicated string" (we split this argument into 2 parts,
1416
option and data, the data is "complicated string").
1418
This patch makes it allow double quote at any position of
1420
complicated" argument"
1421
complicated" "argument
1422
--"some opt=complicated string"
1424
This patch is also needed for the following patches,
1425
the following patches will not split option argument into 2 parts,
1426
so we have to allow double quote at any position of an argument.
1428
2010-10-13 Guido Günther <agx@sigxcpu.org>
1430
Don't fail on missing D-Bus
1431
We don't fail when we can't contact HAL so we shouldn't fail if we can't
1432
contact D-Bus either.
1434
2010-10-13 Daniel Veillard <veillard@redhat.com>
1436
Fixes for documentation extraction
1437
* include/libvirt/libvirt.h.in: some of the function type description
1438
were broken so they could not be automatically documented
1439
* src/util/event.c docs/apibuild.py: event.c exports one public API
1440
so it needs to be scanned too, avoid a few warnings
1442
2010-10-13 Daniel P. Berrange <berrange@redhat.com>
1444
Implement support for virtio plan9fs filesystem passthrough in QEMU
1445
Make use of the existing <filesystem> element to support plan9fs
1446
filesystem passthrough in the QEMU driver
1448
<filesystem type='mount'>
1449
<source dir='/export/to/guest'/>
1450
<target dir='/import/from/host'/>
1453
NB, the target is not actually a directory, it is merely a arbitrary
1454
string tag that is exported to the guest as a hint for where to mount
1457
Add todo.pl and config example to EXTRA_DIST
1458
* docs/Makefile.am: Add todo.pl and todo.cfg-example to EXTRA_DIST
1460
2010-10-12 Matthias Bolte <matthias.bolte@googlemail.com>
1462
Fix several minor problems introduced by the memtune series
1463
Add proper documentation to the new VIR_DOMAIN_MEMORY_* macros in
1464
libvirt.h.in to placate apibuild.py.
1466
Mark args as unused in for libvirt_virDomain{Get,Set}MemoryParameters
1467
in the Python bindings and add both to the libvirtMethods array.
1469
Update remote_protocol-structs to placate make syntax-check.
1471
Undo unintended modifications in vboxDomainGetInfo.
1473
Update the function table of the VirtualBox and XenAPI drivers.
1475
2010-10-12 Nikunj A. Dadhania <nikunj@linux.vnet.ibm.com>
1477
Remote protocol implementation of virDomainSet/GetMemoryParameters
1479
Adding memtune command to virsh tool
1480
The command helps to control the memory/swap parameters for the system, for
1481
eg. hard_limit (max memory the vm can use), soft_limit (limit during memory
1482
contention), swap_hard_limit(max swap the vm can use)
1484
2010-10-12 Daniel Veillard <veillard@redhat.com>
1486
Avoid checking against strncpy in virsh.c
1487
since the replacement function virStrcpy is not available
1489
2010-10-12 Nikunj A. Dadhania <nikunj@linux.vnet.ibm.com>
1491
Implement domainGetMemoryParamters for LXC
1492
Driver interface for getting memory parameters, eg. hard_limit,
1493
soft_limit and swap_hard_limit.
1495
Implement domainSetMemoryParamters for LXC
1496
Add support in the lxc driver for various memory controllable parameters
1498
Adding memtunables to libvirt-lxc command
1499
libvirt-lxc now configures the hardlimit, softlimit and swaplimit, if
1500
specified in the domain xml file or picks up the defaults.
1502
Adding memtunables to qemuSetupCgroup
1503
QEmu startup will pick up the memory tunables specified in the domain
1506
Implement domainGetMemoryParamters for QEmu
1507
Driver interface for getting memory parameters, eg. hard_limit,
1508
soft_limit and swap_hard_limit based on cgroup support
1510
Implement domainSetMemoryParamters for QEmu
1511
Driver interface for setting memory hard_limit, soft_limit and swap
1512
hard_limit based on cgroup support
1514
Implement cgroup memory controller tunables
1515
Provides interfaces for setting/getting memory tunables like hard_limit,
1516
soft_limit and swap_hard_limit
1518
XML parsing for memory tunables
1519
Adding parsing code for memory tunables in the domain xml file
1520
also change the internal define structures used for domain memory
1522
Adds a new specific test
1524
2010-10-12 Daniel Veillard <veillard@redhat.com>
1526
Cleanup some tabs issues
1528
2010-10-12 Nikunj A. Dadhania <nikunj@linux.vnet.ibm.com>
1530
Adds xml entries for memory tunables in domain schema
1531
The patch adds xml entries to the domain.rng file.
1534
+ Fix typo min_guarantee
1536
Adding virDomainSetMemoryParameters and virDomainGetMemoryParameters API
1537
Public api to set/get memory tunables supported by the hypervisors.
1540
* some cleanups in libvirt.c
1541
* adding extra checks in libvirt.c new entry points
1544
* Move exporting public API to this patch
1545
* Add unsigned int flags to the public api for future extensions
1548
* Add domainGetMemoryParamters and NULL in all the driver interface
1551
* Initialize domainSetMemoryParameters to NULL in all the driver
1552
interface structure.
1554
Adding structure and defines for virDomainSet/GetMemoryParameters
1555
This patch adds a structure virMemoryParameter, it contains the name of
1557
parameter and the type of the parameter along with a union.
1560
+ rename enums to VIR_DOMAIN_MEMORY_PARAM_*
1561
+ remove some extraneous tabs
1564
+ Add unsigned int flags to the public api for future extensions
1567
+ Protoype for virDomainGetMemoryParameters and dummy python binding.
1570
+ Includes dummy python bindings for the library to build cleanly.
1571
+ Define string constants like "hard_limit", etc.
1572
+ re-order this patch.
1574
2010-10-12 Jiri Denemark <jdenemar@redhat.com>
1576
cpu: Remove redundant features
1577
Some features provided by the recently added CPU models were mentioned
1578
twice for each model. This was a result of automatic generation of the
1579
XML from qemu's CPU configuration file without noticing this redundancy.
1581
2010-10-12 Eric Blake <eblake@redhat.com>
1583
util: add missing export
1584
Commit 1fe2927a3 forgot to export a symbol.
1586
* src/libvirt_private.syms (virHexToBin): Add.
1587
* src/.gitignore: Ignore temporary file.
1589
2010-10-12 Daniel P. Berrange <berrange@redhat.com>
1591
Set sensible defaults for cpu match and feature policy
1592
To enable the CPU XML from the capabilities to be pasted directly
1593
into the guest XML with no editing, pick a sensible default for
1594
match and feature policy. The CPU match will be exact and the
1595
feature policy will be require. This should ensure safety for
1596
migration and give DWIM semantics for users
1598
* src/conf/cpu_conf.c: Default to exact match and require policy
1599
* docs/formatdomain.html.in: Document new defaults
1601
Add automatic generation of a todo item page
1602
This adds a script to generate the todo item page from
1603
bugzilla. This requires a valid username+password for
1604
bugzilla, so it is intended that this only be run on
1605
the libvirt.org website via cron. Normal usage will just
1606
generate an empty stub page.
1608
* docs/todo.pl: Script to extract todo items from bugzilla
1609
* docs/todo.cfg-example: Example config file
1610
* docs/sitemap.html.in: Add todo page
1611
* docs/Makefile.am: Generation rules for todo items
1613
2010-10-12 Jiri Denemark <jdenemar@redhat.com>
1615
xen: Fix virDomain{At,De}tachDevice
1616
According to API documentation virDomain{At,De}tachDevice calls are
1617
supposed to only work on active guests for device hotplug. For anything
1618
beyond that, their *Flags variants have to be used.
1620
Despite the variant which was acked on libvirt mailing list
1621
(https://www.redhat.com/archives/libvir-list/2010-January/msg00385.html)
1622
commit ed9c14a7ef86d7a45a6d57cbfee5410fca428633 (by Jim Fehlig)
1623
introduced automagic behavior of these API calls for xen driver. Since
1624
January, these calls always change persistent configuration of a guest
1625
and if the guest is currently active, they also hot(un)plug the device.
1627
That change didn't follow API documentation and also broke device
1628
hot(un)plug for older xend implementations which do not support changing
1629
persistent configuration of a guest and hot(un)plugging in one step.
1631
This patch should not break anything for active guests. On the other
1632
hand, changing inactive guests is not supported any more.
1634
xen: xenXMDomain*DeviceFlags should obey all flags
1635
xenXMDomain*DeviceFlags() silently ignores requests to modify live
1636
configuration of an active guest while still touching its persistent
1639
xen: Fix logic bug in xenDaemon*DeviceFlags
1641
xen: Make xenDaemon*DeviceFlags errors less confusing
1642
When a user calls to virDomain{Attach,Detach,Update}DeviceFlags() with
1643
flags == VIR_DOMAIN_DEVICE_MODIFY_LIVE on an inactive guest running on
1644
an old Xen hypervisor (such as RHEL-5) xend_internal driver reports:
1646
Xend version does not support modifying persistent config
1648
which is pretty confusing since no-one requested to modify persistent
1651
2010-10-12 Guido Günther <agx@sigxcpu.org>
1653
Return a suitable error message if we can't find a matching emulator
1655
2010-10-08 Guido Günther <agx@sigxcpu.org>
1657
Pass -n to ip(6)tables
1658
to avoid long timeouts waiting for DNS servers
1660
2010-10-07 Stefan Berger <stefanb@us.ibm.com>
1662
nwfilter: Add 2nd example to the html docs
1663
This patch adds another example to the nwfilter html page and provides 2 solutions for how to write a filter meeting the given requirements using newly added features.
1665
nwfilter: Extend docs with info about the state attribute
1666
I am adding a row with information about the newly supported state
1667
attribute to each of the tables describing supported attributes of protocols.
1669
nwfilter: Extend schema to accept state attribute
1670
Extend the nwfilter.rng schema to accept state attribute.
1672
nwfilter: Add test case for testing the state attribute
1673
This patch adds a test case for testing the XML parser's and instantiator's
1674
support of the state attribute. The other test case tests existing
1675
capabilities. Both test cases will be used in TCK again.
1677
nwfilter: Instantiate state match in ip(6)tables rules
1678
In this patch I am extending the rule instantiator to create the state
1679
match according to the state attribute in the XML. Only one iptables
1680
rule in the incoming or outgoing direction will be created for a rule
1681
in direction 'in' or 'out' respectively. A rule in direction 'inout' does
1682
get iptables rules in both directions.
1684
nwfilter: Extend XML parser and gen. to support state attr.
1685
The patch below extends the XML parser and generator so that every l3 protocol
1686
now can have a state attribute.
1688
2010-10-05 Eric Blake <eblake@redhat.com>
1690
build: require pkg-config for bootstrap
1691
* .gnulib: Update to latest, for bootstrap fixes.
1692
* bootstrap: Synchronize with upstream.
1693
* bootstrap.conf: Add pkg-config pre-requisite.
1694
* autogen.sh: Tweak wording message.
1695
Reported by Justin Clift, and with feedback from Bruno Haible.
1697
2010-10-05 Jiri Denemark <jdenemar@redhat.com>
1699
xen: Fix bogus error when attaching a device
1700
The xm internal xen driver only supports disk and network devices to be
1701
added to a guest. On an attempt to attach any other device the xm driver
1702
used VIR_ERR_XML_ERROR which resulted in a completely bogus error
1705
error: Failed to attach device from pci.xml
1706
error: XML description for unknown device is not well formed or invalid
1708
2010-10-05 Justin Clift <jclift@redhat.com>
1710
configure: disable network and storage-fs drivers on mac os x
1711
Disabling these two drivers on MacOS X, where they are known to
1712
not work, allows libvirt (including the daemon) to compile without
1713
any further changes.
1715
2010-10-04 Stefan Berger <stefanb@us.ibm.com>
1717
nwfilter: fix memory leaks
1718
Fixing memory leak shown by valgrind and freeing buffer in two more places.
1720
2010-10-01 Matthias Bolte <matthias.bolte@googlemail.com>
1722
esx: Add support for virtual serial device network backing
1723
Since version 4.1 ESX(i) can expose virtual serial devices over TCP.
1725
Add support in the VMX handling code for this, add test cases to cover
1726
it and add links to some documentation.
1728
ESX supports two additional protocols: TELNETS and TLS. Add them to
1729
the list of serial-over-TCP protocols.
1731
2010-10-01 Eric Blake <eblake@redhat.com>
1733
vcpu: improve cpuset attribute
1734
The <vcpu cpuset=...> attribute has been available since commit
1735
e193b5dd, but without documentation or RNG validation.
1737
* docs/schemas/domain.rng (vcpu): Further validate cpuset.
1738
* docs/formatdomain.html.in: Document it.
1739
* src/conf/domain_conf.c: Fix typos.
1741
2010-10-01 Matthias Bolte <matthias.bolte@googlemail.com>
1743
phyp: Verify that domain XML contains at least one disk element
1744
phypBuildLpar expects that at least one disk element is provided.
1746
2010-09-30 Jamie Strandboge <jamie@canonical.com>
1748
virt-aa-helper-test cleanups
1749
Don't cat | sed, just sed. Suggested by Eric Blake.
1751
implement usb and pci hot attach in AppArmor driver
1752
Description: Implement AppArmorSetSecurityHostdevLabel() and
1753
AppArmorRestoreSecurityHostdevLabel() for hostdev and pcidev attach.
1755
virt-aa-helper also has to be adjusted because *FileIterate() is used for pci
1756
and usb devices and the corresponding XML for hot attached hostdev and pcidev
1757
is not in the XML passed to virt-aa-helper. The new '-F filename' option is
1758
added to append a rule to the profile as opposed to the existing '-f
1759
filename', which rewrites the libvirt-<uuid>.files file anew. This new '-F'
1760
option will append a rule to an existing libvirt-<uuid>.files if it exists,
1761
otherwise it acts the same as '-f'.
1763
load_profile() and reload_profile() have been adjusted to add an 'append'
1764
argument, which when true will use '-F' instead of '-f' when executing
1767
All existing calls to load_profile() and reload_profile() have been adjusted
1768
to use the old behavior (ie append==false) except AppArmorSetSavedStateLabel()
1769
where it made sense to use the new behavior.
1771
This patch also adds tests for '-F'.
1773
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/640993
1775
2010-09-30 Stefan Berger <stefanb@us.ibm.com>
1777
nwfilter: Add a test case for testing the comment attribute
1778
This patch adds a test case for testing the XML parser's and instantiator's
1779
support of the comment attribute.
1781
nwfilter: Extend docs with information about comment attr.
1782
I am adding a row with information about the newly supported comment
1783
attribute to each of the tables describing supported attributes of protocols.
1785
nwfilter: Extend nwfilter schema to accept comment attrib.
1786
Extend the nwfilter.rng schema to accept comment attributes for all protocol
1789
nwfilter: Instantiate comments in ip(6)tables rules
1790
In this patch I am extending the rule instantiator to create the comment
1791
node where supported, which is the case for iptables and ip6tables.
1793
Since commands are written in the format
1795
cmd='iptables ...-m comment --comment \"\" '
1797
certain characters ('`) in the comment need to be escaped to
1798
prevent comments from becoming commands themselves or cause other
1799
forms of (bash) substitutions. I have tested this with various input and in
1800
my tests the input made it straight into the comment. A test case for TCK
1801
will be provided separately that tests this.
1803
nwfilter: Extend XML parser and generator w/ comment attribute
1804
The patch below extends the XML parser and generator so that every protocol
1805
now can have a comment node. Comments are limited to 256 characters.
1807
2010-09-30 Eric Blake <eblake@redhat.com>
1809
build: fix example build on MacOS X
1810
Partial reversion of commit 76d87a59, now that bootstrap is smarter.
1812
* .gnulib: Update to latest, for poll and bootstrap fixes.
1813
* bootstrap: Resync from gnulib.
1814
* autogen.sh: Drop redundant tool checks; bootstrap does them
1815
better, by honoring environment variables.
1816
* examples/domain-events/events-c/Makefile.am (INCLUDES)
1817
(event_test_LDADD): Use gnulib library during build.
1818
* bootstrap.conf (gnulib_tool_option_extras): Revert --libtool
1819
addition, now that updated bootstrap does it for us.
1820
Reported by Justin Clift.
1822
2010-09-29 Eduardo Otubo <otubo@linux.vnet.ibm.com>
1824
phyp: Checking for NULL values when building new guest
1825
When creating a new gust, the function phypBuildLpar() was not
1826
checking for NULL values
1828
src/phyp/phyp_driver.c: check the definition arguments to avoid a segmentation
1829
fault in phypBuildLpar()
1831
2010-09-29 Justin Clift <jclift@redhat.com>
1833
configure: tweak logic flow of virtport check
1834
This fixes a small logic bug, where passing --without-macvtap
1835
on the configure line, or otherwise indicating a lack of
1836
support for macvtap, causes configure to bail.
1838
mpath: disable devmapper-multipath checking on non-linux
1839
The configure script was breaking on MacOS X unless passed:
1841
--without-storage-mpath
1843
This patch leverages Stefan Bergers earlier work for nwfilter,
1844
so non-linux systems don't even attempt to build multipath.
1846
2010-09-29 Stefan Berger <stefanb@us.ibm.com>
1848
Rework configure logic for virtualport support
1849
In this patch I am reworking the logic around detecting virtual port support and requiring the libnl dependency.
1851
- It requires --with-macvtap and displays an error in case of --without-macvtap --with-virtualport.
1852
- It tests for availability of certain data in include files and displays an error in case the include file is not at the correct level and --with-virtualport was chosen
1853
- displays 'checking' messages for macvtap and virtualport support and results
1854
- libnl support is required when macvtap is found or requested; if libnl is not there, please supply without-macvtap
1856
2010-09-28 Justin Clift <jclift@redhat.com>
1858
mac os x: use awk selected by build system rather than first in path
1859
Prior to this patch, the ChangeLog generation was hard coded to use
1860
"awk", when it should have been using the AWK variable set by our
1863
This breaks compilation on a newly installed OS X system, where the
1864
default path has the Mac (non GNU) awk in the default search PATH
1865
before any installed GNU awk (gawk).
1867
nwfilter: remove recently added workaround define for macos x
1868
This reverses commit 04c3704, which added a define to nwfilter to
1869
allow libvirtd compilation on Mac OS X. Stefan Bergers commit, 2e7294d,
1870
is the proper solution, removing the requirement for nwfilter on non-Linux.
1872
virtualbox: fix a typo in the expected location on mac os x
1873
Mac OS X provides an "/Applications" folder, not an "/Application" folder,
1874
so installed VirtualBox wasn't being detected by default.
1876
This 1 character patch fixes this.
1878
2010-09-27 Dan Kenigsberg <danken@redhat.com>
1880
python: drop unnecessary conn assignment
1881
Since 554d82a200289938d5639a782a9f12e3e2e968f0, conn is unused. Let's
1882
drop it - but keep the signature of the constructor for backward
1885
2010-09-27 Stefan Berger <stefanb@us.ibm.com>
1887
nwfilter: Don't compile nwfilter driver on other systems than Linux
1888
Don't compile the nwfilter driver (instantiating the rules) on other systems than Linux.
1890
2010-09-27 Justin Clift <jclift@redhat.com>
1892
nwfilter: add a missing define, so libvirtd builds on macos x
1893
The nwfilter code uses ETH_ALEN, which isn't defined on MacOS X.
1894
This is a simple workaround, to add it when missing.
1896
2010-09-24 Stefan Berger <stefanb@us.ibm.com>
1898
nwfilter: report if ip(6)tables rules would not be active
1899
The patch below reports a warning in the log if the generated ip(6)tables rules would not be effective due to the proc filesystem entries
1901
/proc/sys/net/bridge/bridge-nf-call-iptables
1902
/proc/sys/net/bridge/bridge-nf-call-ip6tables
1904
containing a '0'. The warning tells the user what to do. I am rate-limiting the warning message to appear only every 10 seconds.
1906
2010-09-23 Jamie Strandboge <jamie@canonical.com>
1908
app-armor: add 'rw' for appropriate devices
1909
Description: Check for VIR_DOMAIN_CHR_TYPE in serial ports and add 'rw' for
1910
defined serial ports, parallel ports and channels
1912
Bug-Ubuntu: LP: #578527, LP: #609055
1914
add extra tests to virt-aa-helper-test for new '-p' option
1916
2010-09-23 Eric Blake <eblake@redhat.com>
1918
docs: grammar cleanups on logging examples
1919
* docs/logging.html.in: Fix spelling and grammar.
1921
2010-09-23 Philipp Hahn <hahn@univention.de>
1923
Fix spelling of Xen in comments
1925
2010-09-23 Eric Blake <eblake@redhat.com>
1927
maint: update to latest gnulib
1928
* .gnulib: Update to latest.
1929
* bootstrap.conf (gnulib_modules): Add new termios module.
1930
(gnulib_tool_option_extras): Make libtool usage explicit.
1931
* src/util/util.c (includes): Gnulib now guarantees termios.h.
1932
* bootstrap: Resync from gnulib.
1934
2010-09-23 Matthias Bolte <matthias.bolte@googlemail.com>
1936
esx: Allow '-' in VMX entry names
1937
Add a test for this.
1939
Reported by Frank Dirks.
1941
2010-09-23 Chris Wright <chrisw@redhat.com>
1943
pciFindStubDriver should return NULL on error
1944
pciFindStubDriver currently returns 0 in one of the error cases.
1945
While it's correct...NULL is more readable.
1947
2010-09-22 Jiri Denemark <jdenemar@redhat.com>
1949
libvirt-guests: start late and stop early
1950
libvirt-guests init script should be started as late as possible during
1951
host startup and stopped as early as possible during host shutdown to
1952
make sure required services are already/still up and running at the time
1953
libvirt-guests runs.
1955
2010-09-22 Daniel P. Berrange <berrange@redhat.com>
1957
Make SASL work over UNIX domain sockets
1958
The addrToString methods were not coping with UNIX domain sockets
1959
which have no normal host+port address. Hardcode special handling
1960
for these so that SASL routines can work over UNIX sockets. Also
1961
fix up SSF logic in remote client so that it presumes that a UNIX
1964
* daemon/remote.c: Fix addrToString for UNIX sockets.
1965
* src/remote/remote_driver.c: Fix addrToString for UNIX sockets
1966
and fix SSF logic to work for TLS + UNIX sockets in the same
1969
Refactor some daemon code to facilitate introduction of static probes
1970
Refactor some daemon code to facilitate the introductioin of static
1971
probes, sanitizing function exit paths in many places
1973
* daemon/libvirtd.c: Pass the dname string into remoteCheckDN
1974
to let caller deal with failure paths. Add separate exit paths
1975
to remoteCheckCertificate for auth failure vs denial. Merge
1976
all exit paths in qemudDispatchServer to one cleanup block
1977
* daemon/remote.c: Add separate exit paths to SASL & PolicyKit
1978
functions for auth failure vs denial
1980
2010-09-22 Eric Blake <eblake@redhat.com>
1982
nodeinfo: work when hot-plugging is disabled
1983
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=635857.
1985
* src/nodeinfo.c (cpu_online): Allow missing directory for all
1986
CPUs, not just cpu0.
1988
2010-09-22 Stefan Berger <stefanb@us.ibm.com>
1990
This patch fixes a bug appearing on big endian machines where the returned XML is not the one that is expected (see test/nwfilterxml2xmltest). The problem is due to for example the casting of pointers to unsigned integers to void * and then back to 16 bit integers.
1992
2010-09-16 Eric Blake <eblake@redhat.com>
1994
tests: silence qemuargv2xmltest noise
1995
Before this patch, the testsuite was noisy:
1997
TEST: qemuargv2xmltest
1998
........................................ 40
1999
................20:41:28.046: warning : qemuParseCommandLine:6565 : unknown QEMU argument '-unknown', adding to the qemu namespace
2000
20:41:28.046: warning : qemuParseCommandLine:6565 : unknown QEMU argument 'parameter', adding to the qemu namespace
2002
PASS: qemuargv2xmltest
2004
It's not a real failure (which is why the test was completing
2005
successfully), so much as an intentional warning to the user that use
2006
of the qemu namespace has the potential for undefined effects that
2007
leaked through the default logging behavior. After this patch series,
2008
all tests can access any logged data, and this particular test can
2009
explicitly check for the presence or absence of the warning, such that
2010
the test output becomes:
2012
TEST: qemuargv2xmltest
2013
........................................ 40
2014
................. 57 OK
2015
PASS: qemuargv2xmltest
2017
* tests/testutils.h (virtTestLogContentAndReset): New prototype.
2018
* tests/testutils.c (struct virtTestLogData): New struct.
2019
(virtTestLogOutput, virtTestLogClose, virtTestLogContentAndReset):
2021
(virtTestMain): Always capture log data emitted during tests.
2022
* tests/qemuargv2xmltest.c (testCompareXMLToArgvHelper, mymain):
2023
Use flag to mark which tests expect noisy stderr.
2024
(testCompareXMLToArgvFiles): Add parameter to test whether stderr
2025
was appropriately silent.
2027
tests: clean up qemuargv2xmltest
2028
Since commit 107a7bd06bc, the extraFlags argument was unused.
2030
* tests/qemuargv2xmltest.c (DO_TEST): Drop extraFlags argument.
2033
2010-09-16 Justin Clift <jclift@redhat.com>
2035
docs: reworked the policykit patch submitted by Patrick Dignan
2036
Tweaked the PolicyKit documentation improvement patch submitted
2039
Additionally, removed the reference to PolicyKit.conf, which is
2040
no longer used by PolicyKit, plus added a link to the expanded
2041
PolicyKit example page on the wiki.
2043
docs: fix the xml validity errors regarding name and id
2044
Got sick of seeing the "validity error : ID Objects already defined"
2045
errors, which this patch addresses.
2047
2010-09-15 Eric Blake <eblake@redhat.com>
2049
build: avoid non-portable IPv6 struct member, for MacOS X
2050
* src/util/network.c (getIPv6Addr): Manually join s6_addr bytes,
2051
instead of assuming s6_addr16 shorts.
2052
Reported by Justin Clifton; solution suggested by Bruno Haible.
2054
2010-09-15 Justin Clift <jclift@redhat.com>
2056
virsh: change wexitstatus order to allow compilation on mac osx
2057
This is the simple fix Daniel Veillard suggested last year:
2059
http://www.redhat.com/archives/libvir-list/2009-May/msg00459.html
2061
libvirtd: improve the error message displayed on tls client auth failure
2062
This address BZ # 556599:
2064
https://bugzilla.redhat.com/show_bug.cgi?id=556599
2066
2010-09-14 Eric Blake <eblake@redhat.com>
2068
maint: silence warning from libtool
2069
I got tired of seeing this.
2071
config.status: executing libtool commands
2072
/bin/rm: cannot remove `libtoolT': No such file or directory
2073
config.status: executing po-directories commands
2075
While I was at it, there were a couple other unused variables.
2077
* configure.ac (RM, MV, TAR): Drop; nothing in libvirt directly uses
2078
this, and assigning RM interferes with libtool.
2080
2010-09-14 Soren Hansen <soren@linux2go.dk>
2082
Rebuild network filter for UML guests on updates
2083
When nwfilter support was added to UML, I didn't realise the UML driver
2084
needed instrumentation to make updating nwfilters on the fly work. This
2085
patch adds this bit of glue.
2087
2010-09-14 Jiri Denemark <jdenemar@redhat.com>
2089
virsh: Use virBuffer for generating XML
2090
cmdAttachInterface and cmdAttachDisk still used vshRealloc and sprintf
2091
for generating XML, which is hardly maintainable. Let's get rid of this
2094
2010-09-14 Eric Blake <eblake@redhat.com>
2096
build: use portable sed expressions
2097
* src/Makefile.am (libvirt.def, libvirt_qemu.def): '\}' and '\t'
2098
are not required by POSIX. Use '}' and literal tab instead.
2099
(install-data-local): Avoid sed -i.
2100
* tests/read-bufsiz: Likewise.
2101
Reported by Mitchell Hashimoto.
2103
2010-09-13 Justin Clift <jclift@redhat.com>
2105
docs: improve wording for the dev guide
2106
Wording tweak suggested by David Jorm, author of the libvirt App Dev Guide.
2108
2010-09-13 Jiri Denemark <jdenemar@redhat.com>
2110
tests: Fix preprocessor indentation
2112
2010-09-10 Justin Clift <jclift@redhat.com>
2114
docs: add the app dev guide
2115
Added a workable initial page for the libvirt Application
2116
Development Guide, giving the online viewable options +
2117
the available download ones (pdf, epub, srpm).
2119
Added a link to the PDF to the main Downloads page, plus
2120
neatened the html tags throughout the page as they
2121
were a bit of a mess.
2123
Added --enable-compile-warnings=error to the autogen line,
2124
as suggested by Eric Blake.
2126
2010-09-10 Daniel Veillard <veillard@redhat.com>
2128
Libvirt release 0.8.4
2129
update news, spec and french localizaton
2131
2010-09-10 Cole Robinson <crobinso@redhat.com>
2133
buf: Fix possible infinite loop in EscapeString, VSnprintf
2134
The current code will go into an infinite loop if the printf generated
2135
string is >= 1000, AND exactly 1 character smaller than the amount of free
2136
space in the buffer. When this happens, we are dropped into the loop body,
2137
but nothing will actually change, because count == (buf->size - buf->use - 1),
2138
and virBufferGrow returns unchanged if count < (buf->size - buf->use)
2140
Fix this by removing the '- 1' bit from 'size'. The *nprintf functions handle
2141
the NULL byte for us anyways, so we shouldn't need to manually accommodate
2144
Here's a bug where we are actually hitting this issue:
2145
https://bugzilla.redhat.com/show_bug.cgi?id=602772
2147
v2: Eric's improvements: while -> if (), remove extra va_list variable,
2148
make sure we report buffer error if snprintf fails
2150
v3: Add tests/virbuftest which reproduces the infinite loop before this
2151
patch, works correctly after
2153
2010-09-10 Guido Günther <agx@sigxcpu.org>
2155
Fix block statistics with newer versions of Xen
2156
Apparently the xen block device statistics moved from
2157
"/sys/devices/xen-backend/vbd-%d-%d/statistics/%s"
2159
"/sys/bus/xen-backend/devices/vbd-%d-%d/statistics/%s"
2161
* src/xen/block_stats.c: try the extra path in case of failure to
2162
find the statistics in /sys
2164
2010-09-10 Jiri Denemark <jdenemar@redhat.com>
2166
virsh: Option for overriding disk type in attach-disk
2167
Unless --driver tap|file option was given to attach-disk, virsh would
2168
generate <disk type='block'> XML which might be fine for Xen but not for
2169
other hypervisors. This patch introduces a new option --sourcetype which
2170
can be used to explicitly set the type of disk source. The option
2171
accepts either "file" or "block" types.
2173
2010-09-10 Daniel P. Berrange <berrange@redhat.com>
2175
Fix dependancies for remote generated files
2176
Very occasionally during a parallel make, dispatch.c would
2177
be compiled before the generated remote headers had been
2178
fully written. This would cause it to compile an empty
2179
union, and result in really wierd runtime bugs that are
2180
near impossible to diagnose.
2182
* daemon/Makefile.am: Fix remote build deps
2184
Ensure remote daemon unions are always non-zero length
2185
If the remote daemon args/ret unions ever become zero length
2186
(due to a build / Makefile bug) then bad stuff happens at
2187
runtime. Add a compile time assertion to check for this kind
2190
* daemon/remote.h: Ensure non-zero length unions
2192
Fix off-by-1 in QEMU boot arg array handling
2193
A QEMU guest can have upto VIR_DOMAIN_BOOT_LAST boot entries
2194
defined. When building the QEMU arg, each entry takes a
2195
single byte. This means the array must be declared to be
2196
VIR_DOMAIN_BOOT_LAST+1 bytes in length to allow for the
2199
* src/qemu/qemu_conf.c: Fix off-by-1 boot arg array size
2201
2010-09-10 Jiri Denemark <jdenemar@redhat.com>
2203
bridge: Fix static-only DHCP configuration
2204
For static-only DHCP, i.e. with no <range> but at least one <host>
2205
element within <dhcp> element, we have to add "--dhcp-range IP,static"
2206
option to dnsmasq to actually enable the service. Without this option,
2207
dnsmasq will not respond to DHCP requests.
2209
2010-09-10 Luiz Capitulino <lcapitulino@redhat.com>
2211
qemu: qemuMonitorJSONEjectMedia(): Fix arguments' type
2212
QMP in QEMU 0.13 has been fixed to enforce type correctness,
2213
this means that boolean types must be true or false, not
2216
qemu: qemuMonitorJSONMigrate(): Fix arguments' type
2217
QMP in QEMU 0.13 has been fixed to enforce type correctness,
2218
this means that boolean types must be true or false, not
2221
2010-09-09 Soren Hansen <soren@linux2go.dk>
2223
Add nwfilter support to UML driver
2224
Extend user-mode-linux driver to support nwfilter.
2226
2010-09-09 Matthias Bolte <matthias.bolte@googlemail.com>
2228
test: Don't overwrite storage volume target path and key
2229
Only generate target path and key when they are not defined
2232
2010-09-09 Daniel Veillard <veillard@redhat.com>
2234
Remove hack to get static binaries in DV environment
2236
2010-09-08 Justin Clift <jclift@redhat.com>
2238
Moved my name up to the primary list, as I have commit rights now.
2239
As recommended by Eric. :)
2241
2010-09-08 Matthias Bolte <matthias.bolte@googlemail.com>
2243
esx: Use SessionIsActive when available
2244
Before this commit SessionIsActive was not used because ESX(i)
2245
doesn't implement it. vCenter supports SessionIsActive, so use
2246
it here, but keep the fall back mechanism for ESX(i) and GSX.
2248
2010-09-07 Matthias Bolte <matthias.bolte@googlemail.com>
2250
esx: Fall back to path as key when QueryVirtualDiskUuid isn't available
2251
QueryVirtualDiskUuid is only available on an ESX(i) server. vCenter
2252
returns an NotImplemented fault and a GSX server is missing the
2253
VirtualDiskManager completely. Therefore only use QueryVirtualDiskUuid
2254
with an ESX(i) server and fall back to path as storage volume key for
2255
vCenter and GSX server.
2257
2010-09-07 Eric Blake <eblake@redhat.com>
2259
mingw: match recent changes in spec file
2260
* libvirt.spec.in (%file): List new installed files.
2261
* configure.ac (with_init_script): Assume default of none when
2264
2010-09-07 Jiri Denemark <jdenemar@redhat.com>
2266
build: Fix permissions of sysconfig files
2268
2010-09-04 Daniel Veillard <veillard@redhat.com>
2270
Update of localization files
2271
- Updated dutch, spanish and russian, regenerated the po/pot files
2273
2010-09-04 Matthias Bolte <matthias.bolte@googlemail.com>
2275
esx: Use the VirtualDisk UUID as storage volume key
2276
VirtualDisks are .vmdk file based. Other files in a datastore
2277
like .iso or .flp files don't have a UUID attached, fall back
2278
to the path as key for them.
2280
2010-09-03 Matthias Bolte <matthias.bolte@googlemail.com>
2282
esx: Add .vmdk storage volume creation
2284
2010-09-03 Jean-Baptiste Rouault <jean-baptiste.rouault@diateam.net>
2286
OpenVZ: add ethernet interface type support
2287
This patch adds support for ethernet interface type to OpenVZ domains
2288
as stated in this previous message: http://www.redhat.com/archives/libvir-
2289
list/2010-July/msg00658.html
2291
2010-09-03 Eric Blake <eblake@redhat.com>
2293
build: avoid uninitialized variable warning
2294
* src/vbox/vbox_tmpl.c (vboxAttachDrives): Capture return value.
2296
2010-09-03 Matthias Bolte <matthias.bolte@googlemail.com>
2298
esx: Rework datastore path parsing and handling
2299
Instead of splitting the path part of a datastore path into
2300
directory and file name, keep this in one piece. An example:
2302
"[datastore] directory/file"
2304
was split into this before:
2306
datastoreName = "datastore"
2307
directoryName = "directory"
2310
Now it's split into this:
2312
datastoreName = "datastore"
2313
directoryName = "directory"
2314
directoryAndFileName = "directory/file"
2316
This simplifies code using esxUtil_ParseDatastorePath, because
2317
directoryAndFileName is used more often than fileName. Also the
2318
old approach expected the datastore path to reference an actual
2319
file, but this isn't always correct, especially when listing
2320
volumes. In that case esxUtil_ParseDatastorePath is used to parse
2321
a path that references a directory. This fails for a vpx://
2322
connection because the vCenter returns directory paths with a
2323
trailing '/'. The new approach is robust against this and the
2324
actual decision if the datastore path should reference a file or
2325
a directory is up to the caller of esxUtil_ParseDatastorePath.
2327
Update the tests accordingly.
2329
2010-09-02 Eric Blake <eblake@redhat.com>
2331
vbox: factor a large function
2332
* src/vbox/vbox_tmpl.c (vboxDomainDefineXML): Split...
2333
(vboxSetBootDeviceOrder, vboxAttachDrives, vboxAttachSound)
2334
(vboxAttachNetwork, vboxAttachSerial, vboxAttachParallel)
2335
(vboxAttachVideo, vboxAttachDisplay, vboxAttachUSB): ...into new
2338
lxc: avoid large stacks with veth creation
2339
* src/lxc/veth.h (vethCreate): Change prototype.
2340
* src/lxc/veth.c (vethCreate): Always malloc veth2, and allocate
2342
(getFreeVethName): Adjust signature, and use virAsprintf.
2343
* src/lxc/lxc_driver.c (lxcSetupInterfaces): Adjust caller.
2345
2010-09-02 Matthias Bolte <matthias.bolte@googlemail.com>
2347
esx: Fix generator for string return values
2348
Distinguish between strings as parameters (const char *)
2349
and strings as return values (char **).
2351
2010-09-02 Eric Blake <eblake@redhat.com>
2353
openvz: use virAsprintf to avoid large stacks
2354
* src/openvz/openvz_conf.c (openvzLocateConfFile): Alter
2356
(openvzGetVPSUUID, openvzSetDefinedUUID)
2357
(openvzWriteVPSConfigParam, openvzReadVPSConfigParam)
2358
(openvzCopyDefaultConfig): Adjust callers.
2360
openvz: formatting cleanups
2361
* src/openvz/openvz_conf.c: Whitespace fixes.
2362
* src/openvz/openvz_driver.c: Likewise.
2364
2010-09-01 Eric Blake <eblake@redhat.com>
2366
network: use virAsprintf when appropriate
2367
* src/conf/network_conf.c (virNetworkAllocateBridge): Avoid
2368
limited buffer from snprintf.
2370
build: add some modules
2371
snprintf is currently implicitly picked up by getaddrinfo, but we
2372
might as well make it explicit so that mingw doesn't break if
2373
getaddrinfo changes to drop the dependency.
2375
func doesn't matter for gcc compilation, but may help other compilers
2376
cope with our use of __func__.
2378
* bootstrap.conf (gnulib_modules): Add snprintf and func.
2380
2010-09-01 Ryan Harper <ryanh@us.ibm.com>
2382
virsh: remove driver check from attach-disk command
2383
Virsh shouldn't check for driver support but rather let the backend handled this.
2384
After removing the check, I can successfully attach file-based images to a qemu
2385
VM with attach-disk.
2387
% virsh attach-disk vm2 /images/test02.img vdc --driver qemu --type disk --subdriver raw
2388
Disk attached successfully
2390
This command generates the following XML:
2392
<disk type='block' device='disk'>
2393
<driver name='qemu' type='raw'/>
2394
<source dev='/images/test02.img'/>
2395
<target dev='vdc' bus='virtio'/>
2396
<alias name='virtio-disk2'/>
2397
<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
2400
2010-08-31 Soren Hansen <soren@linux2go.dk>
2402
Use global directory as UML's monitorDir for privileged connections
2403
For privileged UML connections (uml:///system), we shouldn't use root's
2404
home dir, but rather somewhere in /var/run/libvirt/uml-guest.
2406
https://bugzilla.redhat.com/show_bug.cgi?id=499536
2408
Explicitly pass uml_dir argument to user-mode-linux
2409
uml_dir overrides user-mode-linux's default of ~/.uml. This is needed
2410
for a couple of different reasons:
2412
libvirt expects this to default to virGetUserDirectory(geteuid()) +
2413
'/.uml'. However, user-mode-linux actually uses the HOME environment
2414
variable to determine where to look for the uml sockets, but if running
2415
libvirtd under sudo (which I routinely do during development), $HOME is
2416
pointing at my user's homedir, while my euid is 0, so libvirt looks in
2419
Also (and this was my actual motivation for this patch), if HOME isn't
2420
set at all, user-mode-linux utterly fails. Looking at the code, it seems
2421
it's meant to emit a warning, but alas, it doesn't for some reason.
2422
If running libvirtd from upstart, HOME is not set, so any system using
2423
upstart will need this change.
2425
2010-08-31 Eric Blake <eblake@redhat.com>
2427
maint: track moved file
2428
* daemon/.gitignore: Move libvirt-guests.init...
2429
* tools/.gitignore: ...to its new location.
2431
2010-08-31 Jim Fehlig <jfehlig@novell.com>
2433
Add tests for Xen's blktap2 implementation
2434
xml2sexpr and sexpr2xml tests for blktap2
2436
Add blktap2 support to xend driver
2437
Xen4.0 includes a new blktap2 implementation, which is specified
2438
with 'tap2' prefix. AFAICT it's configuration syntax is identical
2439
to blktap, with exception of 'tap2' vs 'tap' prefix. This patch
2440
takes the simple approach of accepting and generating sexp
2441
containing 'tap2' prefix.
2443
2010-08-30 Matthias Bolte <matthias.bolte@googlemail.com>
2445
esx: Map the .vmx annotation to the domain XML description
2446
Take care of escaping '"' and '|' (the escape character).
2450
Move hextobin as virHexToBin to util.c
2451
virHexToBin will be used in the .vmx handling code.
2453
2010-08-27 Eduardo Otubo <otubo@linux.vnet.ibm.com>
2455
PHYP: Bad comparison when checking for existing domain name
2456
When creating a new domain from XML, the check for an existing
2457
domain name should compare the return of the function to a valid
2458
LPAR ID (!= -1) and not to error (== -1).
2460
2010-08-27 Matthias Bolte <matthias.bolte@googlemail.com>
2462
esx: Fix esxVI_BuildSelectSet's invalid argument check
2463
The check was altered in 8c48743b9737ad4d246ab6043fd299316f9a2091
2464
and got too strict, I've no clue how that snuck in. This check
2465
makes every try to open a connection using the ESX driver fail
2466
with an invalid argument error.
2468
Revert the change to the check and add a comment to prevent future
2469
mistakes with this check.
2471
2010-08-26 Matthias Bolte <matthias.bolte@googlemail.com>
2473
esx: Add read-only storage volume access
2474
This allows to list existing volumes and to retrieve information
2477
2010-08-25 Jiri Denemark <jdenemar@redhat.com>
2479
Move libvirt-guests init script and config to tools
2480
Since libvirt-guests init script and its configuration do not require
2481
libvirtd to be running/installed, it was a bad idea to put them into
2482
daemon directory. libvirt.spec even includes these files in
2483
libvirt-client subpackage, which may result in build failure for
2484
client-only builds when the whole daemon directory is just skipped.
2486
spec: Fix undefined with_libnl
2487
When building libvirt RPM without macvtap, with_libnl would be
2490
2010-08-24 Soren Hansen <soren@linux2go.dk>
2492
Support virDomainAttachDevice and virDomainDetachDevice for disks in UML
2493
UML supports hot plugging and unplugging of various devices. This patch
2494
exposes this functionality for disks.
2496
Rename qemudShrinkDisks to virDomainDiskRemove and move to domain_conf.c
2497
Other drivers will need this same functionality, so move it to up to
2498
conf/domain_conf.c and give it a more general name.
2500
2010-08-24 Serge Hallyn <serge.hallyn@canonical.com>
2502
docs: fix lxc examples
2503
* docs/drvlxc.html.in: Use correct VM name, and mention that
2504
libvirt_lxc might be in an alternate location.
2506
2010-08-24 Daniel P. Berrange <berrange@redhat.com>
2508
Fix handling of sparse NUMA topologies
2509
When finding a sparse NUMA topology, libnuma will return ENOENT
2510
the first time it is invoked. On subsequent invocations it
2511
will return success, but with an all-1's CPU mask. Check for
2512
this, to avoid polluting the capabilities XML with 4096 bogus
2515
* src/nodeinfo.c: Check for all-1s CPU mask
2517
Log return value for virConnectGetCapabilities
2518
Enabling debug doesn't show the capabilities XML for a connection.
2519
Add an extra debug statement for the return value
2521
* src/libvirt.c: Enable debug logging of capabilities XML
2523
Try harder to send RPC error message back to client
2524
When failing to serialize the normal RPC reply, try harder to
2525
send a error message back to the client, instead of immediately
2526
closing the connection.
2528
* daemon/dispatch.c: Improve error messages when RPC reply
2531
Add explicit warning messages when failing to serialize to XDR
2532
When libvirtd fails to serialize a message to XDR the client
2533
connection is terminated immediately. To enable this to be
2534
diagnosed, log the message which caused the problem on the
2537
* daemon/dispatch.c: Log XDR serialization failures
2539
2010-08-24 Soren Hansen <soren@linux2go.dk>
2541
Allow chardev of type 'file' for UML domains.
2542
Like the comment suggested, we just open the file and pass the file
2543
descriptor to uml. The input "stream" is set to "null", since I couldn't
2544
find any useful way to actually use a file for input for a chardev and
2545
this also mimics what e.g. QEmu does internally.
2547
2010-08-24 Matthias Bolte <matthias.bolte@googlemail.com>
2549
esx: Improve object-by-type lookup performance
2550
Instead of using one big traversal spec for lookup use a set of
2551
more fine grained traversal specs that are selected based on the
2552
actual needs of the lookup.
2554
This gives up to 20% speedup for certain operations like domain
2555
listing due to less HTTP(S) traffic.
2557
2010-08-24 Jiri Denemark <jdenemar@redhat.com>
2559
xen tests: Fix PV-VFB tests with RHEL-5 API
2560
RHEL-5 Xen doesn't support the old style vnc configuration. In sexpr, we
2561
can't really check it with rhel5-api turned on. However, for XM
2562
configuration files it's sufficient to use cfg version 1 instead of 2.
2564
xml2sexprtest: Remove graphics from unrelated tests
2565
This caused unnecessary make check failures when libvirt is configured
2568
xen tests: Fix missing "type ioemu" with rhel5-api
2569
The most common cause of errors with rhel5-api turn on was missing
2570
"(type ioemu)" in sexpr or its equivalent in XM configuration file. This
2571
happens because the presence of that part in sexpr (or cfg) depends on
2572
xen version the host is running. Let's avoid it by explicitly specifying
2573
interface model which ensures "type ioemu" will always be emitted.
2577
<model type='e1000'/>
2579
withing the interface element in all affected xml files. And
2583
to all corresponding sexpr files with similar fix to cfg files. Such
2584
configuration works regardless on Xen version.
2586
nodeinfotest: Print libvirt error on failure
2587
If linuxNodeInfoCPUPopulate() fails, the test would just print "FAILED"
2588
which is not very informative. It's better to print the real error.
2590
2010-08-23 Eric Blake <eblake@redhat.com>
2592
xenapi: support xenapi 5.6.0 headers
2593
* src/xenapi/xenapi_driver.c (xenapiDomainGetInfo): Avoid using
2594
XEN_VM_POWER_STATE_UNKNOWN, which disappeared in newer xenapi.
2595
* src/xenapi/xenapi_utils.c (mapPowerState): Likewise.
2597
2010-08-23 Daniel P. Berrange <berrange@redhat.com>
2599
Add support for -enable-kqemu flag
2600
Previously QEMU enabled KQEMU by default and had -no-kqemu.
2601
0.11.x switched to requiring -enable-kqemu. 0.12.x dropped
2602
kqemu entirely. This patch adds support for -enable-kqemu
2603
so 0.11.x works. It replaces a huge set of if() with a
2604
switch() to make the code a bit more readable.
2606
* src/qemu/qemu_conf.c, src/qemu/qemu_conf.h: Support
2609
2010-08-21 Matthias Bolte <matthias.bolte@googlemail.com>
2611
esx: Use MD5 sum of mount path as storage pool UUID
2612
With the previous storage pool UUID source not all storage pools
2613
had a proper UUID, especially GSX storage pools. The mount path
2614
is unique per host and cannot change during the lifetime of the
2615
datastore. Therefore, it's MD5 sum can be used as UUID.
2617
Use gnulib's crypto/md5 module to generate the MD5 sum.
2619
esx: Make sure dumpxml outputs proper ID for active domains
2621
2010-08-20 Matthias Bolte <matthias.bolte@googlemail.com>
2623
xenapi: Fix compile error in previous commit
2625
2010-08-20 Jim Fehlig <jfehlig@novell.com>
2627
Add actions to virDomainLifecycle enum
2628
Xen supports on_crash actions coredump-{destroy,restart}. libvirt
2629
cannot parse config returned by xend that contains either of these
2632
xen52 # xm li -l test | grep on_crash
2633
(on_crash coredump-restart)
2634
xen52 # virsh dumpxml test
2635
error: internal error unknown lifecycle type coredump-restart
2637
This patch adds a new virDomainLifecycleCrash enum and appends
2638
the new options to existing destroy, restart, preserve, and
2639
rename-restart options.
2641
2010-08-20 Jiri Denemark <jdenemar@redhat.com>
2643
qemu: Remove code duplication
2644
We already filled the PCI address structure when we checked whether it's
2645
free or not, so let's just use the structure here instead of filling it
2648
qemu: Check for errors when converting PCI address to string
2650
qemu: Fix JSON migrate_set_downtime command
2652
2010-08-20 Eric Blake <eblake@redhat.com>
2654
vbox: factor a large function
2655
* src/vbox/vbox_tmpl.c (vboxDomainCreateWithFlags): Split...
2656
(vboxStartMachine): ...into new helper.
2658
vbox: add location used in rpmfusion release
2659
* configure.ac (vbox_xpcomc_dir): Add another potential dir.
2661
xenapi: avoid sprintf
2662
* src/xenapi/xenapi_utils.h (createVifNetwork): Delete prototype.
2663
* src/xenapi/xenapi_utils.c (createVifNetwork): Change signature,
2664
and use virAsprintf. Detect allocation failure.
2665
(createVMRecordFromXml): Adjust caller.
2667
storage: avoid s[n]printf
2668
* src/storage/storage_backend.c (virStorageBackendCreateQemuImg)
2669
(virStorageBackendCreateQcowCreate): Use virAsprintf instead.
2670
* src/storage/storage_backend_disk.c
2671
(virStorageBackendDiskCreateVol, virStorageBackendDiskPartFormat):
2674
maint: whitespace cleanups
2675
* src/storage/storage_backend_disk.c
2676
(virStorageBackendDiskPartFormat): Fix spacing.
2678
build: delete dead comments
2679
* src/qemu/qemu_driver.c (qemudGetProcessInfo): Clean up.
2680
* src/uml/uml_driver.c (umlGetProcessInfo): Likewise.
2681
* src/xen/sexpr.c (_string2sexpr): Likewise.
2683
2010-08-19 Patrick Dignan <pat_dignan@dell.com>
2685
storage: add support for Vendor and Model in XML
2686
I wrote a patch to add support for listing the Vendor and Model of a
2687
storage pool in the storage pool XML. This would allow vendor
2688
extensions of specific devices. The patch includes a test for the new
2693
2010-08-19 Eric Blake <eblake@redhat.com>
2695
uml: fix logic bug in checking reply length
2696
* src/uml/uml_driver.c (umlMonitorCommand): Validate that enough
2697
bytes were read to dereference both res.length, and that many
2698
bytes from res.data.
2699
Reported by Soren Hansen.
2701
nwfilter: use consistent OOM reporting
2702
* src/nwfilter/nwfilter_driver.c (nwfilterLog): Delete.
2703
(nwfilterDriverStartup): Use virReportOOMError instead.
2705
2010-08-18 Eric Blake <eblake@redhat.com>
2707
build: fix compiler warning
2708
node_device/node_device_driver.c: In function 'nodeDeviceVportCreateDelete':
2709
node_device/node_device_driver.c:423: error: implicit declaration of function 'stat' [-Wimplicit-function-declaration]
2711
* src/node_device/node_device_driver.c (includes): Add <sys/stat.h>.
2713
2010-08-18 Daniel Veillard <veillard@redhat.com>
2715
xen: Fix scheduler setting problems
2716
Doing `virsh schedinfo rhel5u3 --cap 65535' the hypervisor does the
2717
call, but does not change the value nor raise an error. Best is just to
2718
consider it's not in the allowed values. The problem is that the error
2719
won't be output since the xend driver will then be called and raise an
2722
error: this function is not supported by the hypervisor: unsupported
2723
in xendConfigVersion < 4
2725
which will override the useful information from
2726
xenUnifiedDomainSetSchedulerParameters(). So best is to also invert the
2727
order in which the xen sub-drivers are called.
2729
* src/xen/xen_hypervisor.c: mark 65535 cap value as out of bound
2730
* src/xen/xen_hypervisor.c: reverse the order of the calls to the xen
2731
sub drivers to get the error message if needed
2733
2010-08-18 Jiri Denemark <jdenemar@redhat.com>
2735
nodedev: Free the right pointers when getting WWNs fails
2737
2010-08-18 Dave Allan <dallan@redhat.com>
2739
nodedev: Fix sysfs paths for vport operations
2740
Some kernels, such as the one used in RHEL-5, have vport_create and
2741
vport_delete operation files in /sys/class/scsi_host/hostN directory
2742
instead of /sys/class/fc_host/hostN. Let's check both paths for
2743
compatibility reasons.
2745
This also removes unnecessary '/' characters from sysfs paths containing
2746
LINUX_SYSFS_FC_HOST_PREFIX.
2748
2010-08-18 Daniel Berrange <berrange@redhat.com>
2750
xen: Fix device count on detach
2752
remote: Fix incorrect use of private data field
2753
NodeDeviceCreateXML and NodeDeviceDestroy methods added for NPIV were
2754
using the wrong privateData field for the remote driver. This doesn't
2755
impact KVM, since the remote driver handles everything, thus
2756
privateData == devMonPrivateData. It does impact Xen though, because
2757
the remote driver only handles a subset of methods and thus
2758
privateData != devMonPrivateData.
2760
2010-08-17 Matthias Bolte <matthias.bolte@googlemail.com>
2762
esx: Fix memory leak when looking up an non-existing domain by name
2763
In case an optional object cannot be found the lookup function is
2764
left early and the cleanup code is not executed.
2766
This pattern occurs in some other functions too.
2768
2010-08-17 Chris Lalancette <clalance@redhat.com>
2770
Fix up qemu domain save/managed save locking.
2771
The current version of the qemu managed save implementation
2772
is subject to a race where the domain shuts down between
2773
the time that we start the command and the time that we
2774
actually try to do the save. Close this race by making
2775
qemuDomainSaveFlags() expect both the driver and the passed-in
2776
vm object to be locked before executing.
2778
2010-08-17 Eric Blake <eblake@redhat.com>
2780
docs: mention domain <clock> improvements
2781
Add documentation for features added a while ago.
2783
* docs/formatdomain.html.in (Time keeping): Update documentation
2784
of <clock> element to match 0.8.0 addition.
2786
2010-08-17 Stefan Berger <stefanb@us.ibm.com>
2789
Fixing a problem in the build on cygwin due to missing #define's.
2791
2010-08-16 Jiri Denemark <jdenemar@redhat.com>
2793
qemu: Fix copy&paste error in warning message
2794
This also makes the message consistent with the message used in error
2795
path of qemudDomainAttachHostPciDevice.
2797
qemu: Release PCI slot when detaching disk and net devices
2799
qemu: Re-reserve all PCI addresses on libvirtd restart
2800
When reconnecting to existing VMs, we re-reserved only those PCI
2801
addresses which were explicitly mentioned in domain XML. Since some
2802
addresses are always reserved (e.g., 0:0:0 and 0:0:1), we need to handle
2805
Also all this should only be done if device flag is supported by qemu.
2807
2010-08-16 Jamie Strandboge <jamie@canonical.com>
2809
build: fix AppArmor compilation
2810
* src/security/virt-aa-helper.c: Add missing include.
2812
2010-08-16 Stefan Berger <stefanb@us.ibm.com>
2814
nwfilter: extend nwfilter reload support
2815
In this patch I am extending and fixing the nwfilter module's reload support to stop all ongoing threads (for learning IP addresses of interfaces) and rebuild the filtering rules of all interfaces of all VMs when libvirt is started. Now libvirtd rebuilds the filters upon the SIGHUP signal and libvirtd restart.
2817
About the patch: The nwfilter functions require a virConnectPtr. Therefore I am opening a connection in qemudStartup, which later on needs to be closed outside where the driver lock is held since otherwise it ends up in a deadlock due to virConnectClose() trying to lock the driver as well.
2819
I have tested this now for a while with several machines running and needing the IP address learner thread(s). The rebuilding of the firewall rules seems to work fine following libvirtd restart or a SIGHUP. Also the termination of libvirtd worked fine.
2821
2010-08-14 Eric Blake <eblake@redhat.com>
2823
build: allow mingw VPATH build
2824
* .gnulib: Update to latest.
2825
Reported by Matthias Bolte.
2827
2010-08-14 Matthias Bolte <matthias.bolte@googlemail.com>
2829
esx: Explicitly disable unused floppy devices
2830
floppy0.present defaults to true. Therefore, it needs to be
2831
explicitly set to false when the XML config doesn't specify the
2832
corresponding floppy device.
2834
Also update tests accordingly.
2836
Generate libvirt_qemu.def from libvirt_qemu.syms for MinGW builds
2838
2010-08-14 Eduardo Otubo <otubo@linux.vnet.ibm.com>
2840
PHYP: Add rudimentary network driver
2841
I changed virStorage[Open|Close] to virVIOSDriver[Open|Close] so
2842
the network driver can use it - since the network driver deals
2843
with Open/Close in the same way.
2845
2010-08-14 Soren Hansen <soren@linux2go.dk>
2847
Make umlConnectTapDevice ask brAddTap for a persistent tap device.
2848
This patch does two things:
2850
* It makes umlConnectTapDevice ask brAddTap for a persistent tap by
2851
passing it a NULL tapfd argument.
2852
* Stops umlConnectTapDevice from immediately dismantling the bridge
2855
Close fd's of persistent tap devices
2856
When passing a NULL tapfd argument to brAddTap, we need to close the fd
2857
of the tap device. If we don't, libvirt will keep the fd open
2858
indefinitely and renders the the guest unable to configure its side of
2861
Make sure all command line arguments get passed to UML
2862
If umlBuildCommandLineChr fails (e.g. due to an unsupported chardev
2863
type), it returns NULL. umlBuildCommandLine does not check for this and
2864
sets this as an argument on the comand line, effectively ending the
2865
argument list. This patch checks for this case and sets the chardev to
2868
2010-08-13 Stefan Berger <stefanb@us.ibm.com>
2870
nwfilter: Discard class D,E IP addresses when sniffing pkts
2871
When sniffing the network traffic, discard class D and E IP addresses when sniffing traffic. This was a reason why filters were not correctly rebuilt on VMs on the local 192.* network when libvirt was restarted and those VMs did not use a DHCP request to get its IP address.
2873
nwfilter: serialize execution of scripts with ebtables cmds
2874
While testing the SIGHUP handling and reloading of the nwfilter driver, I found that when the filters are rebuilt and mutlipe threads handled the individual interfaces, concurrently running multiple external bash scripts causes strange failures even though the executed ebtables commands are working on different tables for different interfaces. I cannot say for sure where the concurrency problems are caused, but introducing this lock definitely helps.
2876
2010-08-13 Matthias Bolte <matthias.bolte@googlemail.com>
2878
Only require XDR when building libvirtd or the remote driver
2880
2010-08-13 Chris Lalancette <clalance@redhat.com>
2882
Move the tunnelled migration unix socket to /var/lib/libvirt/qemu
2883
Since the qemu process is running as qemu:qemu, it can't actually
2884
look at the unix socket in /var/run/libvirt/qemu which is owned by
2885
root and has permission 700. Move the unix socket to
2886
/var/lib/libvirt/qemu, which is already owned by qemu:qemu.
2888
Thanks to Justin Clift for test this out for me.
2890
Fix tunnelled migration with qemu running as qemu:qemu.
2891
The problem is that on the source of the migration, libvirtd
2892
is responsible for creating the unix socket over which the data
2893
will flow. Since libvirtd is running as root, this file will
2894
be created as root. When the qemu process running as qemu:qemu
2895
goes to access the unix file to write data to it, it will get
2896
permission denied and fail. Make sure to change the owner
2897
of the unix file to qemu:qemu.
2899
Thanks to Justin Clift for testing this patch out for me.
2901
2010-08-12 Stefan Berger <stefanb@us.ibm.com>
2903
Fix valgrind complaints when using kill -SIGHUP on libvirtd
2904
This patch fixes a couple of complaints from valgrind when tickling libvirtd with SIGHUP.
2906
The first two files contain fixes for memory leaks. The 3rd one initializes an uninitialized variable. The 4th one is another memory leak.
2908
2010-08-12 Daniel Veillard <veillard@redhat.com>
2910
qemu: avoid calling the balloon info command if disabled
2911
Basically a followup of the previous patch about balloon desactivation
2912
if desactivated, to not ask for balloon information to qemu as we will
2913
just get an error back.
2914
This can make a huge difference in the time needed for domain
2915
information or list when a machine is loaded, and balloon has been
2916
desactivated in the guests.
2918
* src/qemu/qemu_driver.c: do not get the balloon info if the balloon
2921
2010-08-12 Jiri Denemark <jdenemar@redhat.com>
2923
bridge: Add --dhcp-no-override option to dnsmasq
2924
--dhcp-no-override description from dnsmasq man page:
2926
Disable re-use of the DHCP servername and filename fields as
2927
extra option space. If it can, dnsmasq moves the boot server and
2928
filename information (from dhcp-boot) out of their dedicated
2929
fields into DHCP options. This make extra space available in the
2930
DHCP packet for options but can, rarely, confuse old or broken
2931
clients. This flag forces "simple and safe" behaviour to avoid
2932
problems in such a case.
2934
It seems some virtual network card ROMs are this old/buggy so let's add
2935
--dhcp-no-override as a workaround for them. We don't use extra DHCP
2936
options so this should be safe. The option was added in dnsmasq-2.41,
2937
which becomes the minimum required version.
2939
2010-08-12 Matthias Bolte <matthias.bolte@googlemail.com>
2941
esx: Improve VMX file name parsing and formatting
2942
For parsing try to match by datastore mount path first, if that
2943
fails fallback to /vmfs/volumes/<datastore>/<path> parsing. This
2944
also fixes problems with GSX on Windows. Because GSX on Windows
2945
doesn't use /vmfs/volumes/ style file names.
2947
For formatting use the datastore mount path too, instead of using
2948
/vmfs/volumes/<datastore>/<path> as fixed format.
2950
2010-08-11 Jiri Denemark <jdenemar@redhat.com>
2952
bridge: Fix potential segfault when preparing dnsmasq arguments
2953
We add --dhcp-lease-max=xxx argument when network->def->nranges > 0 but
2954
we only allocate space for in the opposite case :-) I guess we are lucky
2955
enough to miscount somewhere else so that we actually allocate more
2956
space than we need since no-one has hit this bug so far.
2958
2010-08-11 Matthias Bolte <matthias.bolte@googlemail.com>
2960
esx: Split VMX code into a general and an ESX specific part
2961
Introduce esxVMX_Context containing functions pointers to
2962
glue both parts together in a generic way.
2964
Move the ESX specific part to esx_driver.c.
2966
This is a step towards making the VMX code reusable in a
2967
potential VMware Workstation and VMware Player driver.
2969
2010-08-11 Daniel Veillard <veillard@redhat.com>
2971
allow memballoon type of none to desactivate it
2972
The balloon device is automatically added to qemu guests if supported,
2973
but it may be useful to desactivate it. The simplest to not change the
2974
existing behaviour is to allow
2975
<memballoon type="none"/>
2976
as an extra option to desactivate it (it is automatically added if the
2977
memballoon construct is missing for the domain).
2978
The following simple patch just adds the extra option and does not
2979
change the default behaviour but avoid creating a balloon device if
2980
type="none" is used.
2982
* docs/schemas/domain.rng: add the extra type attribute value
2983
* src/conf/domain_conf.c src/conf/domain_conf.h: add the extra enum
2985
* src/qemu/qemu_conf.c: if enum is NONE, don't activate the device,
2986
i.e. don't pass the args to qemu/kvm
2988
2010-08-11 Jiri Denemark <jdenemar@redhat.com>
2990
Avoid unnecessary bootstrap runs in VPATH builds
2992
2010-08-11 Doug Goldstein <cardoe@gentoo.org>
2994
Add a detailed message when tap device add fails
2995
Added a more detailed error message when adding a tap devices fails and
2996
the kernel is missing tun support.
2998
Fix return value usage
2999
Fix the error checking to use the return value from brAddTap() instead
3000
of checking the current errno value which might have been changed by
3001
clean up calls inside of brAddTap().
3003
2010-08-11 Eric Blake <eblake@redhat.com>
3005
nodeinfo: skip offline CPUs
3006
https://bugzilla.redhat.com/622515 - When hot-unplugging CPUs,
3007
libvirt failed to start a guest that had been pinned to CPUs that
3010
Tested on a dual-core laptop, where I also discovered that, per
3011
http://www.cyberciti.biz/files/linux-kernel/Documentation/cpu-hotplug.txt,
3012
/sys/devices/system/cpu/cpu0/online does not exist on systems where it
3013
cannot be hot-unplugged.
3015
* src/nodeinfo.c (linuxNodeInfoCPUPopulate): Ignore CPUs that are
3016
currently offline. Detect readdir failure.
3017
(parse_socket): Move guts...
3018
(get_cpu_value): ...to new function, shared with...
3019
(cpu_online): New function.
3021
2010-08-10 Jiri Denemark <jdenemar@redhat.com>
3023
qemu: Hack around asynchronous device_del
3024
device_del command is not synchronous for PCI devices, it merely asks
3025
the guest to release the device and returns. If the host wants to use
3026
that device before the guest actually releases it, we are in big
3027
trouble. To avoid this, we already added a loop which waits up to 10
3028
seconds until the device is actually released before we do anything else
3029
with that device. But we only added this loop for managed PCI devices
3030
before we try reattach them back to the host.
3032
However, we need to wait even for non-managed devices. We don't reattach
3033
them automatically, but we still want to prevent the host from using it.
3034
This was revealed thanks to sVirt: when we relabel sysfs files
3035
corresponding to the PCI device before the guest finished releasing the
3036
device, qemu is no longer allowed to access those files and if it wants
3037
(as a result of guest's request) to write anything to them, it just
3038
exits, which kills the guest.
3040
This is not a proper fix and needs some further work both on libvirt and
3041
qemu side in the future.
3043
2010-08-10 Eric Blake <eblake@redhat.com>
3045
maint: update an email address preference
3046
* AUTHORS (Soren Hansen): Update address.
3047
* .mailmap: Alias other addresses to new preference.
3049
2010-08-10 Diego Elio Pettenò <flameeyes@gmail.com>
3051
build-sys: only build the test programs during the check phase.
3052
This avoids building the tests when testing libvirt is not the aim.
3054
2010-08-10 Soren Hansen <soren@linux2go.dk>
3056
Add "ubd" to the list of disk prefixes
3057
virDiskNameToIndex has a list of disk name prefixes that it uses in the
3058
process of finding the disk's index. This list is missing "ubd" which
3059
is the disk prefix used for UML domains.
3061
2010-08-10 Daniel Veillard <veillard@redhat.com>
3063
Extend virSocketParseAddr() to allow a NULL result pointer
3064
That way it can be used to verify a numeric address without storing
3066
* src/util/network.c: change virSocketParseAddr to allow a null @addr
3069
2010-08-10 Philipp Hahn <hahn@univention.de>
3071
bootloader_args is named bootargs in xen-xm
3072
According to <xen-3.4.3/tools/python/xen/xm/create.py:158>
3073
gopts.var('bootargs', val='NAME',
3074
fn=set_value, default=None,
3075
use="Arguments to pass to boot loader")
3076
the "bootloader_args" parameter needs to be translated into "bootargs"
3077
when using "virsh domxml-to-native xen-xm".
3078
The reverse direction (domxml-from-native) is already okay.
3080
This patch fixes domxml-to-native and adds two test files to catch this
3083
2010-08-06 Eduardo Otubo <otubo@linux.vnet.ibm.com>
3085
phyp: refactor phypListDomainsGeneric to eliminate buffer overflow
3086
src/phyp/phyp_driver.c:phypListDomainsGeneric was crashing due to a buffer
3087
overflow if any line returned from virRun wasn't <=10 characters.
3089
Since virStrToLong_i recognizes any non-numeric as a terminator (not
3090
just NULL), there actually is no need to copy the number into a
3091
separate string anyway, so this patch eliminates that copy, the fixed
3092
length buffer, and therefore the potential to overflow.
3094
This change also provided the oppurtunity to eliminate the character
3095
counting loop, instead using the return from virStrToLong_i to point
3096
past the end of the number, then simply skip the \n to get to the
3099
2010-08-06 Justin Clift <jclift@redhat.com>
3101
docs: fix an incorrect keyword in updated hooks page
3103
2010-08-06 Diego Elio Pettenò <flameeyes@gmail.com>
3105
build-sys: fix build when daemon is disabled by not installing libvirtd.8
3106
Since the rule to build libvirtd.8 is within the WITH_LIBVIRTD conditional,
3107
so declare the man page in there as well. Without this change, build
3108
without daemon will fail.
3110
2010-08-06 Justin Clift <jclift@redhat.com>
3112
docs: significant expansion of custom hook script information
3114
2010-08-06 Doug Goldstein <cardoe@gentoo.org>
3116
Fix return value usage
3117
Fix the error checking to use the return value from brAddTap() instead
3118
of checking the current errno value which might have been changed by
3119
clean up calls inside of brAddTap().
3121
qemu: improve error if tun device is missing
3122
Added a more detailed error message when adding a tap devices fails and
3123
the kernel is missing tun support.
3125
2010-08-04 Eric Blake <eblake@redhat.com>
3127
build: rerun bootstrap if po/Makevars got nuked
3128
There has been a frequent complaint of:
3130
make[2]: Entering directory `/home/remote/eblake/libvirt/po'
3131
make[2]: *** No rule to make target `/config.status', needed by `Makefile'. Stop.
3133
It happens after nuking and regenerating the po directory,
3134
which is a common action after running anything like
3135
'make dist' or 'make rpm' that dirties all the .po files.
3137
Teach autogen.sh that it must regenerate po/Makevars to avoid
3138
the missing variable declaration, and teach cfg.mk to recognize
3139
that a nuked po directory is cause to rerun autogen.sh.
3141
* cfg.mk (_update_required): Check for po/Makevars.
3142
* autogen.sh (bootstrap): Run bootstrap if it got lost.
3143
Diagnosed by Justin Clift.
3145
2010-08-04 Daniel Veillard <veillard@redhat.com>
3147
Do not use boot=on on IDE device
3148
the followup on the boot=on problem, basically it's not needed to
3149
specify it when booting out of IDE devices when using KVM
3150
* src/qemu/qemu_conf.c: do not use boot=on for IDE devices
3151
* tests/qemuxml2argvdata/qemuxml2argv*.args: this changes the output
3154
Release of libvirt-0.8.3
3155
* configure.ac docs/news.html.in libvirt.spec.in: updates
3156
* po/*.po*: update and regenerated
1
3158
2010-08-04 Jiri Denemark <jdenemar@redhat.com>
3
3160
qemu: Fix PCI address allocation