]> xenbits.xensource.com Git - libvirt.git/log
libvirt.git
2 years agoqemu_capabilities: Stop detecting QEMU_CAPS_QUERY_CURRENT_MACHINE
Michal Privoznik [Mon, 7 Nov 2022 13:55:24 +0000 (14:55 +0100)]
qemu_capabilities: Stop detecting QEMU_CAPS_QUERY_CURRENT_MACHINE

All supported QEMUs have this capability. Stop detecting it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Assume QEMU_CAPS_QUERY_CURRENT_MACHINE
Michal Privoznik [Mon, 7 Nov 2022 13:55:04 +0000 (14:55 +0100)]
qemu: Assume QEMU_CAPS_QUERY_CURRENT_MACHINE

Introduced in QEMU's commit of v4.0.0-rc0~202^2~3 the
query-current-machine command is always available for all QEMU
versions we support (4.2.0, currently). Therefore, we can assume
the capability is always set and thus doesn't need to be checked
for.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Retire QEMU_CAPS_QOM_LIST_PROPERTIES
Michal Privoznik [Mon, 7 Nov 2022 11:51:51 +0000 (12:51 +0100)]
qemu: Retire QEMU_CAPS_QOM_LIST_PROPERTIES

Now that nothing uses this capability, it can be retired.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu_capabilities: Stop detecting QEMU_CAPS_QOM_LIST_PROPERTIES
Michal Privoznik [Mon, 7 Nov 2022 13:48:12 +0000 (14:48 +0100)]
qemu_capabilities: Stop detecting QEMU_CAPS_QOM_LIST_PROPERTIES

All supported QEMUs have this capability. Stop detecting it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Assume QEMU_CAPS_QOM_LIST_PROPERTIES
Michal Privoznik [Mon, 7 Nov 2022 13:47:19 +0000 (14:47 +0100)]
qemu: Assume QEMU_CAPS_QOM_LIST_PROPERTIES

Introduced in QEMU's commit of v2.12.0-rc0~48^2~25 the
qom-list-properties command is always available for all QEMU
versions we support (4.2.0, currently). Therefore, we can assume
the capability is always set and thus doesn't need to be checked
for.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Retire QEMU_CAPS_DUMP_COMPLETED
Michal Privoznik [Mon, 7 Nov 2022 13:46:10 +0000 (14:46 +0100)]
qemu: Retire QEMU_CAPS_DUMP_COMPLETED

Now that nothing uses this capability, it can be retired.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu_capabilities: Stop detecting QEMU_CAPS_DUMP_COMPLETED
Michal Privoznik [Mon, 7 Nov 2022 13:45:31 +0000 (14:45 +0100)]
qemu_capabilities: Stop detecting QEMU_CAPS_DUMP_COMPLETED

All supported QEMUs have this capability. Stop detecting it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Assume QEMU_CAPS_DUMP_COMPLETED
Michal Privoznik [Mon, 7 Nov 2022 13:43:02 +0000 (14:43 +0100)]
qemu: Assume QEMU_CAPS_DUMP_COMPLETED

Introduced in QEMU's commit of v2.6.0-rc0~74^2~6 the
DUMP_COMPLETED event is always available for all QEMU versions we
support (4.2.0, currently). Therefore, we can assume the
capability is always set and thus doesn't need to be checked for.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Retire QEMU_CAPS_VSERPORT_CHANGE
Michal Privoznik [Mon, 7 Nov 2022 11:51:23 +0000 (12:51 +0100)]
qemu: Retire QEMU_CAPS_VSERPORT_CHANGE

Now that nothing uses this capability, it can be retired.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu_capabilities: Stop detecting QEMU_CAPS_VSERPORT_CHANGE
Michal Privoznik [Mon, 7 Nov 2022 12:16:47 +0000 (13:16 +0100)]
qemu_capabilities: Stop detecting QEMU_CAPS_VSERPORT_CHANGE

All supported QEMUs have this capability. Stop detecting it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu_agent: Drop @singleSync from _qemuAgent
Michal Privoznik [Mon, 7 Nov 2022 12:16:04 +0000 (13:16 +0100)]
qemu_agent: Drop @singleSync from _qemuAgent

Historically, before sending any guest agent command we would
send 'guest-sync' command to make guest agent reset its internal
state and flush any partially read command (json). This was
because there was no event emitted when the agent
(dis-)connected.

But now that we have the event we can execute the sync command
just once - the first time after we've connected. Should agent
disconnect in the middle of reading a command, and then connect
back again we would get the event and disconnect and connect back
again, resulting in the sync command being executed again.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Assume QEMU_CAPS_VSERPORT_CHANGE
Michal Privoznik [Mon, 7 Nov 2022 12:13:57 +0000 (13:13 +0100)]
qemu: Assume QEMU_CAPS_VSERPORT_CHANGE

Introduced in QEMU's commit of v2.1.0-rc0~18^2~2 the
VSERPORT_CHANGE event is always available for all QEMU versions
we support (4.2.0, currently). Therefore, we can assume the
capability is always set and thus doesn't need to be checked for.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Retire QEMU_CAPS_NUMA
Michal Privoznik [Mon, 7 Nov 2022 09:59:22 +0000 (10:59 +0100)]
qemu: Retire QEMU_CAPS_NUMA

Now that nothing uses this capability, it can be retired.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu_capabilities: Stop detecting QEMU_CAPS_NUMA
Michal Privoznik [Mon, 7 Nov 2022 09:59:13 +0000 (10:59 +0100)]
qemu_capabilities: Stop detecting QEMU_CAPS_NUMA

All supported QEMUs have this capability. Stop detecting it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Assume QEMU_CAPS_NUMA
Michal Privoznik [Mon, 7 Nov 2022 09:58:59 +0000 (10:58 +0100)]
qemu: Assume QEMU_CAPS_NUMA

Introduced in QEMU's commit of v3.0.0-rc0~124^2~1 the
set-numa-node command is always available for all QEMU versions
we support (4.2.0, currently). Therefore, we can assume the
capability is always set and thus doesn't need to be checked for.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agotests: Make qemuAgent single sync
Michal Privoznik [Mon, 7 Nov 2022 17:42:32 +0000 (18:42 +0100)]
tests: Make qemuAgent single sync

The qemuAgent has option to issue guest-sync command before each
intended command or issue the sync commend just once, right after
the socket is opened and before the first intended command is
issued. The latter is referred to as single sync agent and is
enabled by VSERPORT_CHANGED event which allows us to detect
when the agent (dis-)connects in the guest.

Now, every QEMU that we support (4.2.0 or newer) has the event
and thus will use single sync agent. Therefore, adjust
qemuagenttest to make it test what's used in the real world,
rather than old approach.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Acquire QUERY job in qemuDomainQueryWakeupSuspendSupport()
Michal Privoznik [Mon, 7 Nov 2022 13:54:33 +0000 (14:54 +0100)]
qemu: Acquire QUERY job in qemuDomainQueryWakeupSuspendSupport()

The qemuDomainQueryWakeupSuspendSupport() does not change state
of the domain as it just runs 'query-current-machine' QMP
command. Therefore, there's no need for it to acquire MODIFY job,
QUERY job is perfectly okay.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Drop misleading comment for qemuDomainQueryWakeupSuspendSupport()
Michal Privoznik [Mon, 7 Nov 2022 13:53:59 +0000 (14:53 +0100)]
qemu: Drop misleading comment for qemuDomainQueryWakeupSuspendSupport()

The was an attempt to document the retvals for
qemuDomainQueryWakeupSuspendSupport(). However, it's misleading
because in reality, the function can return nothing but 0 or -1,
but the comment implies retval of 1 too.

Since the set of possible return values complies with our
unwritten rule (0 for success, -1 for error), there's no real
value in having the comment and as such can be dropped.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agospec: libvirt-daemon: Add optional dependency on *-client
Jiri Denemark [Thu, 3 Nov 2022 16:11:19 +0000 (17:11 +0100)]
spec: libvirt-daemon: Add optional dependency on *-client

The libvirt-daemon subpackage contains libvirt-guests.sh script (used by
libvirt-guests service), which requires virsh to actually work. But
since dynamic libraries were separated from libvirt-client to
libvirt-libs more than 6 years ago, libvirt-daemon no longer requires
virsh to be installed. So unless libvirt-client is explicitly installed
(either manually or by installing the libvirt meta package),
libvirt-guests will not work.

Just adding libvirt-client as a dependency of libvirt-daemon would go
against the original idea behind splitting libvirt-client: users may not
want to install or use any client binaries on the host where the daemon
runs (either they just use various language bindings or access the
daemon remotely). To solve this we could possibly turn libvirt-daemon
into an empty package and separate the daemons and libvirt-guests into
subpackages to make sure we support both use cases, but marking
libvirt-client as Recommended for libvirt-daemon does the same job in a
much simpler way.

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

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2 years agoconf: Allow > UINT_MAX of cache for NUMA nodes
Lin Yang [Sat, 5 Nov 2022 00:20:20 +0000 (17:20 -0700)]
conf: Allow > UINT_MAX of cache for NUMA nodes

The high-bandwidth memory (HBM) in cache mode might be greater than
UINT_MAX of cache per NUMA node, so change to unsigned long long.

Signed-off-by: Lin Yang <lin.a.yang@intel.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoqemu_agent: Bring back single sync
Michal Privoznik [Mon, 7 Nov 2022 17:17:12 +0000 (18:17 +0100)]
qemu_agent: Bring back single sync

Historically, we had no idea whether the qemu-ga running inside
the guest was running or not. Or whether it crashed in the middle
of reading of a command. That's why we issued guest-sync prior
any intended command, to make the agent flush any partially read
JSON and reset its state machine.

But with VSERPORT_CHANGE event we know when the guest agent
(dis-)connects and thus can issue the sync command just once for
each 'connection'. Whether the agent is synced is tracked in
agent->inSync member, which used to be set to true upon
successful sync. But after rework in v8.0.0-rc1~361 that line is
gone, leaving us with using the historic approach basically.

Fixes: cad84fd51eaac5e3bfdf441f9986e1f2639a0828
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agotests: Drop needless .err files from qemuxml2argvdata/
Michal Privoznik [Mon, 7 Nov 2022 16:03:45 +0000 (17:03 +0100)]
tests: Drop needless .err files from qemuxml2argvdata/

As some qemxml2argvtest cases were removed, we forgot to remove
their expected output counterparts.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: schemas: Include 'privatedata.rng' in installed schema files
Peter Krempa [Mon, 7 Nov 2022 10:56:18 +0000 (11:56 +0100)]
conf: schemas: Include 'privatedata.rng' in installed schema files

The privatedata.rng file was accidentally left uninstalled, but it's
referenced by other schema files effectively breaking validation of XMLs
in new installations.

Change to libvirt.spec is not needed as we include all installed schemas
via a wildcard.

Fixes: d8ceacdc87907a3c8656f7ee815ed32f06fe5c7f
Reported-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2 years agodocs: fix location of :since: 8.1.0 to apply to `isa-debugcon`
Jakub Kuczys [Sun, 6 Nov 2022 05:15:20 +0000 (05:15 +0000)]
docs: fix location of :since: 8.1.0 to apply to `isa-debugcon`

Signed-off-by: Jakub Kuczys <me@jacken.men>
2 years agonetwork: allow incoming connections to guests on routed networks w/firewalld
Eric Garver [Thu, 22 Sep 2022 15:13:24 +0000 (11:13 -0400)]
network: allow incoming connections to guests on routed networks w/firewalld

Prior to firewalld version 1.0.0, the default action of ACCEPT in the
"libvirt" zone (subsequently overridden with a lower priority "REJECT"
action) would result in an implicit rule that allowed incoming sessions
through the zone; libvirt relied on this implicit rule to permit
incoming connections to guests that were connected via a libvirt
"routed" network.

Starting in firewalld 1.0.0, the rules generated for this same
zonefile changed such that incoming sessions through the libvirt zone
were no longer allowed, breaking the longstanding convention that they
should be allowed (only for routed networks).

However, beginning with firewalld 0.9.0, a zone can explicitly
allow/block forwarded traffic (by adding a "policy" to the zone that
specifies what happens to packets that are going in one zone and out
another zone).

This patch changes the zone for routed networks from "libvirt" to the
newly-added "libvirt-routed" zone that uses the new policy
functionality to once again allow incoming sessions to guests on
routed networks.

(If firewalld is < 0.9.0, then the policy file won't be read at all,
so firewalld won't log any error, and libvirt will just use the old
setup that takes advantage of the implicit forwarding rules).

Resolves: https://bugzilla.redhat.com/2055706
Signed-off-by: Eric Garver <eric@garver.life>
Reviewed-by: Laine Stump <laine@redhat.com>
2 years agonetwork: firewalld: add policies for routed networks
Eric Garver [Thu, 22 Sep 2022 15:13:23 +0000 (11:13 -0400)]
network: firewalld: add policies for routed networks

Signed-off-by: Eric Garver <eric@garver.life>
Reviewed-by: Laine Stump <laine@redhat.com>
2 years agonetwork: firewalld: add zone for routed networks
Eric Garver [Thu, 22 Sep 2022 15:13:22 +0000 (11:13 -0400)]
network: firewalld: add zone for routed networks

This zone will be used for the routed network by default.

Note that this zone definition omits "forward" aka intra-zone
forwarding, because it requires firewalld >= 0.9.0.

Signed-off-by: Eric Garver <eric@garver.life>
Reviewed-by: Laine Stump <laine@redhat.com>
2 years agoutil: add virFirewallDPolicyExists()
Eric Garver [Thu, 22 Sep 2022 15:13:21 +0000 (11:13 -0400)]
util: add virFirewallDPolicyExists()

Signed-off-by: Eric Garver <eric@garver.life>
Reviewed-by: Laine Stump <laine@redhat.com>
2 years agoutil: add virFirewallDGetPolicies()
Eric Garver [Thu, 22 Sep 2022 15:13:20 +0000 (11:13 -0400)]
util: add virFirewallDGetPolicies()

Signed-off-by: Eric Garver <eric@garver.life>
Reviewed-by: Laine Stump <laine@redhat.com>
2 years agoqemu: Retire QEMU_CAPS_OBJECT_MEMORY_FILE_ALIGN
Michal Privoznik [Thu, 3 Nov 2022 15:26:35 +0000 (16:26 +0100)]
qemu: Retire QEMU_CAPS_OBJECT_MEMORY_FILE_ALIGN

Now that nothing uses this capability, it can be retired.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu_capabilities: Stop detecting QEMU_CAPS_OBJECT_MEMORY_FILE_ALIGN
Michal Privoznik [Thu, 3 Nov 2022 15:26:16 +0000 (16:26 +0100)]
qemu_capabilities: Stop detecting QEMU_CAPS_OBJECT_MEMORY_FILE_ALIGN

All supported QEMUs have this capability. Stop detecting it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Assume QEMU_CAPS_OBJECT_MEMORY_FILE_ALIGN
Michal Privoznik [Thu, 3 Nov 2022 15:24:49 +0000 (16:24 +0100)]
qemu: Assume QEMU_CAPS_OBJECT_MEMORY_FILE_ALIGN

Introduced in QEMU's commit of v2.12.0-rc0~148^2~4 the .align
attribute of memory-backend-file is always available for all QEMU
versions we support (4.2.0, currently). Therefore, we can assume
the capability is always set and thus doesn't need to be checked
for.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Retire QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD
Michal Privoznik [Thu, 3 Nov 2022 15:22:20 +0000 (16:22 +0100)]
qemu: Retire QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD

Now that nothing uses this capability, it can be retired.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu_capabilities: Stop detecting QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD
Michal Privoznik [Thu, 3 Nov 2022 15:21:54 +0000 (16:21 +0100)]
qemu_capabilities: Stop detecting QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD

All supported QEMUs have this capability. Stop detecting it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Assume QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD
Michal Privoznik [Thu, 3 Nov 2022 15:19:27 +0000 (16:19 +0100)]
qemu: Assume QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD

Introduced in QEMU's commit of v2.11.0-rc0~95^2~9 the .discard
attribute of memory-backend-file is always available for all QEMU
versions we support (4.2.0, currently). Therefore, we can assume
the capability is always set and thus doesn't need to be checked
for.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Retire QEMU_CAPS_OBJECT_MEMORY_FILE
Michal Privoznik [Thu, 3 Nov 2022 15:12:58 +0000 (16:12 +0100)]
qemu: Retire QEMU_CAPS_OBJECT_MEMORY_FILE

Now that nothing uses this capability, it can be retired.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu_capabilities: Stop detecting QEMU_CAPS_OBJECT_MEMORY_FILE
Michal Privoznik [Thu, 3 Nov 2022 15:11:24 +0000 (16:11 +0100)]
qemu_capabilities: Stop detecting QEMU_CAPS_OBJECT_MEMORY_FILE

All supported QEMUs have this capability. Stop detecting it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Assume QEMU_CAPS_OBJECT_MEMORY_FILE
Michal Privoznik [Thu, 3 Nov 2022 15:01:02 +0000 (16:01 +0100)]
qemu: Assume QEMU_CAPS_OBJECT_MEMORY_FILE

Introduced in QEMU's commit of v2.1.0-rc0~41^2~26 only for Linux,
and later in v3.1.0-rc0~71^2~10 for all POSIX, the
memory-backend-file is going to be present for all QEMU versions
we support (4.2.0, currently). Therefore, we can assume the
capability is always set and thus doesn't need to be checked for.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Retire QEMU_CAPS_OBJECT_MEMORY_RAM
Michal Privoznik [Thu, 3 Nov 2022 08:53:20 +0000 (09:53 +0100)]
qemu: Retire QEMU_CAPS_OBJECT_MEMORY_RAM

Now that nothing uses this capability, it can be retired.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu_capabilities: Stop detecting QEMU_CAPS_OBJECT_MEMORY_RAM
Michal Privoznik [Thu, 3 Nov 2022 14:07:28 +0000 (15:07 +0100)]
qemu_capabilities: Stop detecting QEMU_CAPS_OBJECT_MEMORY_RAM

All supported QEMUs have this capability. Stop detecting it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Assume QEMU_CAPS_OBJECT_MEMORY_RAM
Michal Privoznik [Thu, 3 Nov 2022 09:52:40 +0000 (10:52 +0100)]
qemu: Assume QEMU_CAPS_OBJECT_MEMORY_RAM

Introduced in QEMU's commit of v2.1.0-rc0~41^2~104 the
memory-backend-ram is going to be present for all QEMU versions
we support (4.2.0, currently). Therefore, we can assume the
capability is always set and thus doesn't need to be checked for.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuxml2argvtest: Drop cpu-numa-memshared-1 test case
Michal Privoznik [Thu, 3 Nov 2022 14:14:17 +0000 (15:14 +0100)]
qemuxml2argvtest: Drop cpu-numa-memshared-1 test case

The aim of this test case it to make sure we error out when
QEMU_CAPS_OBJECT_MEMORY_RAM is missing. Well, it's never going to
be missing. Drop the test case.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuxml2xmltest: Convert hugepages related tests to _CAPS_LATEST
Michal Privoznik [Thu, 3 Nov 2022 09:28:40 +0000 (10:28 +0100)]
qemuxml2xmltest: Convert hugepages related tests to _CAPS_LATEST

Currently, we have maybe a dozen tests for hugepages related stuff in
qemuxml2xmltest. In all cases DO_TEST() is used, which means we have to
enumerate all capabilities needed (though, it's usually just
QEMU_CAPS_OBJECT_MEMORY_RAM and QEMU_CAPS_OBJECT_MEMORY_FILE,
exceptionally QEMU_CAPS_DEVICE_PC_DIMM too).

Instead of deleting the caps flags one-by-one, just switch the
tests to use DO_CAPS_LATEST().

Since some of our expected output files are just a symlink to their
respective input files, these are changed too. But from QEMU's
POV nothing changes as no .args file is changed.

Oh, and I'm also adding a 'hugepages-memaccess3' test case, which
was missing, surprisingly.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuxml2argvtest: Convert hugepages related tests to _CAPS_LATEST
Michal Privoznik [Wed, 2 Nov 2022 13:10:41 +0000 (14:10 +0100)]
qemuxml2argvtest: Convert hugepages related tests to _CAPS_LATEST

Currently, we have maybe a dozen tests for hugepages related
stuff in qemuxml2argvtest. In all cases DO_TEST() is used, which
means we have to enumerate all capabilities needed (though, it's
usually just QEMU_CAPS_OBJECT_MEMORY_RAM and
QEMU_CAPS_OBJECT_MEMORY_FILE, exceptionally
QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD too).

Instead of deleting the caps flags one-by-one, just switch the
tests to use DO_CAPS_LATEST().

The qemuxml2xmltest will undergo similar treatment in next
commit.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agocpu_map: Add cpu feature amx
Lin Yang [Tue, 13 Sep 2022 19:30:31 +0000 (12:30 -0700)]
cpu_map: Add cpu feature amx

AMX was introduced in QEMU commit 1f16764f7d4515bfd5e4ae0aae814fa280a7d0c8.

Signed-off-by: Lin Yang <lin.a.yang@intel.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2 years agoqemu: Drop NULL checks guarding g_slist_free_full()
Michal Privoznik [Fri, 4 Nov 2022 09:11:46 +0000 (10:11 +0100)]
qemu: Drop NULL checks guarding g_slist_free_full()

The g_slist_free_full() function is perfectly capable of handling
NULL (in which case it's NOP), therefore there's no need to check
passed pointers for NULL. We have them though in couple of
places. Drop them.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: validate: Validate maximum start time for <clock offset='absolute'>
Peter Krempa [Thu, 3 Nov 2022 15:04:17 +0000 (16:04 +0100)]
qemu: validate: Validate maximum start time for <clock offset='absolute'>

Glib can internally convert only unix timestamps up to
9999-12-31T23:59:59 (253402300799). Validate that the user doesn't use
more than that as otherwise we cause an assertion failure:

 (process:1183396): GLib-CRITICAL **: 14:25:00.906: g_date_time_format: assertion 'datetime != NULL' failed

Additionally adjust the schema to allow bigger values as we use
'unsigned long long' to parse the value.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2128993
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agodocs: xsl: Don't generate pointless index pages for qemu/admin/lxc API
Peter Krempa [Thu, 3 Nov 2022 12:16:31 +0000 (13:16 +0100)]
docs: xsl: Don't generate pointless index pages for qemu/admin/lxc API

The index page only really makes sense for the top level directory. The
specific index files are unreferenced since last commit. Drop them.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agodocs: Link directly to admin|qemu|lxc API reference pages
Peter Krempa [Thu, 3 Nov 2022 09:35:13 +0000 (10:35 +0100)]
docs: Link directly to admin|qemu|lxc API reference pages

Fix the main links in docs.rst main page to go to the full docs rather
than prompting one more click to the index page.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoapibuild: Don't include the Copyright in the <description> of a module
Peter Krempa [Thu, 3 Nov 2022 10:07:12 +0000 (11:07 +0100)]
apibuild: Don't include the Copyright in the <description> of a module

When building the top level description from a header file the
'parseTopComment' method of the 'CParser' would include all trailing
lines into the <description> field. This was designed to concatenate
multi-line descriptions, but unfortunately in all cases also included
the Copyright statement which followed.

Explicitly end the scanning of the header on a line which starts with
'Copyright (C)' and truncate the spaces from the end of the last item.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agodocs: xsl: Don't format empty sections in API manual
Peter Krempa [Thu, 3 Nov 2022 09:45:56 +0000 (10:45 +0100)]
docs: xsl: Don't format empty sections in API manual

The LXC module has no exported 'Types' but the XSL template which
generates the 'libvirt-libvirt-lxc.html' page would try to format it
anyways. This would result in an empty non-pair version of the '<pre>'
tag to be used in the page, which didn't render well with modern
browsers for some reason. All following sections would become children
of the non-pair <pre>.

Fix the XSL template to not generate empty 'Types' or 'Functions'
sections similarly to how we do with 'Macros'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agodocs: xsl: newapi: Remove unused 'navbar' template
Peter Krempa [Thu, 3 Nov 2022 12:02:31 +0000 (13:02 +0100)]
docs: xsl: newapi: Remove unused 'navbar' template

The template is unused since commit 9092c3d491047539e376a496d1520249

Remove also the up|right|left|home.png files which were only used by
code generated by the unused template.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoTranslated using Weblate (Korean)
김인수 [Thu, 3 Nov 2022 04:19:52 +0000 (05:19 +0100)]
Translated using Weblate (Korean)

Currently translated at 100.0% (10386 of 10386 strings)

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

Co-authored-by: 김인수 <simmon@nplob.com>
Signed-off-by: 김인수 <simmon@nplob.com>
2 years agovirschematest: Add infrastructure for testing single devices
Peter Krempa [Thu, 20 Oct 2022 11:32:34 +0000 (13:32 +0200)]
virschematest: Add infrastructure for testing single devices

Introduce an internal schema for a single device and use it to test the
various files in tests/qemuhotplugtestdevices and
tests/qemublocktestdata directories.

This also requires us to implement schema for (some) privateData bits
for the disk source.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoschema: Introduce scaffolding for schema for <privateData> elements
Peter Krempa [Thu, 8 Oct 2020 11:48:21 +0000 (13:48 +0200)]
schema: Introduce scaffolding for schema for <privateData> elements

Libvirt internally (e.g. in the status XML) stores additional data for
various objects described by the XML. The data is usually stored in
<privateData> or similar sub-elements.

This patch adds possibility for internal schema files to describe the
<privateData> elements by schema while still disallowing them for the
public schema.

This patch adds definitions for private data of <disk> and the
corresponding storage source of a disk.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirschematest: Improve testing schemas in 'tests/cputestdata'
Peter Krempa [Thu, 8 Oct 2020 10:01:29 +0000 (12:01 +0200)]
virschematest: Improve testing schemas in 'tests/cputestdata'

The 'cputestdata' directory has a collection of XML files with very
complicated naming schemes for various input and output XML files.

Rather than trying to write complex regexes for selecting specific files
which diverged already multiple times we can introduce an internal
schema file which will cover all of the 3 top level elements used in the
XML files.

Schema for <cpu> is taken from our main RNG schema, <cpuTest> is just a
collection of <cpu> elements, and finally <cpudata> is a simple enough
to describe inline.

To keep the validator happy we have to generate the schema file to
place full paths for the included documents.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: Avoid memory leak in qemuMonitorJSONExtractQueryStatsSchema
Jiri Denemark [Wed, 2 Nov 2022 14:52:31 +0000 (15:52 +0100)]
qemu: Avoid memory leak in qemuMonitorJSONExtractQueryStatsSchema

In a rare case when virHashAddEntry fails we would just leak the
structure we wanted to add to the hash table.

Fixes: e89acdbc3bbada2f3c1a591278bc975ddee2d5a9
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: Avoid double free in virDomainEventTunableNew callers
Jiri Denemark [Wed, 2 Nov 2022 14:10:25 +0000 (15:10 +0100)]
conf: Avoid double free in virDomainEventTunableNew callers

virDomainEventTunableNew is supposed to consume and free @params, but it
failed to always set @params to NULL to make sure the caller doesn't try
to free the same memory again.

Fixes: d95c79fbd00dc597b607b130d95c258b6cf31690
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: Skip virDomainNetDefParseXMLDriver if driver_node is NULL
Jiri Denemark [Wed, 2 Nov 2022 13:42:51 +0000 (14:42 +0100)]
conf: Skip virDomainNetDefParseXMLDriver if driver_node is NULL

Trying to parse <driver> node which does not exist makes no sense.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agospec: Fix python3-libvirt requirement in client-qemu package
Jiri Denemark [Wed, 2 Nov 2022 11:42:26 +0000 (12:42 +0100)]
spec: Fix python3-libvirt requirement in client-qemu package

The %{release} part of the requirement is just wrong as python bindings
are not rebuilt anytime libvirt release is increased, which means the
client-qemu package may require nonexistent release of python bindings.

The %{version} part is not wrong, but it's too strict for no reason as
the virt-qemu-qmp-proxy script will work happily even with ancient
python bindings. And since all distros supported by libvirt.spec already
contain python3-libvirt, we can depend on the first package called this
way.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2 years agoschema: Rename definition of disk 'target' element to 'diskTarget'
Peter Krempa [Thu, 20 Oct 2022 12:18:17 +0000 (14:18 +0200)]
schema: Rename definition of disk 'target' element to 'diskTarget'

Rename 'diskTarget' to 'diskTargetDev' and then 'target' to
'diskTarget'.

This will make it less confusing when overriding the definition.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemublocktest: Mark 'network-ssh-qcow2' input XML as invalid
Peter Krempa [Thu, 20 Oct 2022 12:50:21 +0000 (14:50 +0200)]
qemublocktest: Mark 'network-ssh-qcow2' input XML as invalid

The XML does not conform to the RNG schema as we don't yet expose the
'ssh' protocol officially. Mark the XML as invalid by renaming it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agotests: qemublocktestdata/imagecreate: Remove bogus 'name="vda"' attribute from <disk>
Peter Krempa [Thu, 20 Oct 2022 12:42:50 +0000 (14:42 +0200)]
tests: qemublocktestdata/imagecreate: Remove bogus 'name="vda"' attribute from <disk>

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemublocktestdata: Fix 'block-raw-reservations' case
Peter Krempa [Thu, 20 Oct 2022 12:13:38 +0000 (14:13 +0200)]
qemublocktestdata: Fix 'block-raw-reservations' case

The 'reservations' element doesn't have an 'enabled' attribute according
to our schema, remove it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirschematest: Construct path to the schema in the SCHEMAS_PATH
Peter Krempa [Thu, 20 Oct 2022 08:30:00 +0000 (10:30 +0200)]
virschematest: Construct path to the schema in the SCHEMAS_PATH

'abs_top_srcdir' can be prepended to the schema in the macro. Apart from
removing one needless string copy it will also allow pointing to schema
files in the builddir which will come handy in upcoming patches.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoutil: xml: Refactor cleanup in virXMLValidateAgainstSchema
Peter Krempa [Thu, 4 Aug 2022 08:39:53 +0000 (10:39 +0200)]
util: xml: Refactor cleanup in virXMLValidateAgainstSchema

Use automatic freeing of the validator context to remove
'ret'/'cleanup:'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoutil: xml: Refactor cleanup path in virXMLValidatorInit
Peter Krempa [Thu, 4 Aug 2022 08:31:06 +0000 (10:31 +0200)]
util: xml: Refactor cleanup path in virXMLValidatorInit

Automatically free 'validator' on errors.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemustatusxml2xml: Remove obsolete 'json' attribute
Peter Krempa [Fri, 9 Oct 2020 14:33:31 +0000 (16:33 +0200)]
qemustatusxml2xml: Remove obsolete 'json' attribute

We no longer support HMP-only qemus. Remove the leftover attribute from
the test files.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirschematest: Test 'nodedevxml2xmlout' directory
Peter Krempa [Mon, 22 Aug 2022 11:39:26 +0000 (13:39 +0200)]
virschematest: Test 'nodedevxml2xmlout' directory

Test the output files against the RNG schema.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: domain: Remove pointless XML node name validation in virSysinfoParseXML
Peter Krempa [Thu, 6 Oct 2022 09:12:51 +0000 (11:12 +0200)]
conf: domain: Remove pointless XML node name validation in virSysinfoParseXML

The only caller passes 'node' argument originating from an XPath lookup
for the 'sysinfo' element, so there's no point in checking it once more.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: domain: Refactor cleanup in virSysinfoParseXML
Peter Krempa [Thu, 6 Oct 2022 10:33:08 +0000 (12:33 +0200)]
conf: domain: Refactor cleanup in virSysinfoParseXML

Use automatic pointer freeing to remove the 'error' label.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: domain: Parse 'type' attribute via virXMLPropEnum in virSysinfoParseXML
Peter Krempa [Thu, 6 Oct 2022 10:30:26 +0000 (12:30 +0200)]
conf: domain: Parse 'type' attribute via virXMLPropEnum in virSysinfoParseXML

Rewrite the code to use the simple helper.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: domain: Remove pointless XML node name validation in virSysinfoChassisParseXML
Peter Krempa [Thu, 6 Oct 2022 09:12:51 +0000 (11:12 +0200)]
conf: domain: Remove pointless XML node name validation in virSysinfoChassisParseXML

The only caller passes 'node' argument originating from an XPath lookup
for the 'chassis' element, so there's no point in checking it once more.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: domain: Refactor cleanup in virSysinfoChassisParseXML
Peter Krempa [Thu, 6 Oct 2022 09:20:27 +0000 (11:20 +0200)]
conf: domain: Refactor cleanup in virSysinfoChassisParseXML

Register automatic cleanup for virSysinfoChassisDef and use it to
refactor the cleanup code paths in virSysinfoChassisParseXML.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: domain: Reformat XPath queries in virSysinfoChassisParseXML
Peter Krempa [Thu, 6 Oct 2022 09:17:17 +0000 (11:17 +0200)]
conf: domain: Reformat XPath queries in virSysinfoChassisParseXML

Remove the unneeded linebreaks after assignment operator. Only one line
exceeds 80 colums and just by 4 characters.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: domain: Remove pointless XML node name validation in virSysinfoSystemParseXML
Peter Krempa [Thu, 6 Oct 2022 09:12:51 +0000 (11:12 +0200)]
conf: domain: Remove pointless XML node name validation in virSysinfoSystemParseXML

The only caller passes 'node' argument originating from an XPath lookup
for the 'system' element, so there's no point in checking it once more.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: domain: Refactor cleanup in virSysinfoSystemParseXML
Peter Krempa [Thu, 6 Oct 2022 09:20:27 +0000 (11:20 +0200)]
conf: domain: Refactor cleanup in virSysinfoSystemParseXML

Register automatic cleanup for virSysinfoSystemDef and use it to
refactor the cleanup code paths in virSysinfoSystemParseXML.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: domain: Reformat XPath queries in virSysinfoSystemParseXML
Peter Krempa [Thu, 6 Oct 2022 09:17:17 +0000 (11:17 +0200)]
conf: domain: Reformat XPath queries in virSysinfoSystemParseXML

Remove the unneeded linebreaks after assignment operator. Only one line
exceeds 80 colums and just by 4 characters.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: domain: Remove pointless XML node name validation in virSysinfoBIOSParseXML
Peter Krempa [Thu, 6 Oct 2022 09:12:51 +0000 (11:12 +0200)]
conf: domain: Remove pointless XML node name validation in virSysinfoBIOSParseXML

The only caller passes 'node' argument originating from an XPath lookup
for the 'bios' element, so there's no point in checking it once more.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoconf: domain: Refactor cleanup in virSysinfoBIOSParseXML
Peter Krempa [Thu, 6 Oct 2022 09:09:23 +0000 (11:09 +0200)]
conf: domain: Refactor cleanup in virSysinfoBIOSParseXML

Register automatic cleanup for virSysinfoBIOSDef and use it to refactor
the cleanup code paths in virSysinfoBIOSParseXML.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoutil: xml: Remove unused virXPathULong*
Peter Krempa [Wed, 5 Oct 2022 15:26:51 +0000 (17:26 +0200)]
util: xml: Remove unused virXPathULong*

Remove the now-unused functions for parsing 'unsigned long' values via
XPath.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agocpu_arm: Avoid use of 'unsigned long'
Peter Krempa [Wed, 5 Oct 2022 15:20:23 +0000 (17:20 +0200)]
cpu_arm: Avoid use of 'unsigned long'

Covert all use of 'unsigned long' to 'unsigned long long'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirDomainJobObj: Use 'unsigned int' instead of 'unsigned long' for 'apiFlags' field
Peter Krempa [Wed, 5 Oct 2022 14:54:43 +0000 (16:54 +0200)]
virDomainJobObj: Use 'unsigned int' instead of 'unsigned long' for 'apiFlags' field

The callers store only an 'unsigned int' in the field. Convert it to the
proper type including parser/formatter.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuDomainObjPrivateXMLParseBlockjobData: Use virXMLPropUInt instead of virXPathULongHex
Peter Krempa [Wed, 5 Oct 2022 14:45:42 +0000 (16:45 +0200)]
qemuDomainObjPrivateXMLParseBlockjobData: Use virXMLPropUInt instead of virXPathULongHex

Use the function for the proper type.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoppc64ModelParse: Switch to virXMLPropUInt from virXPathULongHex
Peter Krempa [Wed, 5 Oct 2022 14:09:10 +0000 (16:09 +0200)]
ppc64ModelParse: Switch to virXMLPropUInt from virXPathULongHex

We don't need to do the extra XPath lookups and we can use the proper
type right away.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirDomainSEVDefParseXML: Use virXPathUIntBase instead of virXPathULongHex
Peter Krempa [Wed, 5 Oct 2022 13:54:39 +0000 (15:54 +0200)]
virDomainSEVDefParseXML: Use virXPathUIntBase instead of virXPathULongHex

Use the proper function for an unsigned int.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirDomainNetDef: Change type of 'tune.sndbuf'
Peter Krempa [Wed, 5 Oct 2022 13:52:59 +0000 (15:52 +0200)]
virDomainNetDef: Change type of 'tune.sndbuf'

Use 'unsigned long long' instead of 'unsigned long' and fix the parser
and formatter.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirDomainTimerDefParseXML: Use virXMLProp instead of virXPath
Peter Krempa [Mon, 24 Oct 2022 13:24:44 +0000 (15:24 +0200)]
virDomainTimerDefParseXML: Use virXMLProp instead of virXPath

Parse the 'frequency' field without an extra XPath.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirDomainTimerDef: Convert 'mode' field to proper enum type
Peter Krempa [Mon, 24 Oct 2022 13:20:10 +0000 (15:20 +0200)]
virDomainTimerDef: Convert 'mode' field to proper enum type

Adjust the parser and switch statements to go with it.

Note that the XEN/libxl drivers had a 'default:' case for few of the
swtich statements so this patch blindly expands it to what it would be
in those cases.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirDomainTimerDef: Convert 'track' field to proper enum type
Peter Krempa [Mon, 24 Oct 2022 13:08:50 +0000 (15:08 +0200)]
virDomainTimerDef: Convert 'track' field to proper enum type

Adjust the parser and add missing switch cases to make the complier
happy.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirDomainTimerDef: Convert 'tickpolicy' field to proper enum type
Peter Krempa [Mon, 24 Oct 2022 13:05:21 +0000 (15:05 +0200)]
virDomainTimerDef: Convert 'tickpolicy' field to proper enum type

Convert the field, adjust the XML parser to use virXMLPropEnum and add
the VIR_DOMAIN_TIMER_TICKPOLICY_LAST enum case to all appropriate
'switch' statements.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirDomainTimerDef: Convert 'name' field to proper enum type
Peter Krempa [Mon, 24 Oct 2022 12:58:39 +0000 (14:58 +0200)]
virDomainTimerDef: Convert 'name' field to proper enum type

Adjust the type and the corresponding parser to use virXMLPropEnum.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirDomainTimerDefParseXML: Refactor cleanup
Peter Krempa [Mon, 24 Oct 2022 12:55:53 +0000 (14:55 +0200)]
virDomainTimerDefParseXML: Refactor cleanup

Automatically free the 'def' variable and remove the 'cleanup' label.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirDomainTimerCatchupDef: Change members to 'unsigned long long'
Peter Krempa [Wed, 5 Oct 2022 13:47:49 +0000 (15:47 +0200)]
virDomainTimerCatchupDef: Change members to 'unsigned long long'

The struct used 'unsigned long' variables which we try to avoid due to
being different size on different architectures.

Convert the struct and use virXMLPropULongLong instead of virXPathULong
when parsing the XML.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirNetDevVlanParse: Use virXMLProp* helpers instead of XPath lookups
Peter Krempa [Wed, 5 Oct 2022 13:35:42 +0000 (15:35 +0200)]
virNetDevVlanParse: Use virXMLProp* helpers instead of XPath lookups

The loop inside virNetDevVlanParse fetches multiple attributes from the
element. Convert it to use the virXMLProp* helpers, which also
simplifies error reporting.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirInterfaceDefParseMtu: Use virXPathUInt instead of virXPathULong
Peter Krempa [Wed, 5 Oct 2022 13:08:50 +0000 (15:08 +0200)]
virInterfaceDefParseMtu: Use virXPathUInt instead of virXPathULong

Use the proper convertor function and refactor error reporting.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirNetworkIPDefParseXML: Use virXMLPropUInt instead of virXPathULong
Peter Krempa [Wed, 5 Oct 2022 12:43:44 +0000 (14:43 +0200)]
virNetworkIPDefParseXML: Use virXMLPropUInt instead of virXPathULong

Parse the 'prefix' field directly and adjust the the error message
format strings.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirNetDevIPRouteParseXML: Refactor to use 'virXMLProp*' instead of XPath
Peter Krempa [Wed, 5 Oct 2022 12:33:57 +0000 (14:33 +0200)]
virNetDevIPRouteParseXML: Refactor to use 'virXMLProp*' instead of XPath

The function extracts multiple attributes form a single element. Modify
the function to stop using multiple XPath lookups.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agovirQEMUCapsLoadCache: Use 'virXMLPropUInt' instead of 'virXPathULong'
Peter Krempa [Wed, 5 Oct 2022 12:16:46 +0000 (14:16 +0200)]
virQEMUCapsLoadCache: Use 'virXMLPropUInt' instead of 'virXPathULong'

The libvirt version is stored in an 'unsigned int' use the proper XPath
query function for the type and remove the temporary variable.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoutil: xml: Remove virXPathLong
Peter Krempa [Wed, 5 Oct 2022 12:11:10 +0000 (14:11 +0200)]
util: xml: Remove virXPathLong

The function is now unused and we no longer want to promote use of the
'long' type.

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