]> xenbits.xensource.com Git - libvirt.git/log
libvirt.git
4 years agoqemu: remove duplicate code for removing remnant files
Nikolay Shirokovskiy [Tue, 3 Nov 2020 07:58:13 +0000 (10:58 +0300)]
qemu: remove duplicate code for removing remnant files

This patch also changes functionality a bit.

First if unlinking of old config file is failed we rollback and return error
previously and now we return success. I don't think this makes much difference.
I guess in both cases on libvirtd restart we have to deal with both new and old
config existing on disk with different names but same uuid.

Second if unlinking of old autolink is failed we rollback previously which
was not right as at this point we already unlink old config file. So this
is fixed now.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
4 years agoqemu: rename: return instead of goto if no cleanup required
Nikolay Shirokovskiy [Tue, 3 Nov 2020 07:55:19 +0000 (10:55 +0300)]
qemu: rename: return instead of goto if no cleanup required

Going to cleanup label is mere return -1 thus let's just return
instead of goto to this label.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
4 years agoqemu: rename: send events only on success
Nikolay Shirokovskiy [Tue, 3 Nov 2020 07:53:57 +0000 (10:53 +0300)]
qemu: rename: send events only on success

We can simplify cleanup section by moving sending events to success path only
because only on sucess path events are not NULL.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
4 years agoqemu: qemuDomainRenameCallback: fix sending false undefined event
Nikolay Shirokovskiy [Tue, 3 Nov 2020 07:28:57 +0000 (10:28 +0300)]
qemu: qemuDomainRenameCallback: fix sending false undefined event

For example if saving config file with new name fails we send false undefine
event currently.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
4 years agomeson: fix yajl detection
Olaf Hering [Thu, 12 Nov 2020 23:01:39 +0000 (00:01 +0100)]
meson: fix yajl detection

yajl_tree_parse is declared in yajl/yajl_tree.h
autoconf is more forgiving, the error did not trigger because
yajl_tree_parse is not actually used.

Fixes: 44b8df4cb4b3f0c143e0330f543812e6bcd5c9f0
Fixes: 88ab32a4e555f67dae3204fbc3bcf63d3da8ad2b
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
4 years agotools: virsh: Reset error when keepalive registration fails
Peter Krempa [Thu, 12 Nov 2020 13:31:57 +0000 (14:31 +0100)]
tools: virsh: Reset error when keepalive registration fails

We try to enable keepalive oportunistically. If it's not supported by
the connection driver and it was not explicitly requested we keep the
error object set and can report it in some cases accidentally:

 --- stdout ---
 TEST: /home/pipo/libvirt/tests/virsh-self-test
       !                                        1   FAILED
 --- stderr ---
 error: parameter 'target' of command 'attach-disk' must be listed before optional parameters
 error: this function is not supported by the connection driver: virConnectSetKeepAlive
 -------

Clear the stored libvirt error.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agotools: vshCmddefOptParse: Remove return value
Peter Krempa [Thu, 12 Nov 2020 12:49:21 +0000 (13:49 +0100)]
tools: vshCmddefOptParse: Remove return value

The function can't fail so there's no need to return a value or check it
in the callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agotools: vshCmddefHelp: Don't call vshCmddefOptParse
Peter Krempa [Thu, 12 Nov 2020 12:42:45 +0000 (13:42 +0100)]
tools: vshCmddefHelp: Don't call vshCmddefOptParse

The help formatter called vshCmddefOptParse just for validation
purposes. Since vshCmddefOptParse no longer validates the command itself
and we don't need the bitmaps returned by it we can drop the call
entirely.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agotools: vshCmddefOptParse: Remove 'optional' command validation
Peter Krempa [Thu, 12 Nov 2020 12:34:51 +0000 (13:34 +0100)]
tools: vshCmddefOptParse: Remove 'optional' command validation

Since vshCmddefCheckInternals now has this check we no longer need it in
vshCmddefOptParse.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agotools: cmdSelfTest: Drop misleading comment
Peter Krempa [Thu, 12 Nov 2020 13:05:34 +0000 (14:05 +0100)]
tools: cmdSelfTest: Drop misleading comment

We no longer print help for every command to validate the args.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agotools: vshCmddefCheckInternals: Port mandatory options check from vshCmddefOptParse
Peter Krempa [Thu, 12 Nov 2020 12:30:29 +0000 (13:30 +0100)]
tools: vshCmddefCheckInternals: Port mandatory options check from vshCmddefOptParse

'vshCmddefCheckInternals' is the go-to place for all checks related to
the definition of parameters for commands, but the check that all
mandatory parameters must be ordered before optional parameters was
still only in vshCmddefOptParse.

Adding a non-compliant option would not be caught by our test suite as
'virsh self-test' doesn't call vshCmddefOptParse.

Re-implement the check in vshCmddefCheckInternals.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agotools: vshCmddefCheckInternals: Add parameter name to error message
Peter Krempa [Thu, 12 Nov 2020 11:04:11 +0000 (12:04 +0100)]
tools: vshCmddefCheckInternals: Add parameter name to error message

If a parameter definition is invalid we can include the name of the
parameter for simpler debugging.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agotools: vsh: Unexport vshCmddefHelp
Peter Krempa [Thu, 12 Nov 2020 12:38:23 +0000 (13:38 +0100)]
tools: vsh: Unexport vshCmddefHelp

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agotests: qemucapabilities: Update latest qemu caps to qemu v5.2.0-rc1
Peter Krempa [Thu, 5 Nov 2020 11:31:59 +0000 (12:31 +0100)]
tests: qemucapabilities: Update latest qemu caps to qemu v5.2.0-rc1

Synchronize with the latest release candidate.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agokbase: Document minimal libvirt version for NUMA-less virtiofs
Michal Privoznik [Thu, 12 Nov 2020 20:59:04 +0000 (21:59 +0100)]
kbase: Document minimal libvirt version for NUMA-less virtiofs

Using virtiofs without NUMA was implemented in v6.9.0-rc1~161 but
our kbase document only mentions QEMU version which may confuse
users.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
4 years agonews: implement vCPU APIs in the Hyper-V driver
Matt Coleman [Thu, 12 Nov 2020 17:10:34 +0000 (12:10 -0500)]
news: implement vCPU APIs in the Hyper-V driver

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agohyperv: implement domainSetVcpus and domainSetVcpusFlags
Matt Coleman [Thu, 12 Nov 2020 17:10:33 +0000 (12:10 -0500)]
hyperv: implement domainSetVcpus and domainSetVcpusFlags

Co-authored-by: Sri Ramanujam <sramanujam@datto.com>
Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agohyperv: implement domainGetMaxVcpus
Matt Coleman [Thu, 12 Nov 2020 17:10:32 +0000 (12:10 -0500)]
hyperv: implement domainGetMaxVcpus

Co-authored-by: Sri Ramanujam <sramanujam@datto.com>
Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agohyperv: implement domainGetVcpusFlags
Matt Coleman [Thu, 12 Nov 2020 17:10:31 +0000 (12:10 -0500)]
hyperv: implement domainGetVcpusFlags

Co-authored-by: Sri Ramanujam <sramanujam@datto.com>
Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agohyperv: implement domainGetVcpus
Matt Coleman [Thu, 12 Nov 2020 17:10:30 +0000 (12:10 -0500)]
hyperv: implement domainGetVcpus

Co-authored-by: Sri Ramanujam <sramanujam@datto.com>
Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain: introduce constants for virVcpuInfo->cpu state values
Matt Coleman [Thu, 12 Nov 2020 17:10:29 +0000 (12:10 -0500)]
domain: introduce constants for virVcpuInfo->cpu state values

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemu: Do not require TSC frequency to strictly match host
Jiri Denemark [Mon, 25 May 2020 09:35:12 +0000 (11:35 +0200)]
qemu: Do not require TSC frequency to strictly match host

Some CPUs provide a way to read exact TSC frequency, while measuring it
is required on other CPUs. However, measuring is never exact and the
result may slightly differ across reboots. For this reason both Linux
kernel and QEMU recently started allowing for guests TSC frequency to
fall into +/- 250 ppm tolerance interval around the host TSC frequency.

Let's do the same to avoid unnecessary failures (esp. during migration)
in case the host frequency does not exactly match the frequency
configured in a domain XML.

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

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
4 years agoFix capitalization "CLang" -> "Clang"
Andrea Bolognani [Thu, 12 Nov 2020 13:57:55 +0000 (14:57 +0100)]
Fix capitalization "CLang" -> "Clang"

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
4 years agoSet -Wno-incompatible-pointer-types-discards-qualifiers
Daniel P. Berrangé [Thu, 12 Nov 2020 09:36:58 +0000 (09:36 +0000)]
Set -Wno-incompatible-pointer-types-discards-qualifiers

With Clang we're getting failures from casts in GLib macros

../dist-unpack/libvirt-6.10.0/src/util/vireventthread.c:35:1:
  error: passing 'typeof (*(&g_define_type_id__volatile)) *'
  (aka 'volatile unsigned long *') to parameter of type
  'gsize *' (aka 'unsigned long *') discards qualifiers
  [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
G_DEFINE_TYPE(virEventThread, vir_event_thread, G_TYPE_OBJECT)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The cast is valid and there's no way for libvirt to workaround
the issue, so we must disable this Clang warning flag.

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agonews: some memory and scheduler Hyper-V APIs
Matt Coleman [Wed, 11 Nov 2020 06:48:34 +0000 (01:48 -0500)]
news: some memory and scheduler Hyper-V APIs

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agohyperv: implement domainGetScheduler*
Matt Coleman [Wed, 11 Nov 2020 06:48:33 +0000 (01:48 -0500)]
hyperv: implement domainGetScheduler*

Co-authored-by: Sri Ramanujam <sramanujam@datto.com>
Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agohyperv: refactor hypervDomainSetMemoryProperty
Matt Coleman [Wed, 11 Nov 2020 06:48:32 +0000 (01:48 -0500)]
hyperv: refactor hypervDomainSetMemoryProperty

* use hypervMsvmVSMSModifyResourceSettings()
* improve the error message: say which property it failed to set
* remove usage of VIR_FREE()

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agohyperv: add hypervMsvmVSMSModifyResourceSettings
Matt Coleman [Wed, 11 Nov 2020 06:48:31 +0000 (01:48 -0500)]
hyperv: add hypervMsvmVSMSModifyResourceSettings

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agohyperv: implement domainSetMaxMemory
Matt Coleman [Wed, 11 Nov 2020 06:48:30 +0000 (01:48 -0500)]
hyperv: implement domainSetMaxMemory

Co-authored-by: Sri Ramanujam <sramanujam@datto.com>
Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agohyperv: move hypervDomainSetMemory and hypervDomainSetMemoryFlags
Matt Coleman [Wed, 11 Nov 2020 06:48:29 +0000 (01:48 -0500)]
hyperv: move hypervDomainSetMemory and hypervDomainSetMemoryFlags

This matches their placement in struct _virHypervisorDriver.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agohyperv: implement domainGetMaxMemory
Matt Coleman [Wed, 11 Nov 2020 06:48:28 +0000 (01:48 -0500)]
hyperv: implement domainGetMaxMemory

Co-authored-by: Sri Ramanujam <sramanujam@datto.com>
Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirnetdevopenvswitch: Simplify OVS_VSCTL cmd creation
Michal Privoznik [Wed, 11 Nov 2020 08:12:18 +0000 (09:12 +0100)]
virnetdevopenvswitch: Simplify OVS_VSCTL cmd creation

Every time we create new virCommand of OVS_VSCTL it must be
followed by virNetDevOpenvswitchAddTimeout() call which adds the
--timeout=X argument to freshly created cmd. Instead of having
this as two separate function calls it can be just one.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
4 years agovirnetdevopenvswitch: Get names for dpdkvhostuserclient too
Michal Privoznik [Wed, 6 Nov 2019 10:59:22 +0000 (11:59 +0100)]
virnetdevopenvswitch: Get names for dpdkvhostuserclient too

There are two types of vhostuser ports:

  dpdkvhostuser - OVS creates the socket and QEMU connects to it
  dpdkvhostuserclient - QEMU creates the socket and OVS connects to it

But of course ovs-vsctl syntax for fetching ifname is different.
So far, we've implemented the former. The lack of implementation
for the latter means that we are not detecting the interface name
and thus not reporting it in domain XML, or failing to get
interface statistics.

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

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
4 years agoconf: Use unsigned long long for timer frequency
Jiri Denemark [Wed, 11 Nov 2020 15:50:16 +0000 (16:50 +0100)]
conf: Use unsigned long long for timer frequency

Although the code in qemuProcessStartValidateTSC works as if the
timer frequency was already unsigned long long (by using an appropriate
temporary variable), the virDomainTimerDef structure actually defines
frequency as unsigned long, which is not guaranteed to be 64b.

Fixes support for frequencies higher than 2^32 - 1 on 32b systems.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
4 years agonode_device: detecting mdev_types capability on CSS devices
Boris Fiuczynski [Wed, 11 Nov 2020 12:45:22 +0000 (13:45 +0100)]
node_device: detecting mdev_types capability on CSS devices

Add detection of mdev_types capability to channel subsystem devices.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agodocs: rename reference MDEVCap into MDEVTypesCapPCI
Boris Fiuczynski [Wed, 11 Nov 2020 12:45:21 +0000 (13:45 +0100)]
docs: rename reference MDEVCap into MDEVTypesCapPCI

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agodocs: refactor mdev_types into new paragraph
Boris Fiuczynski [Wed, 11 Nov 2020 12:45:20 +0000 (13:45 +0100)]
docs: refactor mdev_types into new paragraph

To prevent copying the mdev_types description multiple times
it is refactored into a new paragraph for easy reuse.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoTranslated using Weblate (Swedish)
Göran Uddeborg [Wed, 11 Nov 2020 14:35:51 +0000 (15:35 +0100)]
Translated using Weblate (Swedish)

Currently translated at 6.7% (697 of 10399 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
4 years agoTranslated using Weblate (Finnish)
Ricky Tigg [Wed, 11 Nov 2020 14:35:51 +0000 (15:35 +0100)]
Translated using Weblate (Finnish)

Currently translated at 4.5% (475 of 10399 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/fi/

Co-authored-by: Ricky Tigg <ricky.tigg@gmail.com>
Signed-off-by: Ricky Tigg <ricky.tigg@gmail.com>
4 years agoqemu: Move qemuExtDevicesStop() before removing the pidfiles
Masayoshi Mizuma [Wed, 11 Nov 2020 13:35:24 +0000 (08:35 -0500)]
qemu: Move qemuExtDevicesStop() before removing the pidfiles

A qemu guest which has virtiofs config fails to start if the previous
starting failed because of invalid option or something.

That's because the virtiofsd isn't killed by virPidFileForceCleanupPath()
on the former failure because the pidfile was already removed by
virFileDeleteTree(priv->libDir) in qemuProcessStop(), so
virPidFileForceCleanupPath() just returned.

Move qemuExtDevicesStop() before virFileDeleteTree(priv->libDir) so that
virPidFileForceCleanupPath() can kill virtiofsd correctly.

For example of the reproduction:

  # virsh start guest
  error: Failed to start domain guest
  error: internal error: process exited while connecting to monitor: qemu-system-x86_64: -foo: invalid option

  ... fix the option ...

  # virsh start guest
  error: Failed to start domain guest
  error: Cannot open log file: '/var/log/libvirt/qemu/guest-fs0-virtiofsd.log': Device or resource busy
  #

Signed-off-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoschema: Add support for high TSC frequency
Jiri Denemark [Tue, 10 Nov 2020 16:50:46 +0000 (17:50 +0100)]
schema: Add support for high TSC frequency

The unsignedInt XML schema type allows for values up to 2^32 - 1, i.e.,
using 4294967296 or greater TSC frequency would fail schema validation.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
4 years agodomain_conf: make virDomainVsockDefFormat() void
Matt Coleman [Fri, 6 Nov 2020 03:33:04 +0000 (22:33 -0500)]
domain_conf: make virDomainVsockDefFormat() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainShmemDefFormat() void
Matt Coleman [Fri, 6 Nov 2020 03:33:03 +0000 (22:33 -0500)]
domain_conf: make virDomainShmemDefFormat() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainPanicDefFormat() void
Matt Coleman [Fri, 6 Nov 2020 03:33:02 +0000 (22:33 -0500)]
domain_conf: make virDomainPanicDefFormat() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainLeaseInsert() void
Matt Coleman [Fri, 6 Nov 2020 03:33:01 +0000 (22:33 -0500)]
domain_conf: make virDomainLeaseInsert() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainLeaseInsertPreAlloc() void
Matt Coleman [Fri, 6 Nov 2020 03:33:00 +0000 (22:33 -0500)]
domain_conf: make virDomainLeaseInsertPreAlloc() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: use g_renew in virDomainLeaseInsertPreAlloc()
Matt Coleman [Fri, 6 Nov 2020 03:32:59 +0000 (22:32 -0500)]
domain_conf: use g_renew in virDomainLeaseInsertPreAlloc()

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainControllerInsert() void
Matt Coleman [Fri, 6 Nov 2020 03:32:58 +0000 (22:32 -0500)]
domain_conf: make virDomainControllerInsert() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainDiskInsert() void
Matt Coleman [Fri, 6 Nov 2020 03:32:57 +0000 (22:32 -0500)]
domain_conf: make virDomainDiskInsert() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: use g_renew in virDomainDiskInsert() and virDomainControllerInsert()
Matt Coleman [Fri, 6 Nov 2020 03:32:56 +0000 (22:32 -0500)]
domain_conf: use g_renew in virDomainDiskInsert() and virDomainControllerInsert()

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainDiskSetBlockIOTune() void
Matt Coleman [Fri, 6 Nov 2020 03:32:54 +0000 (22:32 -0500)]
domain_conf: make virDomainDiskSetBlockIOTune() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainChrSourceDefFormat() void
Matt Coleman [Fri, 6 Nov 2020 03:32:53 +0000 (22:32 -0500)]
domain_conf: make virDomainChrSourceDefFormat() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainDefFormatBlkiotune() void
Matt Coleman [Fri, 6 Nov 2020 03:32:52 +0000 (22:32 -0500)]
domain_conf: make virDomainDefFormatBlkiotune() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainIOMMUDefFormat() void
Matt Coleman [Fri, 6 Nov 2020 03:32:51 +0000 (22:32 -0500)]
domain_conf: make virDomainIOMMUDefFormat() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainRedirFilterDefFormat() void
Matt Coleman [Fri, 6 Nov 2020 03:32:50 +0000 (22:32 -0500)]
domain_conf: make virDomainRedirFilterDefFormat() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainVirtioNetGuestOpts/HostOpts/DriverFormat() void
Matt Coleman [Fri, 6 Nov 2020 03:32:49 +0000 (22:32 -0500)]
domain_conf: make virDomainVirtioNetGuestOpts/HostOpts/DriverFormat() void

These functions always return zero, so they might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainControllerDriverFormat() void
Matt Coleman [Fri, 6 Nov 2020 03:32:48 +0000 (22:32 -0500)]
domain_conf: make virDomainControllerDriverFormat() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainDiskDefFormatDriver() void
Matt Coleman [Fri, 6 Nov 2020 03:32:47 +0000 (22:32 -0500)]
domain_conf: make virDomainDiskDefFormatDriver() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainDiskDefFormatIotune() void
Matt Coleman [Fri, 6 Nov 2020 03:32:46 +0000 (22:32 -0500)]
domain_conf: make virDomainDiskDefFormatIotune() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainDiskSourceFormatNetwork() void
Matt Coleman [Fri, 6 Nov 2020 03:32:45 +0000 (22:32 -0500)]
domain_conf: make virDomainDiskSourceFormatNetwork() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainLeaseDefFormat() void
Matt Coleman [Fri, 6 Nov 2020 03:32:44 +0000 (22:32 -0500)]
domain_conf: make virDomainLeaseDefFormat() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainGraphicsDefParseXMLEGLHeadless() void
Matt Coleman [Fri, 6 Nov 2020 03:32:43 +0000 (22:32 -0500)]
domain_conf: make virDomainGraphicsDefParseXMLEGLHeadless() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainChr/RNG/Video/VsockDefPostParse() and virDomainNVRAMDefFor...
Matt Coleman [Fri, 6 Nov 2020 03:32:41 +0000 (22:32 -0500)]
domain_conf: make virDomainChr/RNG/Video/VsockDefPostParse() and virDomainNVRAMDefFormat() void

These functions always return zero, so they might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainDeviceInfoFormat() void
Matt Coleman [Fri, 6 Nov 2020 03:32:42 +0000 (22:32 -0500)]
domain_conf: make virDomainDeviceInfoFormat() void

This function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainHostdevAssignAddress() void
Matt Coleman [Fri, 6 Nov 2020 03:32:40 +0000 (22:32 -0500)]
domain_conf: make virDomainHostdevAssignAddress() void

The function always returns zero, so it might as well be void.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainPostParseCheckISCSIPath() void
Matt Coleman [Fri, 6 Nov 2020 03:32:38 +0000 (22:32 -0500)]
domain_conf: make virDomainPostParseCheckISCSIPath() void

The function only returns zero or aborts, so it might as well be void.
This has the added benefit of simplifying the code that calls it.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodomain_conf: make virDomainDiskSetDriver() void
Matt Coleman [Fri, 6 Nov 2020 03:32:37 +0000 (22:32 -0500)]
domain_conf: make virDomainDiskSetDriver() void

The function only returns zero or aborts, so it might as well be void.
This has the added benefit of simplifying the code that calls it.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoscripts: trim "__attribute__((packed))" in RPC struct diff
Daniel P. Berrangé [Fri, 30 Oct 2020 14:43:00 +0000 (14:43 +0000)]
scripts: trim "__attribute__((packed))" in RPC struct diff

i686 builds on x86_64 host on Debian 10 result in the RPC structs
getting "__attribute__((packed))" annotations added to them. This is
harmless since we know the XDR protocol aligns and pads struct fields
suitably on the wire. Thus we can safely cull the attribute before doing
the diff comparison.

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agogitlab: run unit tests in i686 cross build
Daniel P. Berrangé [Thu, 29 Oct 2020 17:32:28 +0000 (17:32 +0000)]
gitlab: run unit tests in i686 cross build

In most cross builds we can't run tests since we can't assume QEMU user
mode emulators are loaded. i686 is special though because x86_64 can run
i686 natively, so we should run unit tests there.

The key benefit is that this gives us 32-bit unit test coverage in CI.

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoAdd lifecycle action completion to set-lifecycle-action command
Lin Ma [Tue, 10 Nov 2020 09:51:04 +0000 (17:51 +0800)]
Add lifecycle action completion to set-lifecycle-action command

Signed-off-by: Lin Ma <lma@suse.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add lifecycle type completion to set-lifecycle-action command
Lin Ma [Tue, 10 Nov 2020 09:51:03 +0000 (17:51 +0800)]
virsh: Add lifecycle type completion to set-lifecycle-action command

Signed-off-by: Lin Ma <lma@suse.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add signal name completion to send-process-signal command
Lin Ma [Tue, 10 Nov 2020 09:51:02 +0000 (17:51 +0800)]
virsh: Add signal name completion to send-process-signal command

Signed-off-by: Lin Ma <lma@suse.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Move/add some of function declarations to virsh-domain.h
Lin Ma [Tue, 10 Nov 2020 09:51:01 +0000 (17:51 +0800)]
virsh: Move/add some of function declarations to virsh-domain.h

The upcoming patches introduce completers into virsh-completer-domain.c,
They will invoke the functions which are defined in virsh-domain.c, So
these functions need to be declared in virsh-domain.h.

Signed-off-by: Lin Ma <lma@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add mac completion to net-dhcp-leases command
Lin Ma [Tue, 10 Nov 2020 09:51:00 +0000 (17:51 +0800)]
virsh: Add mac completion to net-dhcp-leases command

Signed-off-by: Lin Ma <lma@suse.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovsh: Fix completion error in case of multiple mac addresses
Lin Ma [Tue, 10 Nov 2020 09:50:59 +0000 (17:50 +0800)]
vsh: Fix completion error in case of multiple mac addresses

We know that the bash completer automatically handle colon by preceding
it with an escape character backslash.
While our bash autompletion file vsh completes multiple items, In case
there're multiple items which have same prefix and the content of completion
items contain colon(say mac address), The vsh needs to correctly hands
the backslash which are added by bash completer, Otherwise the completion
won't be successful. This patch fixes this problem.

e.g.:

 # virsh domiflist --domain VM
 Interface   Type      Source    Model    MAC
-------------------------------------------------------------
 vnet0       network   default   virtio   52:54:00:fb:7b:f5
 vnet1       bridge    br0       virtio   52:54:00:80:1b:21

Before:
 # virsh detach-interface --domain VM --mac <TAB>
 # virsh detach-interface --domain VM --mac 52\:54\:00\:<TAB><TAB>

After:
 # virsh detach-interface --domain VM --mac <TAB>
 # virsh detach-interface --domain VM --mac 52\:54\:00\:<TAB><TAB>
 52:54:00:80:1b:21  52:54:00:fb:7b:f5
 # virsh detach-interface --domain VM --mac 52\:54\:00\:

Signed-off-by: Lin Ma <lma@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add interface name completion to iface-mac command
Lin Ma [Tue, 10 Nov 2020 09:50:58 +0000 (17:50 +0800)]
virsh: Add interface name completion to iface-mac command

Signed-off-by: Lin Ma <lma@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add interface name completion to iface-bridge command
Lin Ma [Tue, 10 Nov 2020 09:50:57 +0000 (17:50 +0800)]
virsh: Add interface name completion to iface-bridge command

Signed-off-by: Lin Ma <lma@suse.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add interface mac completion to iface-name command
Lin Ma [Tue, 10 Nov 2020 09:50:56 +0000 (17:50 +0800)]
virsh: Add interface mac completion to iface-name command

Signed-off-by: Lin Ma <lma@suse.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh-interface: Add a static helper virshInterfaceStringHelper
Lin Ma [Tue, 10 Nov 2020 09:50:55 +0000 (17:50 +0800)]
virsh-interface: Add a static helper virshInterfaceStringHelper

It will be helpful to get the desired string of interface name/mac in a
consistent way.

Signed-off-by: Lin Ma <lma@suse.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add serial/parallel device name completion to console command
Lin Ma [Tue, 10 Nov 2020 09:50:54 +0000 (17:50 +0800)]
virsh: Add serial/parallel device name completion to console command

Signed-off-by: Lin Ma <lma@suse.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add logical CPU IDs completion for nodecpustats command
Lin Ma [Tue, 10 Nov 2020 09:50:53 +0000 (17:50 +0800)]
virsh: Add logical CPU IDs completion for nodecpustats command

Signed-off-by: Lin Ma <lma@suse.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add vcpu list completion to guestvcpus command
Lin Ma [Tue, 10 Nov 2020 09:50:52 +0000 (17:50 +0800)]
virsh: Add vcpu list completion to guestvcpus command

Signed-off-by: Lin Ma <lma@suse.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirgdbus: fix getting non-shared DBus connection
Pavel Hrdina [Mon, 9 Nov 2020 16:10:56 +0000 (17:10 +0100)]
virgdbus: fix getting non-shared DBus connection

We need to pass some flags in order to properly initialize the
connection otherwise it will not work. This copies what GLib does
for g_bus_get_sync() internally.

This fixes an issue with LXC driver where libvirt was not able to
register any VM with machined.

Reported-by: Matthias Maier <tamiko@gentoo.org>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agomeson: drop use of .path() for python args
Daniel P. Berrangé [Mon, 9 Nov 2020 13:52:10 +0000 (13:52 +0000)]
meson: drop use of .path() for python args

When using .path() for an argument to a python script meson will not
setup dependancies on the file. This means that changes to the generator
script will not trigger a rebiuld

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agomeson: ensure python script is run in utf8 env
Daniel P. Berrangé [Mon, 9 Nov 2020 14:05:01 +0000 (14:05 +0000)]
meson: ensure python script is run in utf8 env

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoFix name prefix of VIR_DOMAIN_CHECKPOINT_REDEFINE_VALIDATE
Daniel P. Berrangé [Mon, 9 Nov 2020 16:14:53 +0000 (16:14 +0000)]
Fix name prefix of VIR_DOMAIN_CHECKPOINT_REDEFINE_VALIDATE

The enum constant names should all have a prefix that matches the enum
name. VIR_DOMAIN_CHECKPOINT_REDEFINE_VALIDATE was missing the "CREATE_"
part of the name prefix.

Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agonews: drop support for Windows versions prior to 2012R2
Matt Coleman [Mon, 9 Nov 2020 08:43:13 +0000 (03:43 -0500)]
news: drop support for Windows versions prior to 2012R2

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Matt Coleman <matt@datto.com>
4 years agodocs: drop support for Windows versions prior to 2012R2
Matt Coleman [Mon, 9 Nov 2020 08:43:12 +0000 (03:43 -0500)]
docs: drop support for Windows versions prior to 2012R2

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Matt Coleman <matt@datto.com>
4 years agohyperv: do not generate *_CLASSNAME constants
Matt Coleman [Mon, 9 Nov 2020 08:43:11 +0000 (03:43 -0500)]
hyperv: do not generate *_CLASSNAME constants

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Matt Coleman <matt@datto.com>
4 years agohyperv: remove hypervWmiClassInfoList, hypervWmiClassInfoListPtr, and _hypervWmiClass...
Matt Coleman [Mon, 9 Nov 2020 08:43:10 +0000 (03:43 -0500)]
hyperv: remove hypervWmiClassInfoList, hypervWmiClassInfoListPtr, and _hypervWmiClassInfoList

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Matt Coleman <matt@datto.com>
4 years agohyperv: remove support for multiple API versions from the WMI generator
Matt Coleman [Mon, 9 Nov 2020 08:43:09 +0000 (03:43 -0500)]
hyperv: remove support for multiple API versions from the WMI generator

All Msvm_* classes are assumed to be V2, now.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Matt Coleman <matt@datto.com>
4 years agohyperv: remove V1 classes from the WMI generator input
Daniel P. Berrangé [Mon, 9 Nov 2020 14:51:37 +0000 (14:51 +0000)]
hyperv: remove V1 classes from the WMI generator input

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Matt Coleman <matt@datto.com>
4 years agohyperv: remove hypervPrivate->wmiVersion
Matt Coleman [Mon, 9 Nov 2020 08:43:08 +0000 (03:43 -0500)]
hyperv: remove hypervPrivate->wmiVersion

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Matt Coleman <matt@datto.com>
4 years agoviridentitytest: Run more frequently
Michal Privoznik [Fri, 6 Nov 2020 08:58:33 +0000 (09:58 +0100)]
viridentitytest: Run more frequently

The viridentitytest tests our viridentity module which is
compiled on all platforms and OSes. There is no need to have
SELinux secdriver as individual test cases are skipped if SELinux
is missing.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
4 years agorpm: more fixes for disabling features
Daniel P. Berrangé [Mon, 2 Nov 2020 11:07:39 +0000 (11:07 +0000)]
rpm: more fixes for disabling features

The %meson macro sets "--auto-features=enabled", so it is not enough to
disable the driver options, we must also disable any library options
which the drivers depend on.

Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoqemustatusxml2xmltest: Remove 'virdeterministichash' mocking
Peter Krempa [Mon, 9 Nov 2020 12:23:25 +0000 (13:23 +0100)]
qemustatusxml2xmltest: Remove 'virdeterministichash' mocking

Commit 89a3115bac2c92ac67516 was not updated after recent changes to
hash table usage and was still referencing the now removed deterministic
hash mock, which caused CI failure.

Fixes: 89a3115bac2c92ac67516d04df6a45769f69a37c
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
4 years agoqemu: backup: Add partial validation of incremental backup checkpoint
Peter Krempa [Wed, 4 Nov 2020 12:37:35 +0000 (13:37 +0100)]
qemu: backup: Add partial validation of incremental backup checkpoint

Verify that the checkpoint requested by an incremental backup exists.
Unfortunately validating whether the checkpoint configuration actually
matches the disk may not be reasonably feasible as the disk may have
been renamed/snapshotted/etc. We still rely on bitmap presence.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agoqemu: checkpoint: Implement VIR_DOMAIN_CHECKPOINT_REDEFINE_VALIDATE
Peter Krempa [Wed, 4 Nov 2020 09:16:02 +0000 (10:16 +0100)]
qemu: checkpoint: Implement VIR_DOMAIN_CHECKPOINT_REDEFINE_VALIDATE

Validate that the bitmaps are present when redefining a checkpoint.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agoconf: checkpoint: Split virDomainCheckpointRedefinePrep into two functions
Peter Krempa [Wed, 4 Nov 2020 09:10:56 +0000 (10:10 +0100)]
conf: checkpoint: Split virDomainCheckpointRedefinePrep into two functions

First one prepares and validates the definition, the second one actually
either updates an existing checkpoint or assigns definition for the new
one.

This will allow driver code to add extra validation between those
steps.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirsh: checkpoint-create: Add support for VIR_DOMAIN_CHECKPOINT_REDEFINE_VALIDATE
Peter Krempa [Tue, 3 Nov 2020 11:49:11 +0000 (12:49 +0100)]
virsh: checkpoint-create: Add support for VIR_DOMAIN_CHECKPOINT_REDEFINE_VALIDATE

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>