]> git.ipfire.org Git - thirdparty/libvirt.git/log
thirdparty/libvirt.git
4 years agotests: cover disk, interface <backenddomain>
Cole Robinson [Sun, 4 Oct 2020 16:51:48 +0000 (12:51 -0400)] 
tests: cover disk, interface <backenddomain>

There is present no XML test coverage for this.
Add genericxml parse + formatting coverage.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
4 years agocpu: Modify virCPUarmCompare to perform compare actions
Zhenyu Zheng [Thu, 24 Sep 2020 14:12:21 +0000 (22:12 +0800)] 
cpu: Modify virCPUarmCompare to perform compare actions

Modify virCPUarmCompare in cpu_arm.c to perform compare action.
This patch only adds host to host CPU compare, the rest cases
remains the same. This is useful for source and destination host
compare during migrations to avoid migration between different
CPU models that have different CPU freatures.

Signed-off-by: Zhenyu Zheng <zheng.zhenyu@outlook.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agorpm: include aarch64 & riscv64 in systemtap 64-bit arch tapset rename
Daniel P. Berrangé [Mon, 5 Oct 2020 12:53:33 +0000 (13:53 +0100)] 
rpm: include aarch64 & riscv64 in systemtap 64-bit arch tapset rename

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoqemu: use g_new0
Ján Tomko [Mon, 5 Oct 2020 10:28:26 +0000 (12:28 +0200)] 
qemu: use g_new0

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoqemu: firmware: use g_new0
Ján Tomko [Mon, 5 Oct 2020 10:27:57 +0000 (12:27 +0200)] 
qemu: firmware: use g_new0

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoqemu: command: use g_new0
Ján Tomko [Mon, 5 Oct 2020 10:27:32 +0000 (12:27 +0200)] 
qemu: command: use g_new0

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoqemu: process: use g_new0
Ján Tomko [Mon, 5 Oct 2020 10:27:13 +0000 (12:27 +0200)] 
qemu: process: use g_new0

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoqemu: monitor: json: use g_new0
Ján Tomko [Mon, 5 Oct 2020 10:26:34 +0000 (12:26 +0200)] 
qemu: monitor: json: use g_new0

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoqemu: driver: use g_new0
Ján Tomko [Mon, 5 Oct 2020 10:26:20 +0000 (12:26 +0200)] 
qemu: driver: use g_new0

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoqemu: domain: use g_new0
Ján Tomko [Mon, 5 Oct 2020 10:26:10 +0000 (12:26 +0200)] 
qemu: domain: use g_new0

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoqemu: capabilities: use g_new0
Ján Tomko [Mon, 5 Oct 2020 10:25:44 +0000 (12:25 +0200)] 
qemu: capabilities: use g_new0

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoqemu: separate out VIR_ALLOC calls
Ján Tomko [Sun, 4 Oct 2020 19:51:15 +0000 (21:51 +0200)] 
qemu: separate out VIR_ALLOC calls

Move them to separate conditions to reduce churn
in following patches.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoesx: switch esxUtil_ResolveHostname to return a new string
Pino Toscano [Mon, 5 Oct 2020 11:34:25 +0000 (13:34 +0200)] 
esx: switch esxUtil_ResolveHostname to return a new string

Change the interface of esxUtil_ResolveHostname() to return a newly
allocated string with the result address, instead of forcing the callers
to provide a buffer and its size. This way we can simply (auto)free the
string, and make the function stacks smaller.

Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Reviewed-by: Laine Stump <laine@redhat.com>
4 years agoesx: call freeaddrinfo earlier in esxUtil_ResolveHostname
Pino Toscano [Mon, 5 Oct 2020 09:38:09 +0000 (11:38 +0200)] 
esx: call freeaddrinfo earlier in esxUtil_ResolveHostname

Call freeaddrinfo() as soon as @result is not needed anymore, i.e. right
after getnameinfo(); this avoids calling freeaddrinfo() in two branches.

Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Reviewed-by: Laine Stump <laine@redhat.com>
4 years agoqemu: Taint cpu host-passthrough only after migration
Cole Robinson [Sun, 4 Oct 2020 17:51:27 +0000 (13:51 -0400)] 
qemu: Taint cpu host-passthrough only after migration

From a discussion last year[1], Dan recommended libvirt drop the tain
flag for cpu host-passthrough, unless the VM has been migrated.

This repurposes the existing host-cpu taint flag to do just that.

[1]: https://www.redhat.com/archives/virt-tools-list/2019-February/msg00041.html

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

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
4 years agodocs: formatdomain: add spicevmc <redirdev> example
Cole Robinson [Sun, 4 Oct 2020 16:34:21 +0000 (12:34 -0400)] 
docs: formatdomain: add spicevmc <redirdev> example

spicevmc is the most common <redirdev> usage. This adds an XML example
for it.

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
4 years agodocs: formatdomain: fix net downscript 'since'
Cole Robinson [Sun, 4 Oct 2020 16:32:42 +0000 (12:32 -0400)] 
docs: formatdomain: fix net downscript 'since'

It was added in 6.4.0, not 5.1.0

Fixes: 61ba6f09b181ec8c1591dc1df8c3cd8e093ca67b
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
4 years agodocs: formatdomain: fix incorrect 'Vsock' heading indent
Cole Robinson [Sun, 4 Oct 2020 16:29:17 +0000 (12:29 -0400)] 
docs: formatdomain: fix incorrect 'Vsock' heading indent

Currently it is visually at the same indent as <seclabel>. This
fixes it to be grouped it with <devices>

Fixes: d4abb7b45d48aba77c2464dbea95f02a43a60834
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
4 years agodocs: formatdomain: remove doubled filesystem <driver>
Cole Robinson [Sun, 4 Oct 2020 16:27:39 +0000 (12:27 -0400)] 
docs: formatdomain: remove doubled filesystem <driver>

libvirt doesn't reject this but only one <driver> element takes
effect.

Drop the instance that is already referenced in the previous example

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
4 years agoqemu: migration_cookie: s/VIR_FREE/g_free/
Peter Krempa [Fri, 2 Oct 2020 08:11:49 +0000 (10:11 +0200)] 
qemu: migration_cookie: s/VIR_FREE/g_free/

Previous refactors allow us to plainly replace all VIR_FREE by g_free to
finish the modernization of the file.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieXMLParse: Avoid VIR_FREE when parsing lockstate
Peter Krempa [Fri, 2 Oct 2020 08:11:03 +0000 (10:11 +0200)] 
qemuMigrationCookieXMLParse: Avoid VIR_FREE when parsing lockstate

Restructure the control-flow a bit using an temporary variable to avoid
the need to use VIR_FREE.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieAddCaps: Use 'g_new0' instead of VIR_ALLOC
Peter Krempa [Fri, 2 Oct 2020 08:09:25 +0000 (10:09 +0200)] 
qemuMigrationCookieAddCaps: Use 'g_new0' instead of VIR_ALLOC

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieCapsXMLParse: Refactor memory handling
Peter Krempa [Fri, 2 Oct 2020 07:53:54 +0000 (09:53 +0200)] 
qemuMigrationCookieCapsXMLParse: Refactor memory handling

Use modern allocators, automatic memory feeing, and decrease the scope
of some variables to remove the 'cleanup' label.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieNBDXMLParse: Refactor memory handling
Peter Krempa [Fri, 2 Oct 2020 07:53:54 +0000 (09:53 +0200)] 
qemuMigrationCookieNBDXMLParse: Refactor memory handling

Use modern allocators, automatic memory feeing, and decrease the scope
of some variables to remove the 'error' and 'cleanup' labels.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieNetworkXMLParse: Refactor memory handling
Peter Krempa [Fri, 2 Oct 2020 07:53:54 +0000 (09:53 +0200)] 
qemuMigrationCookieNetworkXMLParse: Refactor memory handling

Use modern allocators, automatic memory feeing, and decrease the scope
of some variables to remove the 'error' label.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieXMLFormat: Refactor memory handling
Peter Krempa [Fri, 2 Oct 2020 07:50:37 +0000 (09:50 +0200)] 
qemuMigrationCookieXMLFormat: Refactor memory handling

Use automatic memory freeing to get rid of the 'error' label. Since the
'tmp' variable was used only in one instance, rename it appropriately.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieNetworkAlloc: Refactor memory handling
Peter Krempa [Thu, 1 Oct 2020 09:45:55 +0000 (11:45 +0200)] 
qemuMigrationCookieNetworkAlloc: Refactor memory handling

Use modern memory handling approach to simplify the code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieGraphicsSpiceAlloc: Refactor memory handling
Peter Krempa [Thu, 1 Oct 2020 09:45:55 +0000 (11:45 +0200)] 
qemuMigrationCookieGraphicsSpiceAlloc: Refactor memory handling

Use modern memory handling approach to simplify the code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemu: migration_cookie: Register 'autoptr' functions for internal types
Peter Krempa [Thu, 1 Oct 2020 09:43:09 +0000 (11:43 +0200)] 
qemu: migration_cookie: Register 'autoptr' functions for internal types

Register the the cleanup functions for 'qemuMigrationCookieGraphics',
'qemuMigrationCookieNetwork', 'qemuMigrationCookieNBD', and
'qemuMigrationCookieCaps'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuDomainExtractTLSSubject: Refactor memory handling
Peter Krempa [Thu, 1 Oct 2020 09:09:14 +0000 (11:09 +0200)] 
qemuDomainExtractTLSSubject: Refactor memory handling

Switch to automatic memory cleaning, use g_new0 for allocation and get
rid of the 'error' label.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieXMLFormat: Extract formatting of NBD
Peter Krempa [Wed, 30 Sep 2020 13:54:39 +0000 (15:54 +0200)] 
qemuMigrationCookieXMLFormat: Extract formatting of NBD

Move the code into 'qemuMigrationCookieNBDXMLFormat' and use modern XML
formatting code patterns.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieNetworkXMLFormat: Refactor XML formatting
Peter Krempa [Wed, 30 Sep 2020 13:30:20 +0000 (15:30 +0200)] 
qemuMigrationCookieNetworkXMLFormat: Refactor XML formatting

Use 'virXMLFormatElement' both for formating the whole <network> element
but also for formatting the <interface> subelements. This alows to
remove the crazy logic which was determining which element was already
formatted.

Additional simplification is achieved by switching to skipping the loop
using 'continue' rather than putting everything in a giant block.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieGraphicsXMLFormat: Use 'virXMLFormatElement'
Peter Krempa [Wed, 30 Sep 2020 13:24:19 +0000 (15:24 +0200)] 
qemuMigrationCookieGraphicsXMLFormat: Use 'virXMLFormatElement'

Switch to the two buffer approach to simplify the logic for terminating
the element.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieXMLParse: Remove 'error' label
Peter Krempa [Wed, 30 Sep 2020 13:06:11 +0000 (15:06 +0200)] 
qemuMigrationCookieXMLParse: Remove 'error' label

Now it only returns -1 so we can do that directly.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieXMLParse: Remove comment mentioning that error was already set
Peter Krempa [Wed, 30 Sep 2020 13:04:45 +0000 (15:04 +0200)] 
qemuMigrationCookieXMLParse: Remove comment mentioning that error was already set

Most of our functions report errors so there's no need to mention it
here again.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieXMLParse: Decrease scope of 'nodes' and use automatic freeing
Peter Krempa [Wed, 30 Sep 2020 13:03:59 +0000 (15:03 +0200)] 
qemuMigrationCookieXMLParse: Decrease scope of 'nodes' and use automatic freeing

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieXMLParse: Check domain element count more defensively
Peter Krempa [Wed, 30 Sep 2020 13:00:43 +0000 (15:00 +0200)] 
qemuMigrationCookieXMLParse: Check domain element count more defensively

Make sure that 'virXPathNodeSet' returns '1' as the only expected value
rather than relying on the fact that the previous check for the number
of elements ensures success of the subsequent call.

The error message no longer mentions the number of <domain> elements in
the cookie, but this is a very unlikely internal error anyways.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuMigrationCookieXMLParse: Switch to single-purpose temporary variables
Peter Krempa [Wed, 30 Sep 2020 12:58:26 +0000 (14:58 +0200)] 
qemuMigrationCookieXMLParse: Switch to single-purpose temporary variables

Don't reuse 'tmp' over and over, but switch to single use automaticaly
freed variables instead.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemu: migration_cookie: Extract parsing/validation of mandatory features
Peter Krempa [Wed, 30 Sep 2020 12:31:47 +0000 (14:31 +0200)] 
qemu: migration_cookie: Extract parsing/validation of mandatory features

Move the code into 'qemuMigrationCookieXMLParseMandatoryFeatures' to
simplify 'qemuMigrationCookieXMLParse'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoqemuDomainFilterHotplugVcpuEntities: Refactor memory freeing to remove 'cleanup'...
Peter Krempa [Fri, 2 Oct 2020 08:39:23 +0000 (10:39 +0200)] 
qemuDomainFilterHotplugVcpuEntities: Refactor memory freeing to remove 'cleanup' label

After recent refactors the function can be refactored to remove the
'cleanup' label by using autoptr for the 'map' variable.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirDomainResctrlNew: Refactor allocation to remove 'cleanup' label
Peter Krempa [Fri, 2 Oct 2020 08:36:59 +0000 (10:36 +0200)] 
virDomainResctrlNew: Refactor allocation to remove 'cleanup' label

If we use g_new0 there's no need for the 'cleanup' label as there's
nothing to fail after the allocation.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: virbitmap: Remove virBitmapCopy
Peter Krempa [Fri, 2 Oct 2020 08:28:51 +0000 (10:28 +0200)] 
util: virbitmap: Remove virBitmapCopy

The function is now unused.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agoUse 'virBitmapNewCopy' instead of 'virBitmapCopy'
Peter Krempa [Fri, 2 Oct 2020 08:26:34 +0000 (10:26 +0200)] 
Use 'virBitmapNewCopy' instead of 'virBitmapCopy'

There are only 3 places using the function. Two can use virBitmapNewCopy
directly. In case of the qemu capabilities code we need to free the old
bitmap first.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agoDon't check return value of virBitmapNewCopy
Peter Krempa [Fri, 2 Oct 2020 08:34:53 +0000 (10:34 +0200)] 
Don't check return value of virBitmapNewCopy

The function will not fail any more.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirBitmapNewCopy: Reimplement bitmap copying to prevent failure
Peter Krempa [Fri, 2 Oct 2020 08:22:18 +0000 (10:22 +0200)] 
virBitmapNewCopy: Reimplement bitmap copying to prevent failure

virBitmapCopy has a failure condition, which is impossible to meet when
creating a new copy. Copy the contents directly to make it obvious that
virBitmapNewCopy can't fail.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirBitmapNew: Don't check return value
Peter Krempa [Thu, 1 Oct 2020 15:42:11 +0000 (17:42 +0200)] 
virBitmapNew: Don't check return value

Remove return value check from all callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: bitamp: Remove virBitmapNewEmpty
Peter Krempa [Thu, 1 Oct 2020 15:02:16 +0000 (17:02 +0200)] 
util: bitamp: Remove virBitmapNewEmpty

It can be replaced by virBitmapNew(0).

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirbitmaptest: Remove unnecessary error/cleanup labels
Peter Krempa [Thu, 1 Oct 2020 14:36:05 +0000 (16:36 +0200)] 
virbitmaptest: Remove unnecessary error/cleanup labels

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirbitmaptest: Use g_auto(free) for cleanup
Peter Krempa [Thu, 1 Oct 2020 14:26:51 +0000 (16:26 +0200)] 
virbitmaptest: Use g_auto(free) for cleanup

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirbitmaptest: Refactor checks in 'test6'
Peter Krempa [Mon, 5 Oct 2020 10:10:42 +0000 (12:10 +0200)] 
virbitmaptest: Refactor checks in 'test6'

The 'checkBitmap' helper uses 'virBitmapFormat' internally and also
reports better errors. Use it instead of the open-coded checks.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirbitmaptest: Turn 'TEST_MAP' macro into a helper function
Peter Krempa [Mon, 5 Oct 2020 10:06:14 +0000 (12:06 +0200)] 
virbitmaptest: Turn 'TEST_MAP' macro into a helper function

The function will also be reusable in other places of the code by making
the size check optional. For now only test12* is refactored since it
used TEST_MAP directly.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirbitmaptest: Use separate output strings in 'test5'
Peter Krempa [Mon, 5 Oct 2020 09:28:14 +0000 (11:28 +0200)] 
virbitmaptest: Use separate output strings in 'test5'

The test validates two outputs. Don't reuse 'str' for both.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirbitmaptest: Split up test4
Peter Krempa [Mon, 5 Oct 2020 09:17:38 +0000 (11:17 +0200)] 
virbitmaptest: Split up test4

'test4' was testing three distinct operations on separate instances of a
bitmap. Split it up into 'test4a', 'test4b' and 'test4c' so that the
'bitmap' variable is not reused.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirbitmaptest: Split up test12
Peter Krempa [Mon, 5 Oct 2020 09:17:38 +0000 (11:17 +0200)] 
virbitmaptest: Split up test12

'test12' was testing two distinct operations on two instances of a
bitmap. Split it up into 'test12a' and 'test12b' so that the 'bitmap'
variable is not reused.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agorpm: drop ia64, sparc64 and alpha architectures
Daniel P. Berrangé [Mon, 5 Oct 2020 12:17:02 +0000 (13:17 +0100)] 
rpm: drop ia64, sparc64 and alpha architectures

None of these arches are relevant to current Fedora or RHEL distros.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agovbox: use g_new0 instead of VIR_ALLOC
Ján Tomko [Wed, 30 Sep 2020 13:07:09 +0000 (15:07 +0200)] 
vbox: use g_new0 instead of VIR_ALLOC

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agovbox: refactor vboxNetworkGetXMLDesc a bit
Ján Tomko [Fri, 2 Oct 2020 18:02:48 +0000 (20:02 +0200)] 
vbox: refactor vboxNetworkGetXMLDesc a bit

Error out on allocation failure to reduce the nesting.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agovbox: invert condition in vboxSnapshotGetReadOnlyDisks
Ján Tomko [Sun, 4 Oct 2020 21:18:06 +0000 (23:18 +0200)] 
vbox: invert condition in vboxSnapshotGetReadOnlyDisks

Error out on (impossible) failed allocation, to reduce
indentation.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agovbox: vboxDumpAudio: invert conditions
Ján Tomko [Fri, 2 Oct 2020 17:55:02 +0000 (19:55 +0200)] 
vbox: vboxDumpAudio: invert conditions

Elimination of the positive conditions reduces
the indentation by two levels.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agodocs: use "::" instead of ".. code-block::"
Daniel P. Berrangé [Mon, 5 Oct 2020 10:27:44 +0000 (11:27 +0100)] 
docs: use "::" instead of ".. code-block::"

The former is a short hand for the latter and is already widely used in
the docs. Using the short hand avoids incompatibility with the alternate
impl of rst2html5.

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agovz: use g_new0 instead of VIR_ALLOC
Ján Tomko [Wed, 30 Sep 2020 13:07:29 +0000 (15:07 +0200)] 
vz: use g_new0 instead of VIR_ALLOC

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agovz: vzEatCookie: separate allocation
Ján Tomko [Fri, 2 Oct 2020 18:11:56 +0000 (20:11 +0200)] 
vz: vzEatCookie: separate allocation

Use g_new0 outside of the error condition.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agovz: vzEatCookie: use distinct 'tmp' variables
Ján Tomko [Fri, 2 Oct 2020 18:09:00 +0000 (20:09 +0200)] 
vz: vzEatCookie: use distinct 'tmp' variables

Mark both as g_autofree within their separate scopes.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agovz: separate if conditions in vzEatCookie
Ján Tomko [Fri, 2 Oct 2020 18:06:39 +0000 (20:06 +0200)] 
vz: separate if conditions in vzEatCookie

Create a separate scope where 'tmp' variable can be used.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agovmware: use g_new0 instead of VIR_ALLOC
Ján Tomko [Wed, 30 Sep 2020 13:07:24 +0000 (15:07 +0200)] 
vmware: use g_new0 instead of VIR_ALLOC

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agonews: move section about downscript to v6.4.0
Ján Tomko [Sun, 4 Oct 2020 20:24:00 +0000 (22:24 +0200)] 
news: move section about downscript to v6.4.0

The feature was merged in v6.3.0-175-g61ba6f09b1

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Fixes: 4eda71a8d05d968e73ab9b0fdc8a90123c57d39e
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoAPI: virDomainLookupByID: s/UUId/UUID/
Ján Tomko [Sun, 4 Oct 2020 22:20:22 +0000 (00:20 +0200)] 
API: virDomainLookupByID: s/UUId/UUID/

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Pino Toscano <ptoscano@redhat.com>
4 years agoqemuSlirpNew: Use g_new0 to allocate the slirp object
Peter Krempa [Thu, 1 Oct 2020 15:28:46 +0000 (17:28 +0200)] 
qemuSlirpNew: Use g_new0 to allocate the slirp object

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: bitmap: Remove virBitmapNewQuiet
Peter Krempa [Thu, 1 Oct 2020 14:56:48 +0000 (16:56 +0200)] 
util: bitmap: Remove virBitmapNewQuiet

We no longer report any errors so all callers can be replaced by
virBitmapNew. Additionally virBitmapNew can't return NULL now so error
handling is not necessary.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirBitmapNew: Don't force return value check
Peter Krempa [Thu, 1 Oct 2020 15:42:48 +0000 (17:42 +0200)] 
virBitmapNew: Don't force return value check

We now always return a valid pointer or crash so the return value
doesn't need to be checked.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirBitmapNewQuiet: Don't fail on unlikely overflow scenario
Peter Krempa [Thu, 1 Oct 2020 14:52:30 +0000 (16:52 +0200)] 
virBitmapNewQuiet: Don't fail on unlikely overflow scenario

Modify the condition which would make virBitmapNewQuiet fail to possibly
overallocate by 1 rather than failing.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirbitmaptest: Add few more cases for virBitmapToString
Peter Krempa [Thu, 1 Oct 2020 12:14:21 +0000 (14:14 +0200)] 
virbitmaptest: Add few more cases for virBitmapToString

Test an empty bitmap including it's extension via the self-expanding
APIs and and a "0" and "" strings when converting the string back and
forth.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: virbitmap: Don't forbid 0 size bitmap
Peter Krempa [Thu, 1 Oct 2020 14:45:59 +0000 (16:45 +0200)] 
util: virbitmap: Don't forbid 0 size bitmap

We now have APIs which automatically expand the bitmap and also API
which allocates a 0 size bitmap. Remove the condition from virBitmapNew.

Effectively reverts ce49cfb48ad

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirbitmaptest: test13: Refactor memory cleanup
Peter Krempa [Thu, 1 Oct 2020 14:16:21 +0000 (16:16 +0200)] 
virbitmaptest: test13: Refactor memory cleanup

Move scope of variables and get rid of the 'cleanup' section.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirBitmapToString: Properly handle empty bitmaps
Peter Krempa [Thu, 1 Oct 2020 12:13:37 +0000 (14:13 +0200)] 
virBitmapToString: Properly handle empty bitmaps

virBitmapNewEmpty() can create a bitmap with 0 length. With such a
bitmap virBitmapToString will return NULL rather than an empty string.
Initialize the buffer to avoid that.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirBitmapToString|virBitmapNewString: Clarify semantics of the 'string'
Peter Krempa [Thu, 1 Oct 2020 13:52:34 +0000 (15:52 +0200)] 
virBitmapToString|virBitmapNewString: Clarify semantics of the 'string'

Clarify which bit is considered most significant in the bitmap and
resulting string. Also be explicit that it's a hex string.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirBitmapToString: Remove unused 'prefix' and 'trim' arguments
Peter Krempa [Thu, 1 Oct 2020 13:22:24 +0000 (15:22 +0200)] 
virBitmapToString: Remove unused 'prefix' and 'trim' arguments

There's only one combination used so we can remove the rest.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agovirQEMUCapsFlagsString: Remove unused function
Peter Krempa [Thu, 1 Oct 2020 12:11:42 +0000 (14:11 +0200)] 
virQEMUCapsFlagsString: Remove unused function

Unused since a7424faff0fe8270c18d5e9e3befcfd2822d421f

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agoexamples: fix misc spelling errors reported by codespell
Daniel P. Berrangé [Fri, 2 Oct 2020 14:07:27 +0000 (15:07 +0100)] 
examples: fix misc spelling errors reported by codespell

Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agotools: fix misc spelling errors reported by codespell
Daniel P. Berrangé [Fri, 2 Oct 2020 14:07:27 +0000 (15:07 +0100)] 
tools: fix misc spelling errors reported by codespell

Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agotests: fix misc spelling errors reported by codespell
Daniel P. Berrangé [Fri, 2 Oct 2020 14:07:27 +0000 (15:07 +0100)] 
tests: fix misc spelling errors reported by codespell

Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agosrc: fix misc spelling errors reported by codespell
Daniel P. Berrangé [Fri, 2 Oct 2020 14:07:27 +0000 (15:07 +0100)] 
src: fix misc spelling errors reported by codespell

Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agodocs: fix misc spelling errors reported by codespell
Daniel P. Berrangé [Fri, 2 Oct 2020 14:07:27 +0000 (15:07 +0100)] 
docs: fix misc spelling errors reported by codespell

Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agovircommand.c: write child pidfile before process tuning in virExec()
Daniel Henrique Barboza [Thu, 1 Oct 2020 13:34:24 +0000 (10:34 -0300)] 
vircommand.c: write child pidfile before process tuning in virExec()

When VIR_EXEC_DAEMON is true and cmd->pidfile exists, the parent
will expect the pidfile to be written before exiting, sitting
tight in a saferead() call waiting.

The child then does process tuning (via virProcessSet* functions)
before writing the pidfile. Problem is that these tunings can
fail, and trigger a 'fork_error' jump, before cmd->pidfile is
written. The result is that the process was aborted in the
child, but the parent is still hang in the saferead() call.

This behavior can be reproduced by trying to create and execute
a QEMU guest in user mode (e.g. using qemu:///session as non-root).
virProcessSetMaxMemLock() will fail if the spawned libvirtd user
process does not have CAP_SYS_RESOURCE capability. setrlimit() will
fail, and a 'fork_error' jump is triggered before cmd->pidfile
is written. The parent will hung in saferead() indefinitely. From
the user perspective, 'virsh start <guest>' will hang up
indefinitely. CTRL+C can be used to retrieve the terminal, but
any subsequent 'virsh' call will also hang because the previous
libvirtd user process is still there.

We can fix this by moving all virProcessSet*() tuning functions
to be executed after cmd->pidfile is taken care of. In the case
mentioned above, this would be the result of 'virsh start'
after this patch:

error: Failed to start domain vm1
error: internal error: Process exited prior to exec: libvirt:  error :
cannot limit locked memory to 79691776: Operation not permitted

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

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
4 years agoNEWS: mention CVE-2020-25637 in v6.8.0 release notes
Mauro Matteo Cascella [Fri, 2 Oct 2020 11:09:35 +0000 (13:09 +0200)] 
NEWS: mention CVE-2020-25637 in v6.8.0 release notes

Signed-off-by: Mauro Matteo Cascella <mcascell@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agodocs: glib-adoption: add string arrays and objects
Ján Tomko [Thu, 24 Sep 2020 12:15:52 +0000 (14:15 +0200)] 
docs: glib-adoption: add string arrays and objects

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
4 years agodocs: glib-adoption: add links to GLib documentation
Ján Tomko [Thu, 24 Sep 2020 12:07:20 +0000 (14:07 +0200)] 
docs: glib-adoption: add links to GLib documentation

Make life a bit easier for people unfamiliar with GLib.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
4 years agodocs: glib-adoption: split into sections
Ján Tomko [Thu, 24 Sep 2020 11:50:49 +0000 (13:50 +0200)] 
docs: glib-adoption: split into sections

Although all the mentioned functions deal with
allocation, replacing the pure allocation
functions is easier than converting code to
use GArrays.

Split them out to encourage usage of GLib
allocation APIs even at the cost of them
being combined with VIR_*ELEMENT APIs.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
4 years agodocs: glib-adoption: remove stuff we alredy removed
Ján Tomko [Thu, 24 Sep 2020 11:22:46 +0000 (13:22 +0200)] 
docs: glib-adoption: remove stuff we alredy removed

https://www.redhat.com/archives/libvir-list/2020-May/msg00299.html

Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
4 years agodocs: build glib-adoption.html
Ján Tomko [Thu, 24 Sep 2020 12:22:17 +0000 (14:22 +0200)] 
docs: build glib-adoption.html

We switched to meson in the meantime so the conversion
to HTML has to be explicitly requested.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
4 years agoRevert "docs: Drop glib-adoption.rst"
Ján Tomko [Thu, 24 Sep 2020 07:11:17 +0000 (09:11 +0200)] 
Revert "docs: Drop glib-adoption.rst"

Cleaning up after Andrea as he requested:
https://www.redhat.com/archives/libvir-list/2020-May/msg00405.html

This reverts commit 842d3712ed612f213b454e610cc7ff9db2321803

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
4 years agoRevert "Also look for dmi information in /sys/class"
Ján Tomko [Wed, 30 Sep 2020 16:44:53 +0000 (18:44 +0200)] 
Revert "Also look for dmi information in /sys/class"

Assume nobody runs current libvirt on kernels such as 2.6.26.

Kernel commit 9f9c9cbb60576a1518d0bf93fb8e499cffccf377 (released
in 3.8) mentions the new path and I believe it was added by:
commit 948af1f0bbc8526448e8cbe3f8d3bf211bdf5181
    firmware: Basic dmi-sysfs support
(released in 2.6.39), but I cannot figure out how all that
kernel automagic works.

This reverts commit 4c81b0fdc57b23d80b1b4752cd6143d15c02e9c8

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovmx; Free @checkMACAddress in virVMXParseEthernet()
Michal Privoznik [Fri, 2 Oct 2020 08:39:58 +0000 (10:39 +0200)] 
vmx; Free @checkMACAddress in virVMXParseEthernet()

The @checkMACAddress string is allocated in
virVMXGetConfigString() but never freed.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
4 years agovirfirewalltest: Don't duplicate string when adding it onto stringlist
Michal Privoznik [Fri, 2 Oct 2020 08:37:26 +0000 (10:37 +0200)] 
virfirewalltest: Don't duplicate string when adding it onto stringlist

In our wrapper of g_dbus_connection_call_sync() in
virfirewalltest a string is duplicated and added onto a
virStringList. This leads to a memory leak because
virStringListAdd() duplicates the string itself.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
4 years agotests: Set G_DEBUG environment variable
Michal Privoznik [Fri, 2 Oct 2020 08:34:11 +0000 (10:34 +0200)] 
tests: Set G_DEBUG environment variable

With us switching to glib more and more it is easy to get things
wrong (as can be seen in the previous commit). Set G_DEBUG
variable to "fatal-warnings" which causes GLib to abort the
program at the first call to g_warning() or g_critical().

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
4 years agotests: fix incorrect free of GVariant in our GLib mock functions
Pavel Hrdina [Fri, 2 Oct 2020 10:11:45 +0000 (12:11 +0200)] 
tests: fix incorrect free of GVariant in our GLib mock functions

GLib implementation of g_dbus_connection_call_sync() calls
g_variant_ref_sink() on the passed @parameters to make sure they have
proper reference. If the original reference is floating the
g_dbus_connection_call_sync() consumes it, but if it's normal reference
it will just add another one.

Our mock functions were only freeing the @parameters which is incorrect
and doesn't reflect how the real implementation works.

Reported-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agobuild: remove old macvtap and virtualport leftovers
Pino Toscano [Fri, 2 Oct 2020 05:15:18 +0000 (07:15 +0200)] 
build: remove old macvtap and virtualport leftovers

Followup of commit a79e7639daffac04b088378e6c79854fcac292f3 and
commit 7556ab139fd2e503ac26ee232ab273f1ec027c21

Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
4 years agoNEWS: Mention <transient/> disk support for qemu
Peter Krempa [Thu, 24 Sep 2020 11:32:37 +0000 (13:32 +0200)] 
NEWS: Mention <transient/> disk support for qemu

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
4 years agologging: fix endless loop on EOF
Nikolay Shirokovskiy [Thu, 24 Sep 2020 12:54:24 +0000 (15:54 +0300)] 
logging: fix endless loop on EOF

On EOF condition we always have POLLHUP event and read returns
0 thus we never break loop in virLogHandlerDomainLogFileDrain.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agologging: read all bytes on EOF in event handler
Nikolay Shirokovskiy [Thu, 24 Sep 2020 12:47:09 +0000 (15:47 +0300)] 
logging: read all bytes on EOF in event handler

If writing side writes enough bytes to the pipe and closes writing
end then we got both VIR_EVENT_HANDLE_HANGUP and VIR_EVENT_HANDLE_READ
in handler. Currently in this situation handler reads 1024 bytes
and finish reading leaving unread data in pipe.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>