aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Correct checking of virStrcpyStatic() return valuev0.10.2-gentoo-2v0.10.2-gentooKyle Mestery2012-10-211-1/+1
| | | | | | | | Correct the check for the return value of virStrcpyStatic() when copying port-profile names. Fixes Open vSwitch ports which utilize port-profiles from network definitions. Signed-off-by: Kyle Mestery <kmestery@cisco.com>
* qemu: Pin the emulator when only cpuset is specifiedMartin Kletzander2012-10-174-20/+28
| | | | | | | | According to our recent changes (clarifications), we should be pinning qemu's emulator processes using the <vcpu> 'cpuset' attribute in case there is no <emulatorpin> specified. This however doesn't work entirely as expected and this patch should resolve all the remaining issues.
* qemu: Clear async job when p2p migration fails earlyJiri Denemark2012-10-171-2/+2
| | | | | | | | | | When p2p migration fails early because qemuMigrationIsAllowed or qemuMigrationIsSafe say migration should be cancelled, we fail to clear the migration-out async job. As a result of that, further APIs called for the same domain may fail with Timed out during operation: cannot acquire state change lock. Reported by Guido Winkelmann.
* storage: lvm: lvcreate fails with allocation=0, don't do thatCole Robinson2012-10-161-1/+2
| | | | | | | | | | | | | | | On F17 at least, this command fails: $ sudo /usr/sbin/lvcreate --name sparsetest -L 0K --virtualsize 16384K vgvirt Unable to create new logical volume with no extents Which is unfortunate since allocation=0 is what virt-manager tries to use by default. Rather than telling the user 'don't do that', let's just give them the smallest allocation possible if alloc=0 is requested. https://bugzilla.redhat.com/show_bug.cgi?id=866481
* storage: lvm: Don't overwrite lvcreate errorsCole Robinson2012-10-161-0/+3
| | | | | | | | | | | | Before: $ sudo virsh vol-create-as --pool vgvirt sparsetest --capacity 16M --allocation 0 error: Failed to create vol sparsetest error: internal error Child process (/usr/sbin/lvchange -aln vgvirt/sparsetest) unexpected exit status 5: One or more specified logical volume(s) not found. After: $ sudo virsh vol-create-as --pool vgvirt sparsetest --capacity 16M --allocation 0 error: Failed to create vol sparsetest error: internal error Child process (/usr/sbin/lvcreate --name sparsetest -L 0K --virtualsize 16384K vgvirt) unexpected exit status 5: Unable to create new logical volume with no extents
* Fix potential deadlock when agent is closedDaniel P. Berrange2012-10-051-9/+3
| | | | | | | | | | | | | If the qemuAgentClose method is called from a place which holds the domain lock, it is theoretically possible to get a deadlock in the agent destroy callback. This has not been observed, but the equivalent code in the QEMU monitor destroy callback has seen a deadlock. Remove the redundant locking while unrefing the object and the bogus assignment Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Fix (rare) deadlock in QEMU monitor callbacksDaniel P. Berrange2012-10-051-10/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some users report (very rarely) seeing a deadlock in the QEMU monitor callbacks Thread 10 (Thread 0x7fcd11e20700 (LWP 26753)): #0 0x00000030d0e0de4d in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x00000030d0e09ca6 in _L_lock_840 () from /lib64/libpthread.so.0 #2 0x00000030d0e09ba8 in pthread_mutex_lock () from /lib64/libpthread.so.0 #3 0x00007fcd162f416d in virMutexLock (m=<optimized out>) at util/threads-pthread.c:85 #4 0x00007fcd1632c651 in virDomainObjLock (obj=<optimized out>) at conf/domain_conf.c:14256 #5 0x00007fcd0daf05cc in qemuProcessHandleMonitorDestroy (mon=0x7fcccc0029e0, vm=0x7fcccc00a850) at qemu/qemu_process.c:1026 #6 0x00007fcd0db01710 in qemuMonitorDispose (obj=0x7fcccc0029e0) at qemu/qemu_monitor.c:249 #7 0x00007fcd162fd4e3 in virObjectUnref (anyobj=<optimized out>) at util/virobject.c:139 #8 0x00007fcd0db027a9 in qemuMonitorClose (mon=<optimized out>) at qemu/qemu_monitor.c:860 #9 0x00007fcd0daf61ad in qemuProcessStop (driver=driver@entry=0x7fcd04079d50, vm=vm@entry=0x7fcccc00a850, reason=reason@entry=VIR_DOMAIN_SHUTOFF_DESTROYED, flags=flags@entry=0) at qemu/qemu_process.c:4057 #10 0x00007fcd0db323cf in qemuDomainDestroyFlags (dom=<optimized out>, flags=<optimized out>) at qemu/qemu_driver.c:1977 #11 0x00007fcd1637ff51 in virDomainDestroyFlags ( domain=domain@entry=0x7fccf00c1830, flags=1) at libvirt.c:2256 At frame #10 we are holding the domain lock, we call into qemuProcessStop() to cleanup QEMU, which triggers the monitor to close, which invokes qemuProcessHandleMonitorDestroy() which tries to obtain the domain lock again. This is a non-recursive lock, hence hang. Since qemuMonitorPtr is a virObject, the unref call in qemuProcessHandleMonitorDestroy no longer needs mutex protection. The assignment of priv->mon = NULL, can be instead done by the caller of qemuMonitorClose(), thus removing all need for locking. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* network: fix dnsmasq/radvd binding to IPv6 on recent kernelsBenjamin Cama2012-10-055-16/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I hit this problem recently when trying to create a bridge with an IPv6 address on a 3.2 kernel: dnsmasq (and, further, radvd) would not bind to the given address, waiting 20s and then giving up with -EADDRNOTAVAIL (resp. exiting immediately with "error parsing or activating the config file", without libvirt noticing it, BTW). This can be reproduced with (I think) any kernel >= 2.6.39 and the following XML (to be used with "virsh net-create"): <network> <name>test-bridge</name> <bridge name='testbr0' /> <ip family='ipv6' address='fd00::1' prefix='64'> </ip> </network> (it happens even when you have an IPv4, too) The problem is that since commit [1] (which, ironically, was made to “help IPv6 autoconfiguration”) the linux bridge code makes bridges behave like “real” devices regarding carrier detection. This makes the bridges created by libvirt, which are started without any up devices, stay with the NO-CARRIER flag set, and thus prevents DAD (Duplicate address detection) from happening, thus letting the IPv6 address flagged as “tentative”. Such addresses cannot be bound to (see RFC 2462), so dnsmasq fails binding to it (for radvd, it detects that "interface XXX is not RUNNING", thus that "interface XXX does not exist, ignoring the interface" (sic)). It seems that this behavior was enhanced somehow with commit [2] by avoiding setting NO-CARRIER on empty bridges, but I couldn't reproduce this behavior on my kernel. Anyway, with the “dummy tap to set MAC address” trick, this wouldn't work. To fix this, the idea is to get the bridge's attached device to be up so that DAD can happen (deactivating DAD altogether is not a good idea, I think). Currently, libvirt creates a dummy TAP device to set the MAC address of the bridge, keeping it down. But even if we set this device up, it is not RUNNING as soon as the tap file descriptor attached to it is closed, thus still preventing DAD. So, we must modify the API a bit, so that we can get the fd, keep the tap device persistent, run the daemons, and close it after DAD has taken place. After that, the bridge will be flagged NO-CARRIER again, but the daemons will be running, even if not happy about the device's state (but we don't really care about the bridge's daemons doing anything when no up interface is connected to it). Other solutions that I envisioned were: * Keeping the *-nic interface up: this would waste an fd for each bridge during all its life. May be acceptable, I don't really know. * Stop using the dummy tap trick, and set the MAC address directly on the bridge: it is possible since quite some time it seems, even if then there is the problem of the bridge not being RUNNING when empty, contrary to what [2] says, so this will need fixing (and this fix only happened in 3.1, so it wouldn't work for 2.6.39) * Using the --interface option of dnsmasq, but I saw somewhere that it's not used by libvirt for backward compatibility. I am not sure this would solve this problem, though, as I don't know how dnsmasq binds itself to it with this option. This is why this patch does what's described earlier. This patch also makes radvd start even if the interface is “missing” (i.e. it is not RUNNING), as it daemonizes before binding to it, and thus sometimes does it after the interface has been brought down by us (by closing the tap fd), and then originally stops. This also makes it stop yelling about it in the logs when the interface is down at a later time. [1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=1faa4356a3bd89ea11fb92752d897cff3a20ec0e [2] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=b64b73d7d0c480f75684519c6134e79d50c1b341
* Fix compilation of legacy xen driver with Xen 4.2Jim Fehlig2012-10-053-2/+12
| | | | | | | | | | | | | In Xen 4.2, xs.h is deprecated in favor of xenstore.h. xs.h now contains #warning xs.h is deprecated use xenstore.h instead #include <xenstore.h> which fails compilation when warnings are treated as errors. Introduce a configure-time check for xenstore.h and if found, use it instead of xs.h.
* build: default selinuxfs mount point to /sys/fs/selinuxDaniel J Walsh2012-10-051-3/+2
| | | | | | | | | Currently if you build on a machine that does not support SELinux we end up with the default mount point being /selinux, since this is moved to /sys/fs/selinux, we should start defaulting there. I believe this is causing a bug in libvirt-lxc when /selinux does not exists, even though /sys/fs/selinux exists.
* Release of libvirt-0.10.2v0.10.2Daniel Veillard2012-09-2478-357238/+403803
| | | | | * configure.ac docs/news.html.in libvirt.spec.in: update for the release * po/*.po*: update from transifex and regenerate
* Fix another rpmbuild failureDaniel Veillard2012-09-241-1/+2
| | | | | without systemd we should not try to package the non-installed %{_sysconfdir}/rc.d/init.d/libvirtd
* Fix an rpmbuild failureDaniel Veillard2012-09-241-0/+2
| | | | $RPM_BUILD_ROOT was embedded in /etc/rc.d/init.d/libvirt-guests
* Don't install legacy initscripts at same time as systemd onesDaniel P. Berrange2012-09-241-3/+1
| | | | | | | | The Fedora policies don't want us installing the legacy initscripts in parallel with the systemd ones, so switch to only install the systemd unit Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* network: log error for unknown virNetworkUpdate command codesLaine Stump2012-09-211-0/+15
| | | | | | | | | | | | | | | Every level of the code for virNetworkUpdate was assuming that some other level was checking for validity of the "command" arg, but none actually were. The result was that an invalid command code would do nothing, but also report success. Since the command code isn't used until the very lowest level backend functions, that's where I put the check. I made a separate one-line function to log the error. The compiler would have combined the identical strings used by multiple calls if I'd just called virReportError directly in each location, but sending them all to the same string in the source guards against inadvertant divergence (which would lead to extra work for translators.)
* network: make virNetworkObjUpdate error detection/recovery betterLaine Stump2012-09-211-13/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) virNetworkObjUpdate should be an all or none operation, but in the case that we want to update both the live state and persistent config versions of the network, it was committing the update to the live state before starting to update the persistent config. If update of the persistent config failed, we would leave with things in an inconsistent state - the live state would be updated (even though an error was returned), but persistent config unchanged. This patch changed virNetworkObjUpdate to use a separate pointer for each copy of the virNetworkDef, and not commit either of them in the virNetworkObj until both live and config parts of the update have successfully completed. 2) The parsers for various pieces of the virNetworkDef have all sorts of subtle limitations on them that may not be known by the Update[section] function, making it possible for one of these functions to make a modification directly to the object that may not pass the scrutiny of a subsequent parse. But normally another parse wouldn't be done on the data until the *next* time the object was updated (which could leave the network definition in an unusable state). Rather than fighting the losing battle of trying to duplicate all the checks from the parsers into the update functions as well, the more foolproof solution to this is to simply do an extra virNetworkDefCopy() operation on the updated networkdef - virNetworkDefCopy() does a virNetworkFormat() followed by a virNetworkParseString(), so it will do all the checks we need. If this fails, then we don't commit the changed def.
* network: don't "refresh" iptables rules on rule-less networksLaine Stump2012-09-211-3/+6
| | | | | | | | | | | | | | | The bridge driver implementation of virNetworkUpdate() removes and re-adds iptables rules any time a network has an <ip>, <forward>, or <forward>/<interface> element updated. There are some types of networks that have those elements and yet have no iptables rules associated with them, and unfortunately the functions that remove/add iptables rules don't check the type of network before attempting to remove/add the rules, sometimes leading to an erroneous failure of the entire update operation. Under normal circumstances I would refactor the lower level functions to be more robust, but to avoid code churn as much as possible, I've just added extra checks directly to networkUpdate().
* Drop unused return value of virLogOutputFuncMiloslav Trmač2012-09-213-41/+34
| | | | | | | | | | | | | Nothing uses the return value, and creating it requries otherwise unnecessary strlen () calls. This cleanup is conceptually independent from the rest of the series (although the later patches won't apply without it). This just seems a good opportunity to clean this up, instead of entrenching the unnecessary return value in the virLogOutputFunc instance that will be added in this series. Signed-off-by: Miloslav Trmač <mitr@redhat.com>
* Remove redundant lines in src/qemu/qemu_driver.cTang Chen2012-09-211-18/+0
| | | | | | | maxcpu and hostcpus are defined and calculated in qemudDomainPinVcpuFlags() and qemudDomainPinEmulator(), but never used. So remove them including nodeinfo. Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
* Add <seclabel> to character devices.Richard W.M. Jones2012-09-215-30/+155
| | | | | | | This allows the user to control labelling of each character device separately (the default is to inherit from the VM). Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
* Make virSecurityDeviceLabelDefParseXML into generic device <seclabel> parser.Richard W.M. Jones2012-09-211-18/+25
| | | | | | | | | | | | This is just code motion, allowing us to reuse the same function to parse the <seclabel> from character devices too. However it also fixes a possible segfault in the original code if VIR_ALLOC_N returns an error and the cleanup code (at the error: label) tries to iterate over the unallocated array (thanks Michal Privoznik for spotting this). Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
* qemu: Fix failure path in disk hotplugJiri Denemark2012-09-211-4/+10
| | | | | | Disk hotplug is a two phase action: qemuMonitorAddDrive followed by qemuMonitorAddDevice. When the first part succeeds but the second one fails, we need to rollback the drive addition.
* locking: Remove README file in favor of internals/locking.htmlJiri Denemark2012-09-211-165/+0
| | | | | | The README file seems to be a leftover from some previous version of locking driver. It is not consistent with what the code does nor is it consistent with existing documentation in internals/locking.html.
* Improve some debugging log messages in LXC mount setupDaniel P. Berrange2012-09-211-4/+5
| | | | Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Ensure existing selinux mount is removed before mounting new one in LXCDaniel P. Berrange2012-09-211-0/+16
| | | | | | | | Some kernel versions (at least RHEL-6 2.6.32) do not let you over-mount an existing selinuxfs instance with a new one. Thus we must unmount the existing instance inside our namespace. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Fix crash accessing a NULL URI when looking up auth credentialsDaniel P. Berrange2012-09-213-2/+4
| | | | | | | | When auto-probing hypervisor drivers, the conn->uri field will initially be NULL. Care must be taken not to access members when doing auth lookups in the config file Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Remove a redundant line in src/qemu/qemu_driver.cTang Chen2012-09-211-1/+0
| | | | Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
* network: backend for virNetworkUpdate of portgroupsLaine Stump2012-09-211-6/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | portgroup elements are located in the toplevel of <network> objects. There can be multiple <portgroup> elements, and they each have a unique name attribute. Add, delete, and modify are all supported for portgroup. When deleting a portgroup, only the name must be specified in the provided xml - all other attributes and subelements are ignored for the purposes of matching and existing portgroup. The bridge driver and virsh already know about the portgroup element, so providing this backend should cause the entire stack to work. Note that in the case of portgroup, there is no external daemon based on the portgroup config, so nothing must be restarted. It is important to note that guests make a copy of the appropriate network's portgroup data when they are started, so although an updated portgroup's configuration will have an affect on new guests started after the cahange, existing guests won't magically have their bandwidth changed, for example. If something like that is desired, it will take a lot of redesign work in the way network devices are setup (there is currently no link from the network back to the individual interfaces using it, much less from a portgroup within a network back to the individual interfaces).
* network: backend for virNetworkUpdate of dhcp rangeLaine Stump2012-09-211-4/+88
| | | | | | | | | | | | | | | | | | | | | | | The dhcp range element is contained in the <dhcp> element of one of a network's <ip> elements. There can be multiple <range> elements. Because there are only two attributes (start and end), and those are exactly what you would use to identify a particular range, it doesn't really make sense to modify an existing element, so VIR_NETWORK_UPDATE_COMMAND_MODIFY isn't supported for this section, only ADD_FIRST, ADD_LAST, and DELETE. Since virsh already has support for understanding all the defined sections, this new backend is automatically supported by virsh. You would use it like this: virsh net-update mynet add ip-dhcp-range \ "<range start='1.2.3.4' end='1.2.3.20'/>" --live --config The bridge driver also already supports all sections, so it's doing the correct thing in this case as well - since the dhcp range is placed on the dnsmasq commandline, the bridge driver recreates the dnsmasq commandline, and re-runs dnsmasq whenever a range is added/deleted (and AFFECT_LIVE is specified in the flags).
* virsh: new net-update commandLaine Stump2012-09-202-0/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This command uses the new virNetworkUpdate() API to modify an existing network definition, and optionally have those modifications take effect immediately without restarting the network. An example usage: virsh net-update mynet add-last ip-dhcp-host \ "<host mac='00:11:22:33:44:55' ip='192.168.122.45'/>" \ --live --config If you like, you can instead put the xml into a file, and call like this: virsh net-update mynet add ip-dhcp-host /tmp/myxml.xml --live --config virsh will autodetect whether the argument is itself an xml element, or if it's a file, by looking at the first character - the first character of an xml element is always "<", and the first character of a file is almost always *not* "<" (in the rare case that it is, the user could specify "./<filename..."). A --parent-index option is also available (to give the index within a list of parent objects, e.g. the index of the parent <ip> element when updating ip-dhcp-host elements), but is optional and at least for now will probably be used rarely. --live, --config, and --current options - if you specify --live, only the live state of the network will be updated. If you also specify --config, then the persistent configuration will also be updated; these two commands can be given separately, or both together. If you don't specify either (you can optionally specify "--current" for the same effect), then the "current" config will be updated (i.e. if the network is active, then only its live config is affected, but if the network is inactive, only the persistent config is affected).
* docs: fix typo in filesystem docsEric Blake2012-09-201-1/+1
| | | | | | | Noticed this by reading the page. It would be so much nicer if our tools could automatically flag things like this as part of 'make'. * docs/formatdomain.html.in: Remove extra '>'.
* maint: fix up copyright notice inconsistenciesEric Blake2012-09-20507-509/+507
| | | | | | | | | https://www.gnu.org/licenses/gpl-howto.html recommends that the 'If not, see <url>.' phrase be a separate sentence. * tests/securityselinuxhelper.c: Remove doubled line. * tests/securityselinuxtest.c: Likewise. * globally: s/; If/. If/
* doc: include article about libvirt+audit in relatedlinks.htmlMarcelo Cerri2012-09-201-0/+3
| | | | | | This patch adds to relatedlinks.html a link to an article about libvirt describing how the Linux audit subsystem can be used to track qemu guest's life-cycle.
* Ensure autogen.sh exists if bootstrap failsDaniel P. Berrange2012-09-201-0/+2
| | | | | | | | If any of the bootstrap tasks (autoconf/automake/etc) failed, autogen.sh carried on running any pre-existing configure anyway. Use 'set -e' to ensure autogen.sh immediately exists on error. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* tests: Add tests for dump-core optionMartin Kletzander2012-09-207-0/+69
|
* qemu: add support for dump-guest-core optionMartin Kletzander2012-09-204-10/+78
| | | | | | | | | | | | | | The "dump-guest-core' option is new option for the machine type (-machine pc,dump-guest-core) that controls whether the guest memory will be marked as dumpable. While testing this, I've found out that the value for the '-M' options is not parsed correctly when additional parameters are used. However, when '-machine' is used for the same options, it gets parsed as expected. That's why this patch also modifies the parsing and creating of the command line, so both '-M' and '-machine' are recognized. In QEMU's help there is only mention of the 'machine parameter now with no sign of the older '-M'.
* Add support for limiting guest coredumpMartin Kletzander2012-09-205-4/+52
| | | | | | | Sometimes when guest machine crashes, coredump can get huge due to the guest memory. This can be limited using madvise(2) system call and is being used in QEMU hypervisor. This patch adds an option for configuring that in the domain XML and related documentation.
* QEMU Tests for reboot-timeoutMartin Kletzander2012-09-207-0/+61
|
* qemu: Add support for reboot-timeoutMartin Kletzander2012-09-203-0/+36
| | | | | This patch adds support for "-boot reboot-timeout=rb_time" that is added in QEMU.
* Add support for reboot-timeoutMartin Kletzander2012-09-204-15/+56
| | | | | | | Whenever the guest machine fails to boot, new parameter (reboot-timeout) controls whether it should reboot and after how many ms it should do so. Docs included.
* security: Don't ignore errors when parsing DAC security labelsPeter Krempa2012-09-201-34/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The DAC security driver silently ignored errors when parsing the DAC label and used default values instead. With a domain containing the following label definition: <seclabel type='static' model='dac' relabel='yes'> <label>sdfklsdjlfjklsdjkl</label> </seclabel> the domain would start normaly but the disk images would be still owned by root and no error was displayed. This patch changes the behavior if the parsing of the label fails (note that a not present label is not a failure and in this case the default label should be used) the error isn't masked but is raised that causes the domain start to fail with a descriptive error message: virsh # start tr error: Failed to start domain tr error: internal error invalid argument: failed to parse DAC seclabel 'sdfklsdjlfjklsdjkl' for domain 'tr' I also changed the error code to "invalid argument" from "internal error" and tweaked the various error messages to contain correct and useful information.
* simplify xenXMDomainPinVcpu functionliguang2012-09-202-35/+4
| | | | | | | supersede tedious statements getting cpu bitmap from parameter cpumap by virBitmapNewData function Signed-off-by: liguang <lig.fnst@cn.fujitsu.com>
* Cleanup of domain_conf sentinelsMartin Kletzander2012-09-201-29/+29
| | | | This patch removes all commas after *_LAST sentinels in the enums.
* qemu: Cleanup boot parameter buildingMartin Kletzander2012-09-205-28/+89
| | | | | | | | | | | | | | | | | | | | | | This patch cleans up building the "-boot" parameter and while on that fixes one inconsistency by modifying these things: - I completed the unfinished virDomainBootMenu enum by specifying LAST, declaring it and also declaring the TypeFromString and TypeToString parameters. - Previously mentioned TypeFromString and TypeToString are used when parsing the XML. - Last, but not least, visible change is that the "-boot" parameter is built and parsed properly: - The "order=" prefix is used only when additional parameters are used (menu, etc.). - It's rewritten in a way that other parameters can be added easily in the future (used in following patch). - The "order=" parameter is properly parsed regardless to where it is placed in the string (e.g. "menu=on,order=nc"). - The "menu=" parameter (and others in the future) are created when they should be (i.e. even when bootindex is supported and used, but not when bootloader is selected).
* qemu: Transition domain to PAUSED after 'stop' commandMichal Privoznik2012-09-201-6/+1
| | | | | | | | | | Currently, we mark domain PAUSED (but not emit an event) just before we issue 'stop' on monitor; This command can take ages to finish, esp. when domain's doing a lot of IO - users can enforce qemu to open files with O_DIRECT which doesn't return from write() until data reaches the block device. Having said that, we report PAUSED even if domain is not paused yet.
* network: fix element size / length in memmoveLaine Stump2012-09-191-2/+2
| | | | | | | | | | | The memmove to move elements in the dhcp hosts array when inserting and deleting items was mistakenly basing the length of the copy on the size of a virNetworkDHCPHostDefPtr rather than virNetworkDHCPHostDef, with the expected disastrous results. The memmove to delete an entry commits two errors - along with the size of each element being wrong, it also omits some required parentheses.
* virsh: Move daemon to misc since its not a networkDoug Goldstein2012-09-191-3/+3
| | | | | Move the 'Daemon' entry to the Miscellaneous section since its not a networking driver or component.
* network: fix incorrect VIR_NETWORK_UPDATE_COMMAND_* valuesLaine Stump2012-09-191-4/+4
| | | | | | | | | These enums originally were put into the flags for virNetworkUpdate, and when they were moved into their own enum, the numbers weren't appropriately changed, causing the commands to start with value 2 instead of 1. This causes problems for things like ENUM_IMPL, which wants a string for every value in the requested range, including those not used in the enum.
* build: define WITH_INTERFACE for the driverDoug Goldstein2012-09-1910-22/+73
| | | | | | | | | | | | | | | | | | Based exclusively on work by Eric Blake in a patch posted with the same subject. However some modifications related to comments and my plans to add another backend. Added WITH_INTERFACE as the only automake variable deciding whether to build the driver and using WITH_NETCF to identify that we're wanting to use the netcf library as the backend. * configure.ac: Added with_interface * src/interface/netcf_driver.c: Renamed.. * src/interface/interface_backend_netcf.c: ..to this to match storage. * src/interface/netcf_driver.h: Renamed.. * src/interface/interface_driver.h: ..to this. * daemon/Makefile.am: Respect WITH_INTERFACE and WITH_NETCF. * libvirt.spec.in: Add RPM support for --with-interface
* virsh: Rename QEmu to QEMU to match upstreamDoug Goldstein2012-09-191-1/+1
| | | | | Match upstream's naming of QEMU. There was a notice on the ML that said the preferred spelling was QEMU a while back.