The 12.4.0 release of both libvirt and libvirt-python is tagged and
signed tarballs are available at
https://download.libvirt.org/https://download.libvirt.org/python/
Thanks everybody who helped with this release by sending patches,
reviewing, testing, or providing feedback. Your work is greatly
appreciated.
* Removed features
* qemu: Bump minimum version to QEMU-7.2
The minimal required version of QEMU was bumped to 7.2.0.
* New features
* resctrl: Add energy monitoring via resctrl's PERF_PKG_MON
Add support for Linux kernel 7.0 feature - energy monitoring via resctrl.
This allows to monitor per-VM energy consumption on supported platforms.
Implemented via ``energytune`` element in ``cputune`` .
* Add channel lifecycle domain event
Add support for a new domain event which can be used to track the state of
any virtio channel. It is similar to guest agent lifecycle event.
* bhyve: Add memory tuning support
The bhyve driver now allows setting a domain's memory hard limit using the
following syntax::
<memtune>
<hard_limit unit='G'>1</hard_limit>
</memtune>
It also implements the ``virDomainGetMemoryParameters()`` and
``virDomainSetMemoryParameters()`` APIs for controlling
the memory hard limit of a running domain.
* bhyve: Add virtio-console device support
Domain XML can now use ``virtio-console`` devices. Among other things,
these devices can be used to configure a QEMU Guest Agent::
<devices>
<channel type='unix'>
<source mode='bind' path='/var/run/libvirt/bhyve/bhyve.agent'/>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
</devices>
Additionally, the ``virDomainQemuAgentCommand()`` API which allows
running arbitrary guest agent commands is now supported.
The ``virDomainGetHostname()`` API, used to query the hostname of a guest,
now supports using the guest agent as a source of information.
* Improvements
* vircgroupv2: Implement freezer controller
The CGroupV2 code now supports freezer controller which allows suspending
and resuming of LXC domains.
* virnetdevbandwidth: Only clear qdisc for defined directions
Setting a QoS on a vNIC no longer leads to clearing (preconfigured) root
queuing discipline ('qdisc`) in both directions (egress, ingress), only the
affected one.
* Bug fixes
* storage: ZFS: Fix incorrect volsize and refreservation on zvol creation
When creating a zvol, the ZFS driver listed all volumes in the pool and
updated the new volume's size with data from the last volume in the list
rather than the matching one. Now it correctly returns on valid one.
* esx/vmware: VMs are tracked under different UUIDs by default
The VMWare-related drivers were using allegedly unique IDs for domains, but
it turned out they were not completely unique, even for the same host. That
caused an issue where a different domain could have been acted upon then
requested. Unfortunately, to make this work, the UUIDs of all
VMWare-related domains will change from this release. In order to use the
pre-v12.4.0 behaviour there is a new URI query parameter ``legacy_uuid``
which, if set to ``1``, will revert to the older way of working.
* virsh: Provide no auth callbacks for bash completer
The bash completer script calls virsh to provide completions. In some cases
the underlying virsh might get stuck waiting on input (e.g. password for
SSH session). Not anymore.
* virauth: Verify virConnectAuth::cb is set in virAuthGetPasswordPath()
A check was missing in ``virAuthGetPasswordPath()`` which might lead to
crash of the client library when NULL callback was provided. This is now
fixed.
Enjoy.
Jirka