]> xenbits.xensource.com Git - libvirt.git/log
libvirt.git
10 years agoCVE-2015-0236: qemu: Check ACLs when dumping security info from save image
Peter Krempa [Tue, 20 Jan 2015 16:01:01 +0000 (17:01 +0100)]
CVE-2015-0236: qemu: Check ACLs when dumping security info from save image

The ACL check didn't check the VIR_DOMAIN_XML_SECURE flag and the
appropriate permission for it.

10 years agoqemu: output error when try to hotplug unsupported console type
Luyao Huang [Thu, 22 Jan 2015 02:28:18 +0000 (10:28 +0800)]
qemu: output error when try to hotplug unsupported console type

https://bugzilla.redhat.com/show_bug.cgi?id=1164627

When using 'virsh attach-device' to hotplug an unsupported console type
into a qemu guest the attachment would succeed as the command line
formatter didn't report error in such case.

Signed-off-by: Luyao Huang <lhuang@redhat.com>
10 years agoqemu: format server interface without a listen address
Ján Tomko [Tue, 20 Jan 2015 12:34:10 +0000 (13:34 +0100)]
qemu: format server interface without a listen address

https://bugzilla.redhat.com/show_bug.cgi?id=1130390

The listen address is not mandatory for <interface type='server'>
but when it's not specified, we've been formatting it as:
-netdev socket,listen=(null):5558,id=hostnet0
which failed with:
Device 'socket' could not be initialized

Omit the address completely and only format the port in the listen
attribute.

Also fix the schema to allow specifying a model.

10 years agotests: fix xlconfigtest build failure
Jim Fehlig [Tue, 20 Jan 2015 23:45:09 +0000 (16:45 -0700)]
tests: fix xlconfigtest build failure

When libvirt is configured --without-xen, building the xlconfigtest
fails with

  CCLD   xlconfigtest
  /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o
  In function `_start': (.text+0x20): undefined reference to `main'
  collect2: error: ld returned 1 exit status

Introduced in commit 4ed5fb91 by too much copy and paste from
xmconfigtest.

10 years agoFix virCgroupNewMachine prototype on non-Linux
Ján Tomko [Tue, 20 Jan 2015 09:00:59 +0000 (10:00 +0100)]
Fix virCgroupNewMachine prototype on non-Linux

Commit 318df5a changed the prototype of virCgroupNewMachine
without adjusting the stub function for platforms without
cgroups.

10 years agonetwork: Let domains be restricted to local DNS
Josh Stone [Thu, 4 Dec 2014 00:01:33 +0000 (16:01 -0800)]
network: Let domains be restricted to local DNS

This adds a new "localOnly" attribute on the domain element of the
network xml.  With this set to "yes", DNS requests under that domain
will only be resolved by libvirt's dnsmasq, never forwarded upstream.

This was how it worked before commit f69a6b987d616, and I found that
functionality useful.  For example, I have my host's NetworkManager
dnsmasq configured to forward that domain to libvirt's dnsmasq, so I can
easily resolve guest names from outside.  But if libvirt's dnsmasq
doesn't know a name and forwards it to the host, I'd get an endless
forwarding loop.  Now I can set localOnly="yes" to prevent the loop.

Signed-off-by: Josh Stone <jistone@redhat.com>
10 years agoMake ZFS storage pool XML tests optional
Gary R Hook [Fri, 16 Jan 2015 17:38:32 +0000 (17:38 +0000)]
Make ZFS storage pool XML tests optional

Do not run ZFS tests when ZFS is unsupported in the environment.

The recent patch b4af40226d09adeaf9e33a1d6594c4e8ce7f771d adds tests
to storagepoolxml2xmltest for the optional ZFS feature. When ZFS is
not included in the configuration these tests should not / cannot be
run. Modify the test source file to check for use of the feature and
compile in the tests accordingly.

Signed-off-by: Gary R Hook <gary.hook@nimboxx.com>
10 years agodocs: Fix docs about python bindings package
Martin Kletzander [Mon, 19 Jan 2015 10:03:55 +0000 (11:03 +0100)]
docs: Fix docs about python bindings package

Since the day we removed python bindings from the core repository, the
documentation was missing that information.

Reported-by: Lingyu Zhu <lynuszhu@gmail.com>
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
10 years agoqemu_conf: check for duplicate security drivers
Ján Tomko [Mon, 19 Jan 2015 11:46:37 +0000 (12:46 +0100)]
qemu_conf: check for duplicate security drivers

Using the same driver multiple times is pointless and
it can result in confusing errors:

$ virsh start test
error: Failed to start domain test
error: internal error: security label already defined for VM

https://bugzilla.redhat.com/show_bug.cgi?id=1153891

10 years agoAlways check return value of qemuDomainObjExitMonitor
Ján Tomko [Tue, 16 Dec 2014 09:40:58 +0000 (10:40 +0100)]
Always check return value of qemuDomainObjExitMonitor

Depending on the context, either error out if the domain
has disappeared in the meantime, or just ignore the value
to allow marking the function as ATTRIBUTE_RETURN_CHECK.

10 years agoFix vmdef usage after domain crash in monitor on device attach
Ján Tomko [Wed, 7 Jan 2015 12:12:18 +0000 (13:12 +0100)]
Fix vmdef usage after domain crash in monitor on device attach

https://bugzilla.redhat.com/show_bug.cgi?id=1161024

If the domain crashed while we were in monitor,
we cannot rely on the REALLOC done on live definition,
since vm->def now points to the persistent definition.
Skip adding the attached devices to domain definition
if the domain crashed.

In AttachChrDevice, the chardev was already added to the
live definition and freed by qemuProcessStop in the case
of a crash. Skip the device removal in that case.

Also skip audit if the domain crashed in the meantime.

10 years agoFix vmdef usage after domain crash in monitor on device detach
Ján Tomko [Tue, 16 Dec 2014 14:50:20 +0000 (15:50 +0100)]
Fix vmdef usage after domain crash in monitor on device detach

https://bugzilla.redhat.com/show_bug.cgi?id=1161024

In the device type-specific functions, exit early
if the domain has disappeared, because the cleanup
should have been done by qemuProcessStop.

Check the return value in processDeviceDeletedEvent
and qemuProcessUpdateDevices.

Skip audit and removing the device from live def because
it has already been cleaned up.

10 years agoSimplify condition for formatting CPU features
Ján Tomko [Thu, 15 Jan 2015 11:49:13 +0000 (12:49 +0100)]
Simplify condition for formatting CPU features

Commit adff345 added support for features to MODE_HOSTPASSTHROUGH
as well. Since we support all modes now, the condition can be
eliminated.

10 years agoAdd an XML test for host-model CPU with features
Ján Tomko [Thu, 15 Jan 2015 10:55:44 +0000 (11:55 +0100)]
Add an XML test for host-model CPU with features

This was broken in a dowstream build due to a missing backport:
https://bugzilla.redhat.com/show_bug.cgi?id=1182448

10 years agolibxl: Set path to console on domain startup.
Anthony PERARD [Thu, 15 Jan 2015 16:40:19 +0000 (16:40 +0000)]
libxl: Set path to console on domain startup.

The path to the pty of a Xen PV console is set only in
virDomainOpenConsole. But this is done too late. A call to
virDomainGetXMLDesc done before OpenConsole will not have the path to
the pty, but a call after OpenConsole will.

e.g. of the current issue.
Starting a domain with '<console type="pty"/>'
Then:
virDomainGetXMLDesc():
  <devices>
    <console type='pty'>
      <target type='xen' port='0'/>
    </console>
  </devices>
virDomainOpenConsole()
virDomainGetXMLDesc():
  <devices>
    <console type='pty' tty='/dev/pts/30'>
      <source path='/dev/pts/30'/>
      <target type='xen' port='0'/>
    </console>
  </devices>

The patch intend to have the TTY path on the first call of GetXMLDesc.
This is done by setting up the path at domain start up instead of in
OpenConsole.

https://bugzilla.redhat.com/show_bug.cgi?id=1170743

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
10 years agoConditionalize use of -Wno-suggest-attribute=format pragma
Daniel P. Berrange [Fri, 16 Jan 2015 14:45:08 +0000 (14:45 +0000)]
Conditionalize use of -Wno-suggest-attribute=format pragma

Many GCC versions don't understand -Wno-suggest-attribute=format
so the pragma must only be used when supported

10 years agoCoverity fix: properly check for 0 ipv6 address.
Cédric Bosdonnat [Fri, 16 Jan 2015 13:24:37 +0000 (14:24 +0100)]
Coverity fix: properly check for 0 ipv6 address.

10 years agoparallels: create container from existing image
Dmitry Guryanov [Tue, 13 Jan 2015 11:27:40 +0000 (14:27 +0300)]
parallels: create container from existing image

It's possible to create a container with existing
disk image as root filesystem. You need to remove
existing disks from PCS VM config and then add a new
one, pointing to your image. And then call PrlVm_RegEx
with PRNVM_PRESERVE_DISK flag.

With this patch you can create such container with
something like this for new domain XML config:

    <filesystem type='file' accessmode='passthrough'>
      <driver type='ploop' format='ploop'/>
      <source file='/path-to-image'/>
      <target dir='/'/>
    </filesystem>

Signed-off-by: Dmitry Guryanov <dguryanov@parallels.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
10 years agoparallels: allow to add filesystems to container
Dmitry Guryanov [Tue, 13 Jan 2015 11:27:39 +0000 (14:27 +0300)]
parallels: allow to add filesystems to container

Handle information about filesystems in domain config
and add corresponding devices to container via
parallels sdk.

Signed-off-by: Dmitry Guryanov <dguryanov@parallels.com>
10 years agoparallels: commit with PVCF_DETACH_HDD_BUNDLE flag
Dmitry Guryanov [Tue, 13 Jan 2015 11:27:38 +0000 (14:27 +0300)]
parallels: commit with PVCF_DETACH_HDD_BUNDLE flag

PCS removes disk image from filesystem, if you remove it
from config. There is a special flag PVCF_DETACH_HDD_BUNDLE
which allow to remove disk only from VM/CT config.

If you call virDomainDefine and remove some disk from
config it should be preserved, so call PrlVm_CommitEx
always with flag PVCF_DETACH_HDD_BUNDLE.

Signed-off-by: Dmitry Guryanov <dguryanov@parallels.com>
10 years agoparallels: dump info about container filesystems
Dmitry Guryanov [Tue, 13 Jan 2015 11:27:37 +0000 (14:27 +0300)]
parallels: dump info about container filesystems

Obtain information about container's filesystems and
store it in virDomainDef structure.

Signed-off-by: Dmitry Guryanov <dguryanov@parallels.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
10 years agoadd ploop fs driver type
Dmitry Guryanov [Tue, 13 Jan 2015 11:27:36 +0000 (14:27 +0300)]
add ploop fs driver type

Ploop is a pseudo device which makeit possible to access
to an image in a file as a block device. Like loop devices,
but with additional features, like snapshots, write tracker
and without double-caching.

It used in PCS for containers and in OpenVZ. You can manage
ploop devices and images with ploop utility
(http://git.openvz.org/?p=ploop).

Signed-off-by: Dmitry Guryanov <dguryanov@parallels.com>
10 years agoqemu: Add support for enabling/disabling PMU
Martin Kletzander [Mon, 5 Jan 2015 15:52:18 +0000 (16:52 +0100)]
qemu: Add support for enabling/disabling PMU

This is used as a boolean parameter for the '-cpu' option.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1178853

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
10 years agodocs, schema, conf: Add support for PMU feature
Martin Kletzander [Mon, 5 Jan 2015 15:21:51 +0000 (16:21 +0100)]
docs, schema, conf: Add support for PMU feature

Just a new feature that can be turned on/off.

https://bugzilla.redhat.com/show_bug.cgi?id=1178853

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
10 years agonetwork: Resolve Coverity FORWARD_NULL
John Ferlan [Fri, 16 Jan 2015 11:40:15 +0000 (06:40 -0500)]
network: Resolve Coverity FORWARD_NULL

Commit id 'ca481a6f' added virNetworkRouteDefFree which may be called
in an error path from lxcAddNetworkRouteDefinition with 'route = NULL'.
So just add the (!def) at the top to resolve.

10 years agovirsh: add support for domain XML validation
Daniel P. Berrange [Thu, 8 Jan 2015 15:26:50 +0000 (15:26 +0000)]
virsh: add support for domain XML validation

The 'virsh edit' command gets XML validation enabled by default,
with a --skip-validate option to disable it. The 'virsh define'
and 'virsh create' commands get a --validate option to enable
it, to avoid regressions for existing scripts.

The quality of error reporting from libxml2 varies depending
on the type of XML error made. Sometimes it is quite clear
and useful, other times it is obscure & inaccurate. At least
the user will see an error now, rather than having their
XML modification silently disappear.

10 years agoAdd XML test for too many PCI devices on default PCI bus
Erik Skultety [Thu, 15 Jan 2015 13:14:19 +0000 (14:14 +0100)]
Add XML test for too many PCI devices on default PCI bus

10 years agoRemove dead code in qemuDomainAssignPCIAddresses
Erik Skultety [Thu, 15 Jan 2015 13:14:18 +0000 (14:14 +0100)]
Remove dead code in qemuDomainAssignPCIAddresses

We tested for positive return value from virDomainMaybeAddController,
but it returns 0 or -1 only resulting in a dead code.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
10 years agoqemu: Tweak auto adding PCI bridge controller when extending default PCI bus
Erik Skultety [Thu, 15 Jan 2015 13:14:17 +0000 (14:14 +0100)]
qemu: Tweak auto adding PCI bridge controller when extending default PCI bus

In case we find out, there are more PCI devices to be connected
than there are available slots on the default PCI bus, we automatically add a
new bus and a related PCI bridge controller as well. As there are no free slots
left on the default PCI bus, PCI bridge controller gets a free slot on a
newly created PCI bus which causes qemu to refuse to start the guest.
This fix introduces a new function qemuDomainPCIBusFullyReserved which
is checked right before we possibly try to reserve a slot for PCI bridge
controller.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1132900

10 years agodomain_conf: Check errors from virSocketAddrFormat
John Ferlan [Fri, 9 Jan 2015 16:02:05 +0000 (11:02 -0500)]
domain_conf: Check errors from virSocketAddrFormat

Commit id 'aa2cc721' added calls to virSocketAddrFormat but did not
check for a NULL (error) return which could lead to bad output
in the XML file.  Need to check for NULL return and cause failure.

Signed-off-by: John Ferlan <jferlan@redhat.com>
10 years agodomain_conf: Resolve Coverity RESOURCE_LEAK
John Ferlan [Fri, 9 Jan 2015 16:02:04 +0000 (11:02 -0500)]
domain_conf: Resolve Coverity RESOURCE_LEAK

Commit id 'aa2cc721' added call to virSocketAddrFormat
and did not VIR_FREE() the returned memory.

Signed-off-by: John Ferlan <jferlan@redhat.com>
10 years agovirSocketAddrGetIpPrefix 0.0.0.0 and :: special cases
Cédric Bosdonnat [Thu, 15 Jan 2015 08:13:09 +0000 (09:13 +0100)]
virSocketAddrGetIpPrefix 0.0.0.0 and :: special cases

If 0.0.0.0  or :: address is provided, then the returned prefix should
be 0, for the default address.

10 years agoUse the network route definitions for domains
Cédric Bosdonnat [Wed, 14 Jan 2015 15:15:57 +0000 (16:15 +0100)]
Use the network route definitions for domains

10 years agoMove code related to network routes to networkcommon_conf.[ch]
Cédric Bosdonnat [Wed, 14 Jan 2015 13:21:10 +0000 (14:21 +0100)]
Move code related to network routes to networkcommon_conf.[ch]

Moving code for parsing and formatting network routes to
networkcommon_conf helps reusing those routes for domains. The route
definition has been hidden to help reducing the number of unnecessary
checks in the format function.

10 years agoMove network route definition to networkcommon.rng
Cédric Bosdonnat [Wed, 14 Jan 2015 09:51:52 +0000 (10:51 +0100)]
Move network route definition to networkcommon.rng

Moving network route to the network common schema will allow reusing it.

10 years agoFix ipv6 regex in RNG schemas to match '::'
Cédric Bosdonnat [Wed, 14 Jan 2015 09:42:19 +0000 (10:42 +0100)]
Fix ipv6 regex in RNG schemas to match '::'

10 years agovirNetworkDefUpdateIPDHCPHost: Don't crash when updating network
Michal Privoznik [Thu, 15 Jan 2015 14:42:04 +0000 (15:42 +0100)]
virNetworkDefUpdateIPDHCPHost: Don't crash when updating network

https://bugzilla.redhat.com/show_bug.cgi?id=1182486

When updating a network and adding new ip-dhcp-host entry, the deamon
may crash. The problem is, we iterate over existing <host/> entries
trying to compare MAC addresses to see if there's already an existing
rule. However, not all entries are required to have MAC address. For
instance, the following is perfectly valid entry:

<host id='00:04:58:fd:e4:15:1b:09:4c:0e:09:af:e4:d3:8c:b8:ca:1e'
name='redhatipv6.redhat.com' ip='2001:db8:ca2:2::119'/>

When the checking loop iterates over this, the entry's MAC address is
accessed directly. Well, the fix is obvious - check if the address is
defined before trying to compare it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
10 years agoAdd support for schema validation when passing in XML
Daniel P. Berrange [Tue, 18 Nov 2014 17:34:42 +0000 (17:34 +0000)]
Add support for schema validation when passing in XML

The virDomainDefineXMLFlags and virDomainCreateXML APIs both
gain new flags allowing them to be told to validate XML.
This updates all the drivers to turn on validation in the
XML parser when the flags are set

10 years agoAdd virXMLValidateAgainstSchema helper method
Daniel P. Berrange [Tue, 18 Nov 2014 14:50:05 +0000 (14:50 +0000)]
Add virXMLValidateAgainstSchema helper method

Add a helper method that can validate an XML document against
an RNG schema

10 years agoChange int to size_t in size var for tap/vhost FDs
Daniel P. Berrange [Wed, 12 Nov 2014 15:42:02 +0000 (15:42 +0000)]
Change int to size_t in size var for tap/vhost FDs

A number of methods take an int for a parameter that indicates
the size of an array. The correct type for array sizes is
size_t

10 years agoLog dtrace/systemd probes at INFO level instead of DEBUG
Daniel P. Berrange [Tue, 11 Nov 2014 18:40:16 +0000 (18:40 +0000)]
Log dtrace/systemd probes at INFO level instead of DEBUG

Every dtrace/systemd probe also include a libvirt log message.
These are logged at level DEBUG currently, which means if you
want to see all probes they are drowned by the rest of the
DEBUG messages. Since we don't really use the INFO log level
for much, it seems reasonable to suggest we log all probes at
level INFO.

10 years agoAdd systemd/dtrace probes for DBus APIs
Daniel P. Berrange [Tue, 11 Nov 2014 18:39:19 +0000 (18:39 +0000)]
Add systemd/dtrace probes for DBus APIs

When debugging libvirt it is helpful to set probes around RPC
calls. We already have probes for libvirt's native RPC layer,
so it makes sense to add them for the DBus RPC layer too.

10 years agoAdd support for systemd-machined CreateMachineWithNetwork
Daniel P. Berrange [Tue, 11 Nov 2014 17:38:43 +0000 (17:38 +0000)]
Add support for systemd-machined CreateMachineWithNetwork

systemd-machined introduced a new method CreateMachineWithNetwork
that obsoletes CreateMachine. It expects to be given a list of
VETH/TAP device indexes for the host side device(s) associated
with a container/machine.

This falls back to the old CreateMachine method when the new
one is not supported.

10 years agoqemu: free priv->origname when qemuMigrationPrepareAny fails
Luyao Huang [Tue, 13 Jan 2015 02:15:52 +0000 (10:15 +0800)]
qemu: free priv->origname when qemuMigrationPrepareAny fails

https://bugzilla.redhat.com/show_bug.cgi?id=1181182

When we meet error in qemuMigrationPrepareAny and goto
cleanup with rc < 0, we forget clear the priv->origname and this
will make this vm migrate fail next time because leave a wrong
origname in  priv, and will Generate a wrong cookie when do
migrate next time.

This patch will make priv->origname is NULL when migrate fail
in target host.

Signed-off-by: Luyao Huang <lhuang@redhat.com>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
10 years agoFix vmdef usage while in monitor in qemu process
Ján Tomko [Wed, 7 Jan 2015 13:50:34 +0000 (14:50 +0100)]
Fix vmdef usage while in monitor in qemu process

Make local copy of the disk alias in qemuProcessInitPasswords,
instead of referencing the one in domain definition, which
might get freed if the domain crashes while we're in monitor.

Also copy the memballoon period value.

10 years agoFix vmdef usage while in monitor in BlockStat* APIs
Ján Tomko [Wed, 7 Jan 2015 13:35:49 +0000 (14:35 +0100)]
Fix vmdef usage while in monitor in BlockStat* APIs

Make a local copy of the disk alias instead of pointing
to the domain definition, which might get freed if
the domain dies while we're in monitor.

Also exit early if that happens.

10 years agoFix vmdef usage while in monitor in qemuDomainHotplugVcpus
Ján Tomko [Tue, 16 Dec 2014 08:30:49 +0000 (09:30 +0100)]
Fix vmdef usage while in monitor in qemuDomainHotplugVcpus

Exit the monitor right after we've done with it to get
the virDomainObjPtr lock back, otherwise we might be accessing
vm->def while it's being cleaned up by qemuProcessStop.

If the domain crashed while we were in the monitor, exit
early instead of changing vm->def which is now the persistent
definition.

10 years agoMark the domain as active in qemuhotplugtest
Ján Tomko [Tue, 16 Dec 2014 07:46:44 +0000 (08:46 +0100)]
Mark the domain as active in qemuhotplugtest

This will allow us to call qemuDomainObjIsActive() in
the tested functions to check if the domain has crashed.

10 years agoCheck for domain liveness in qemuDomainObjExitMonitor
Ján Tomko [Fri, 12 Dec 2014 15:57:21 +0000 (16:57 +0100)]
Check for domain liveness in qemuDomainObjExitMonitor

The domain might disappear during the time in monitor when
the virDomainObjPtr is unlocked, so the caller needs to check
if it's still alive.

Since most of the callers are going to need it, put the
check inside qemuDomainObjExitMonitor and return -1 if
the domain died in the meantime.

10 years agocheck IOMMU group devices usage when preparing device for vfio passthrough
Shivaprasad G Bhat [Wed, 14 Jan 2015 11:03:28 +0000 (06:03 -0500)]
check IOMMU group devices usage when preparing device for vfio passthrough

The virsh start <domain> fails with qemu error when the hostdevices of the
same iommu group are used actively by other vms. It is not clear which
hostdev from the same iommu group is used by any of the running guests.
User has to go through every guest xml to figure out who is using the
hostdev of same iommu group.

Solution:
Iterate the iommu group of the hostdev and error our neatly in case a
device in the same iommu group is busy. Reattach code also does the same
kind of check, remove duplicate code as well.

Signed-off-by: Shivaprasad G Bhat <sbhat@linux.vnet.ibm.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
10 years agovirpci: Implement virPCIDeviceGetAddress function
Shivaprasad G Bhat [Wed, 14 Jan 2015 11:02:40 +0000 (06:02 -0500)]
virpci: Implement virPCIDeviceGetAddress function

Basically a getter function which is implemented for accessing the
address fields in virPCIDevice.

Signed-off-by: Shivaprasad G Bhat <sbhat@linux.vnet.ibm.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
10 years agolibxl: Add support for parsing/formating Xen XL config
Kiarie Kahurani [Tue, 16 Dec 2014 04:30:06 +0000 (21:30 -0700)]
libxl: Add support for parsing/formating Xen XL config

Now that xenconfig supports parsing and formatting Xen's
XL config format, integrate it into the libxl driver's
connectDomainXML{From,To}Native functions.

Signed-off-by: Kiarie Kahurani <davidkiarie4@gmail.com>
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
10 years agotests: Tests for the xen-xl parser
Kiarie Kahurani [Tue, 16 Dec 2014 04:30:05 +0000 (21:30 -0700)]
tests: Tests for the xen-xl parser

Add disk and spice config tests for the xen_xl config parser

Signed-off-by: Kiarie Kahurani <davidkiarie4@gmail.com>
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
10 years agoIntroduce support for parsing/formatting Xen xl config format
Jim Fehlig [Sat, 10 Jan 2015 00:12:52 +0000 (17:12 -0700)]
Introduce support for parsing/formatting Xen xl config format

Introduce a parser/formatter for the xl config format.  Since the
deprecation of xm/xend, the VM config file format has diverged as
new features are added to libxl.  This patch adds support for parsing
and formating the xl config format.  It supports the existing xm config
format, plus adds support for spice graphics and xl disk config syntax.

Disk config is specified a bit differently in xl as compared to xm.  In
xl, disk config consists of comma-separated positional parameters and
keyword/value pairs separated by commas. Positional parameters are
specified as follows

   target, format, vdev, access

Supported keys for key=value options are

  devtype, backendtype

The positional paramters can also be specified in key/value form.  For
example the following xl disk config are equivalent

    /dev/vg/guest-volume,,hda
    /dev/vg/guest-volume,raw,hda,rw
    format=raw, vdev=hda, access=rw, target=/dev/vg/guest-volume

See $xen_sources/docs/misc/xl-disk-configuration.txt for more details.

xl disk config is parsed with the help of xlu_disk_parse() from
libxlutil, libxl's utility library.  Although the library exists
in all Xen versions supported by the libxl virt driver, only
recently has the corresponding header file been included.  A check
for the header is done in configure.ac.  If not found, xlu_disk_parse()
is declared externally.

Signed-off-by: Kiarie Kahurani <davidkiarie4@gmail.com>
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
10 years agoqemu_process: detect updated video ram size values from QEMU
Pavel Hrdina [Wed, 10 Dec 2014 14:31:23 +0000 (15:31 +0100)]
qemu_process: detect updated video ram size values from QEMU

QEMU internally updates the size of video memory if the domain XML had
provided too low memory size or there are some dependencies for a QXL
devices 'vgamem' and 'ram' size. We need to know about the changes and
store them into the status XML to not break migration or managedsave
through different libvirt versions.

The values would be loaded only if the "vgamem_mb" property exists for
the device.  The presence of the "vgamem_mb" also tells that the
"ram_size" and "vram_size" exists for QXL devices.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
10 years agoqemu_monitor: introduce new function to get QOM path
Pavel Hrdina [Tue, 9 Dec 2014 15:21:45 +0000 (16:21 +0100)]
qemu_monitor: introduce new function to get QOM path

The search is done recursively only through QOM object that has a type
prefixed with "child<" as this indicate that the QOM is a parent for
other QOM objects.

The usage is that you give known device name with starting path where to
search.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
10 years agoqemu_driver: fix setting vcpus for offline domain
Pavel Hrdina [Tue, 13 Jan 2015 12:33:43 +0000 (13:33 +0100)]
qemu_driver: fix setting vcpus for offline domain

Commit e3435caf fixed hot-plugging of vcpus with strict memory pinning
on NUMA hosts, but unfortunately it also broke updating number of vcpus
for offline guests using our API.

The issue is that we try to create a cpu cgroup for non-running guest
which fails as there are no cgroups for that domain. We should create
cgroups and update cpuset.mems only if we are hot-plugging.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
10 years agoqemu, lxc: Warn if setting QoS on unsupported vNIC types
Michal Privoznik [Wed, 7 Jan 2015 14:52:21 +0000 (15:52 +0100)]
qemu, lxc: Warn if setting QoS on unsupported vNIC types

https://bugzilla.redhat.com/show_bug.cgi?id=1165993

So, there are still plenty of vNIC types that we don't know how to set
bandwidth on. Let's warn explicitly in case user has requested it
instead of pretending everything was set.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
10 years agoqemu: snapshot: inactive external snapshot can't work after libvirtd restart
Shanzhi Yu [Sat, 6 Dec 2014 16:32:18 +0000 (00:32 +0800)]
qemu: snapshot: inactive external snapshot can't work after libvirtd restart

When create inactive external snapshot, after update disk definitions,
virDomainSaveConfig is needed, if not after restart libvirtd the new snapshot
file definitions in xml will be lost.

Reproduce steps:

1. prepare a shut off guest
$ virsh domstate rhel7 && virsh domblklist rhel7
shut off

Target     Source
------------------------------------------------
vda        /var/lib/libvirt/images/rhel7.img

2. create external disk snapshot
$ virsh snapshot-create rhel7 --disk-only && virsh domblklist rhel7
Domain snapshot 1417882967 created
Target     Source
------------------------------------------------
vda        /var/lib/libvirt/images/rhel7.1417882967

3. restart libvirtd then check guest source file
$ service  libvirtd restart && virsh domblklist rhel7
Redirecting to /bin/systemctl restart  libvirtd.service
Target     Source
------------------------------------------------
vda        /var/lib/libvirt/images/rhel7.img

This was first reported by Eric Blake
http://www.redhat.com/archives/libvir-list/2014-December/msg00369.html

Signed-off-by: Shanzhi Yu <shyu@redhat.com>
10 years agoconf: Increase virNetDevBandwidthParse intelligence
Michal Privoznik [Wed, 7 Jan 2015 16:53:04 +0000 (17:53 +0100)]
conf: Increase virNetDevBandwidthParse intelligence

There's this function virNetDevBandwidthParse which parses the
bandwidth XML snippet. But it's not clever much. For the
following XML it allocates the virNetDevBandwidth structure even
though it's completely empty:

    <bandwidth>
    </bandwidth>

Later in the code there are some places where we check if
bandwidth was set or not. And since we obtained pointer from the
parsing function we think that it is when in fact it isn't.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
10 years agoGive virDomainDef parser & formatter their own flags
Daniel P. Berrange [Tue, 18 Nov 2014 16:44:00 +0000 (16:44 +0000)]
Give virDomainDef parser & formatter their own flags

The virDomainDefParse* and virDomainDefFormat* methods both
accept the VIR_DOMAIN_XML_* flags defined in the public API,
along with a set of other VIR_DOMAIN_XML_INTERNAL_* flags
defined in domain_conf.c.

This is seriously confusing & error prone for a number of
reasons:

 - VIR_DOMAIN_XML_SECURE, VIR_DOMAIN_XML_MIGRATABLE and
   VIR_DOMAIN_XML_UPDATE_CPU are only relevant for the
   formatting operation
 - Some of the VIR_DOMAIN_XML_INTERNAL_* flags only apply
   to parse or to format, but not both.

This patch cleanly separates out the flags. There are two
distint VIR_DOMAIN_DEF_PARSE_* and VIR_DOMAIN_DEF_FORMAT_*
flags that are used by the corresponding methods. The
VIR_DOMAIN_XML_* flags received via public API calls must
be converted to the VIR_DOMAIN_DEF_FORMAT_* flags where
needed.

The various calls to virDomainDefParse which hardcoded the
use of the VIR_DOMAIN_XML_INACTIVE flag change to use the
VIR_DOMAIN_DEF_PARSE_INACTIVE flag.

10 years agoDecouple CPU XML formatting from domain XML public API flags
Daniel P. Berrange [Tue, 6 Jan 2015 11:54:32 +0000 (11:54 +0000)]
Decouple CPU XML formatting from domain XML public API flags

The virCPUDefFormat* methods were relying on the VIR_DOMAIN_XML_*
flag definitions. It is not desirable for low level internal
functions to be coupled to flags for the public API, since they
may need to be called from several different contexts where the
flags would not be appropriate.

10 years agoformatdomaincaps: Correctly format API reference
Michal Privoznik [Tue, 13 Jan 2015 13:24:38 +0000 (14:24 +0100)]
formatdomaincaps: Correctly format API reference

Well, since the link to the virConnectGetDomainCapabilities API is in
<pre/> section we must take special care about the spaces around the
link.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
10 years agoqemu: forbid second blockcommit during active commit
Eric Blake [Mon, 12 Jan 2015 23:13:21 +0000 (16:13 -0700)]
qemu: forbid second blockcommit during active commit

https://bugzilla.redhat.com/show_bug.cgi?id=1135339 documents some
confusing behavior when a user tries to start an inactive block
commit in a second connection while there is already an on-going
active commit from a first connection.  Eventually, qemu will
support multiple simultaneous block jobs, but as of now, it does
not; furthermore, libvirt also needs an overhaul before we can
support simultaneous jobs.  So, the best way to avoid confusing
ourselves is to quit relying on qemu to tell us about the situation
(where we risk getting in weird states) and instead forbid a
duplicate block commit ourselves.

Note that we are still relying on qemu to diagnose attempts to
interrupt an inactive commit (since we only track XML of an active
commit), but as inactive commit is less confusing for libvirt to
manage, there is less that can go wrong by leaving that detection
up to qemu.

* src/qemu/qemu_driver.c (qemuDomainBlockCommit): Hoist check for
active commit to occur earlier outside of conditions.

Signed-off-by: Eric Blake <eblake@redhat.com>
10 years agoparallels: don't override error message when XML parsing fails
Daniel P. Berrange [Thu, 8 Jan 2015 14:55:39 +0000 (14:55 +0000)]
parallels: don't override error message when XML parsing fails

The virDomainDefParseString method will report a suitable error
on parsing fail, so don't replace that.

10 years agoFix flags passed to virDomainDefParseString by XenAPI driver
Daniel P. Berrange [Tue, 18 Nov 2014 16:02:11 +0000 (16:02 +0000)]
Fix flags passed to virDomainDefParseString by XenAPI driver

The XenAPI driver was passing the flags for
virDomainCreateXML straight into the virDomainDefParseString
method, even though they expect totally different sets of
flags. It should have been using VIR_DOMAIN_XML_INACTIVE

10 years agoDon't use VIR_DOMAIN_XML_SECURE when parsing XML
Daniel P. Berrange [Tue, 18 Nov 2014 15:37:00 +0000 (15:37 +0000)]
Don't use VIR_DOMAIN_XML_SECURE when parsing XML

The VIR_DOMAIN_XML_SECURE flag only has effect on the formatting
of XML so should not be passed to virDomainDefParseNode

10 years agoAdd stub virDomainDefineXMLFlags impls
Daniel P. Berrange [Tue, 18 Nov 2014 14:19:38 +0000 (14:19 +0000)]
Add stub virDomainDefineXMLFlags impls

Make sure every virt driver implements virDomainDefineXMLFlags
by adding a trivial passthrough from the existing impl with
no flags set.

10 years agoAdd new virDomainDefineXMLFlags public API
Daniel P. Berrange [Tue, 18 Nov 2014 13:56:20 +0000 (13:56 +0000)]
Add new virDomainDefineXMLFlags public API

The virDomainDefineXML method is one of the few that still lacks
an 'unsigned int flags' parameter. This will be needed for adding
XML validation to this API. virDomainCreateXML fortunately already
has flags.

10 years agoconf: fix crash when hotplug a channel chr device with no target
Luyao Huang [Tue, 13 Jan 2015 08:41:05 +0000 (16:41 +0800)]
conf: fix crash when hotplug a channel chr device with no target

https://bugzilla.redhat.com/show_bug.cgi?id=1181408

When we try to hotplug a channel chr device with no target, we
will get success (which should fail) in virDomainChrDefParseXML,
because we use goto cleanup this place and return an incomplete
definition (with no target). In qemuDomainAttachChrDevice,
we add it to the domain definition, but fail to remove it from
there when chardev-add fails, because virDomainChrRemove
matches chardevices according to the target name.
The device definition is then freed in qemuDomainAttachDeviceFlags,
leaving a stale pointer in the domain definition.

Signed-off-by: Luyao Huang <lhuang@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
10 years agoqemu: Allow enabling/disabling features with host-passthrough
Martin Kletzander [Mon, 5 Jan 2015 16:03:58 +0000 (17:03 +0100)]
qemu: Allow enabling/disabling features with host-passthrough

QEMU supports feature specification with -cpu host and we just skip
using that.  Since QEMU developers themselves would like to use this
feature, this patch modifies the code to work.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1178850

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
10 years agoRevert "src/xenconfig: Xen-xl parser"
Jim Fehlig [Fri, 9 Jan 2015 22:33:11 +0000 (15:33 -0700)]
Revert "src/xenconfig: Xen-xl parser"

This reverts commit 2c78051a14acfb7aba078d569b1632dfe0ca0853.

Conflicts:
src/Makefile.am

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
10 years agoRevert "tests: Tests for the xen-xl parser"
Jim Fehlig [Fri, 9 Jan 2015 22:29:07 +0000 (15:29 -0700)]
Revert "tests: Tests for the xen-xl parser"

This reverts commit 6b818d3b09f4e74ac2ea1d4020896be1e6871867.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
10 years agoRevert "libxl: Add support for parsing/formating Xen XL config"
Jim Fehlig [Fri, 9 Jan 2015 22:28:53 +0000 (15:28 -0700)]
Revert "libxl: Add support for parsing/formating Xen XL config"

This reverts commit 4f524212ce614e1ca84b34dd8330a48957c8f823.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
10 years agoRevert "src/Makefile.am: fix build breaker for xenconfig"
Jim Fehlig [Fri, 9 Jan 2015 22:28:39 +0000 (15:28 -0700)]
Revert "src/Makefile.am: fix build breaker for xenconfig"

This reverts commit 703ef9667abf016ef1040eac296a81792b366932.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
10 years agoRevert "build: fix xenconfig VPATH builds"
Jim Fehlig [Fri, 9 Jan 2015 22:28:04 +0000 (15:28 -0700)]
Revert "build: fix xenconfig VPATH builds"

This reverts commit 1b21d300691a78f73d94446616a6d1f9fd88991e.

Conflicts:
src/Makefile.am

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
10 years agoRevert "Revert "src/Makefile.am: fix build breaker for xenconfig""
Jim Fehlig [Fri, 9 Jan 2015 22:07:04 +0000 (15:07 -0700)]
Revert "Revert "src/Makefile.am: fix build breaker for xenconfig""

This reverts commit e662968fd980158e8f8d8990bb43378dbc3d036a.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
10 years agoRevert "src/Makefile: move the new xen_xl_disk parser code at the correct place"
Jim Fehlig [Fri, 9 Jan 2015 22:06:52 +0000 (15:06 -0700)]
Revert "src/Makefile: move the new xen_xl_disk parser code at the correct place"

This reverts commit edacdb3d12256af4f6e31ec65c9dd4797fb3aa0d.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
10 years agoRevert "src/Makefile: Fix parallel build after xen_xl_disk parser introduction"
Jim Fehlig [Fri, 9 Jan 2015 22:06:34 +0000 (15:06 -0700)]
Revert "src/Makefile: Fix parallel build after xen_xl_disk parser introduction"

This reverts commit 533349ff43ddf091026fbcb0d9a714d9cc570dc7.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
10 years agoRevert "bootstrap.conf: add check for flex"
Jim Fehlig [Fri, 9 Jan 2015 21:54:15 +0000 (14:54 -0700)]
Revert "bootstrap.conf: add check for flex"

This reverts commit cab767831f74ec72809dacd07cb782a88a097f21.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
10 years agolxc: Move setting ifname_guest_actual to virLXCSetupInterfaces
Guido Günther [Fri, 19 Dec 2014 09:08:38 +0000 (10:08 +0100)]
lxc: Move setting ifname_guest_actual to virLXCSetupInterfaces

so it applies to interfaces of type 'direct' too.

Reported and patch provided by Bastian Blank at

    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=769600

10 years agoqemuxml2argvtest: Fix test after change of qxl vgamem_mb default
Michal Privoznik [Mon, 12 Jan 2015 14:47:52 +0000 (15:47 +0100)]
qemuxml2argvtest: Fix test after change of qxl vgamem_mb default

Well, apparently it's possible for a patch to sneak in through
review process and break 'make check'. It happened just lately
with 0e502466acb84a which changed the default of vgamem_mb for
qxl device. However, there were left some domain XMLs within our
test suite relying on the old default. These should be updated to
match the change.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
10 years agocpu: Bugfix for s390 CPU driver to return a host CPU model
Daniel Hansel [Fri, 19 Dec 2014 14:49:35 +0000 (15:49 +0100)]
cpu: Bugfix for s390 CPU driver to return a host CPU model

The curent libvirt CPU driver for s390 does not return a host CPU model.
This patch returns 'host' according to the other platforms that would
not decode any CPU model.
This is an intermediate bugfix due to a discussion on OpenStack mailing
list. The final patch introducing the CPU model support for s390x will
exchange the hard-coded decode method.

Signed-off-by: Daniel Hansel <daniel.hansel@linux.vnet.ibm.com>
10 years agovirconf: Resolve a possible memory leak in virConfSetValue
John Ferlan [Fri, 9 Jan 2015 13:42:13 +0000 (08:42 -0500)]
virconf: Resolve a possible memory leak in virConfSetValue

Found this one by inspection... The API claims to "own" the input
value even in the case of error.  However, in the initial entry
to the API if the value exists, was STRING, but without a str value
it just returned without freeing the 'value' which it claims to now
own.  So I added the virConfFreeValue() call in order to resolve.

Signed-off-by: John Ferlan <jferlan@redhat.com>
10 years agoopenvz: Check errors from virSocketAddrFormat
John Ferlan [Fri, 9 Jan 2015 15:48:37 +0000 (10:48 -0500)]
openvz: Check errors from virSocketAddrFormat

Commit id 'a4e86390' modified the command line to allow --ipadd multiple
times; however, it did not account for the condition where a NULL is
returned which will could lead to some interesting errors with multiple
--ipadd's without parameters.

Signed-off-by: John Ferlan <jferlan@redhat.com>
10 years agoopenvz: Resolve Coverity RESOURCE_LEAK
John Ferlan [Fri, 9 Jan 2015 12:38:17 +0000 (07:38 -0500)]
openvz: Resolve Coverity RESOURCE_LEAK

Commit id 'a4e86390' modified the command line to allow --ipadd multiple
times, which caused Coverity to notice a latent memory leak with the
'ipAddr' string not being VIR_FREE()'d

Signed-off-by: John Ferlan <jferlan@redhat.com>
10 years agoqxl: change the default value for vgamem_mb to 16 MiB
Pavel Hrdina [Mon, 12 Jan 2015 12:18:46 +0000 (13:18 +0100)]
qxl: change the default value for vgamem_mb to 16 MiB

The default value should be 16 MiB instead of 8 MiB. Only really old
version of upstream QEMU used the 8 MiB as default for vga framebuffer.

Without this change if you update your libvirt where we introduced the
"vgamem" attribute for QXL video device the value will be set to 8 MiB,
but previously your guest had 16 MiB because we didn't pass any value to
QEMU command line which means QEMU used its own 16 MiB as default.

This will affect all users with guest's display resolution higher than
1920x1080.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
10 years agodocs: Document some -boot option limitations on UEFI
Michal Privoznik [Tue, 6 Jan 2015 12:04:13 +0000 (13:04 +0100)]
docs: Document some -boot option limitations on UEFI

It was brought to my attention that some -boot options may not
work with UEFI. For instance, rebootTimeout is very SeaBIOS
specific,splash logo is not implemented yet on OVMF, and so on.
We should document this limitation at least.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
10 years agovirsh: Emit error for VSH_OT_DATA without VSH_OFLAG_REQ
Hao Liu [Thu, 11 Dec 2014 02:46:15 +0000 (10:46 +0800)]
virsh: Emit error for VSH_OT_DATA without VSH_OFLAG_REQ

Commit 6b9964 enforces checking invalid use of VSH_OT_STRING with
VSH_OFLAG_REQ. This commit tries to do the same thing to stop using
VSH_OT_DATA without VSH_OFLAG_REQ and also fix existing misuse.

Signed-off-by: Hao Liu <hliu@redhat.com>
10 years agolxc: Don't crash on NULL ifname_guest_actual
Guido Günther [Sun, 11 Jan 2015 12:51:29 +0000 (13:51 +0100)]
lxc: Don't crash on NULL ifname_guest_actual

Reported and patch provided by Bastian Blank at

    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=769600

10 years agoconf: Correctly format controller's driver
Luyao Huang [Wed, 7 Jan 2015 10:39:37 +0000 (18:39 +0800)]
conf: Correctly format controller's driver

https://bugzilla.redhat.com/show_bug.cgi?id=1179684

The way that we currently generate the <driver/> for <controller/> is
just madness:

    <controller type='scsi' index='0' model='virtio-scsi'>
      <driver queues='12'/>
      <driver cmd_per_lun='123'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </controller>

It's obvious that we should be aiming at the following:

    <controller type='scsi' index='0' model='virtio-scsi'>
      <driver queues='12' cmd_per_lun='123'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </controller>

Signed-off-by: Luyao Huang <lhuang@redhat.com>
10 years agosafezero: fall back to writing zeroes even when resizing
Ján Tomko [Wed, 7 Jan 2015 15:49:00 +0000 (16:49 +0100)]
safezero: fall back to writing zeroes even when resizing

Remove the resize flag and use the same code path for all callers.
This flag was added by commit 18f0316 to allow virStorageFileResize
use 'safezero' while preserving the behavior.

Explicitly return -2 when a fallback to a different method should
be done, to make the code path more obvious.

Fail immediately when ftruncate fails in the mmap method,
as we did before commit 18f0316.

10 years agovirsh.pod: Update description
John Ferlan [Fri, 9 Jan 2015 12:36:01 +0000 (07:36 -0500)]
virsh.pod: Update description

The 'pool-build' command description for --overwrite and --no-overwrite
indicated usage for only 'filesystem' pools; however, the 'disk' pool
also supports the flags as of commit id 'afa1029a'. So add a description
for that usage.

Signed-off-by: John Ferlan <jferlan@redhat.com>
10 years agomaint: in src/Makefile.am, $(top_srcdir)/src is verbose
Eric Blake [Thu, 8 Jan 2015 00:05:36 +0000 (17:05 -0700)]
maint: in src/Makefile.am, $(top_srcdir)/src is verbose

I noticed this while working on a previous commit.  Why should
we be calling out '../src/' when it is sufficient to refer to just
'./'?  Blind copy-and-paste runs rampant in this file :)

* src/Makefile.am (INCLUDES, *_CFLAGS): Shorten to $(srcdir).

Signed-off-by: Eric Blake <eblake@redhat.com>
10 years agobootstrap.conf: add check for flex
Pavel Hrdina [Thu, 8 Jan 2015 15:58:25 +0000 (16:58 +0100)]
bootstrap.conf: add check for flex

We need the flex to generate new xen_xl_disk parser.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
10 years agosrc/Makefile: Fix parallel build after xen_xl_disk parser introduction
Pavel Hrdina [Thu, 8 Jan 2015 06:54:22 +0000 (07:54 +0100)]
src/Makefile: Fix parallel build after xen_xl_disk parser introduction

Well, the parallel build doesn't work as there are not dependencies
set correctly. When running 'make -j' I see this error:

make[2]: Entering directory '/home/zippy/work/libvirt/libvirt.git/src'
  GEN      util/virkeymaps.h
  GEN      locking/lock_protocol.h
make[2]: *** No rule to make target 'xenconfig/xen_xl_disk.h', needed by 'all'.  Stop.
make[2]: *** Waiting for unfinished jobs....
  GEN      lxc/lxc_controller_dispatch.h

The fix is to correctly set dependencies by letting make know that .c
and .h are to be generated from .l. Moreover, the section is moved
closer to the other section which uses it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
10 years agosrc/Makefile: move the new xen_xl_disk parser code at the correct place
Pavel Hrdina [Thu, 8 Jan 2015 13:36:31 +0000 (14:36 +0100)]
src/Makefile: move the new xen_xl_disk parser code at the correct place

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
10 years agoRevert "src/Makefile.am: fix build breaker for xenconfig"
Pavel Hrdina [Thu, 8 Jan 2015 13:34:32 +0000 (14:34 +0100)]
Revert "src/Makefile.am: fix build breaker for xenconfig"

This reverts commit 703ef9667abf016ef1040eac296a81792b366932.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
10 years agovmx: Fix a VMX parsing problem
Geoff Hickey [Wed, 7 Jan 2015 23:45:42 +0000 (18:45 -0500)]
vmx: Fix a VMX parsing problem

VMware ESX does not always set the "serialX.fileType" tag in VMX files. The
default value for this tag is "device", and when adding a new serial port
of this type VMware will omit the fileType tag. This caused libvirt to
fail to parse the VMX file. Fixed by making this tag optional and using
"device" as a default value. Also updated vmx2xmltest to test for this
case.

Signed-off-by: Eric Blake <eblake@redhat.com>
10 years agobuild: fix xenconfig VPATH builds
Eric Blake [Wed, 7 Jan 2015 23:32:32 +0000 (16:32 -0700)]
build: fix xenconfig VPATH builds

Ever since commit 2c78051 split out a helper library for the sake of
changing CFLAGS, a VPATH build with xenconfig enabled has failed:

  CC       xenconfig/libvirt_xenxldiskparser_la-xen_xl_disk.lo
  ../../src/xenconfig/xen_xl_disk.l:37:21: fatal error: xen_xl.h: No such file or directory
   # include "xen_xl.h"
             ^
  compilation terminated.
  Makefile:9462: recipe for target 'xenconfig/libvirt_xenxldiskparser_la-xen_xl_disk.lo' failed

The solution is to tell the build to look for xen_xl.h relative
to $(srcdir), since we keep that file under version control.

[Not fixed here - the raw use of -Wno-unused-parameter in CFLAGS
is NOT portable; ideally, we should be doing a configure test
and only supplying that argument when we know the compiler supports
-Wunused-parameter; but that's a patch for another day]

[Not fixed here - there are still issues with parallel builds hitting
a race between generating the files and trying to compile/distribute
them]

* src/Makefile.am (libvirt_xenxldiskparser_la_CFLAGS): Add another
include directory.

Signed-off-by: Eric Blake <eblake@redhat.com>