2025-10-09  anton.fadeev  <anton.fadeev@red-soft.ru>

	[vdsm, osinfo] Add REDVIRT OSName

2025-08-01  Nir Soffer  <nsoffer@redhat.com>

	qemuimg: Support measuring sub chain
	Add new "base" argument, enabling measuring of a sub chain, without the
	rest of the backing chain:

	    parent <- [base <- top] <- child

	The typical use case is estimating the size of the base volume after
	merging the top volume into the base.

	This will allow extending the base volume to the right value before
	merge instead of over allocating, that cannot be fixed in live merge.

	The API will allow engine to measure volumes before merge instead of
	guessing in a bad way, assuming vdsm internal details like chunk size
	and qcow2 metadata overhead.

	Currently we support only chains with 2 elements, since we don't support
	merging of longer chains. If support for longer chains will be added in
	the future, we can remove the limit in the measure implementation.

	Vdsm reports new "measure_subchain" capability to allow engine to
	measure sub-chain with older cluster versions.

	Bug-Url: https://bugzilla.redhat.com/2064907

	(cherry picked from commit 1e964f53797197fa6976914c3253d47823a1f0d8)

2025-08-01  fadeev  <anton.fadeev@red-soft.ru>

	compat: Remove 'pickle' compatibility layer
	We don't support py2 anymore so we don't need to keep
	'pickle' in our 'compat' module.


	(cherry picked from commit 90019322aa228829245c01f578fc4a026885eb87)

2025-08-01  Nir Soffer  <nsoffer@redhat.com>

	common: Support measuring since time in the past
	There are cases when want to measure time since time in the past. For
	example, when we measure the time to extend a volume, we want to measure
	the total time since the time we received a block threshold event.

	Add optional start_time to Clock.start(). When specified, the clock will
	measure that time since the specified start time, instead of the time
	the clock was started.

	A new test show an example for this use case.

	(cherry picked from commit cda8cabb50c08175a74ed22acbef1efcac7be4f5)

2025-08-01  fadeev  <anton.fadeev@red-soft.ru>

	fix config.py.in
	Add iscsi_login_timeout

2025-08-01  Ales Musil  <amusil@redhat.com>

	net: cherry-pick ovn related commits from upstream
	net, ovs: Fix empty OVN bridge mappings

	The openvswitch does not accept '""' and complains
	about it, change it to simple empty string instead.

	(cherry picked from commit 75655ce80c267cd71546b8ed204a0b335a3e8b35)

	net: Add ovnConfigured to capabilities

	Add ovnConfigured boolean that indicates if
	OVN is properly configured on the host.

	Bug-Url: https://bugzilla.redhat.com/1940824

	(cherry picked from commit 987e38602fcd64e83ab9b5e8795bf8aec8054ce0)

	net: Add check if OVN is properly configured on the host

	Check if required services are running namely:
	- ovn-controller
	- ovsdb-server
	- openvswitch-ipsec

	Check if OVN certificates do exist with proper permissions.
	Lastly check if OvS system-id corresponds to at least one DNS
	name in the SAN extension of the OVN certificate.

	Bug-Url: https://bugzilla.redhat.com/1940824

	(cherry picked from commit 2630062230d41d17dae38ca6f09a4e7ee5a77d35)

2025-07-31  Yedidyah Bar David  <didi@redhat.com>

	hooks: Add log-firmware
	This is a combination of the interface of log-console and the
	functionality of qemucmdline, hard-coded to log the firmware output to a
	log file. qemucmdline can't be used directly for HostedEngine, because
	we want a separate log file per VM, and qemucmdline does not have
	internally functionality to allow doing that, relying instead on the
	engine to supply correct params somehow. For HostedEngine, we can't rely
	on the engine, as it does not exist at this point.

	(cherry picked from commit 69188fa88788d87d4eb76f9290e4b9c6a33a5470)

	hooks: Add log_console

	(cherry picked from commit 52ec4c9110d93f53003ef5bfed08f580022cba1d)

2025-07-31  anton.fadeev  <anton.fadeev@red-soft.ru>

	Bump aux release

2025-07-31  Michael Trapp  <michael.trapp@sap.com>

	aarch64: add default image
	Add the 'generic virtual board model' for aarch64 support.

	(cherry picked from commit 4127dfc37b95bd0991141e75f26d40746ed5f857)

2025-07-31  Jean-Louis Dupond  <jean-louis@dupond.be>

	virt: remove bandwidth limit on nic update
	This patch fixes some logic error in the update_bandwidth_xml function.
	If you have a running VM with a NIC that has a QoS, it will contain a
	bandwidth setting in the XML.
	Now if you change the NIC to a vNIC Profile without QoS, it will not
	contain the 'inbound' and 'outbound' specParams, and the old QoS will
	never get removed (only after stop/start).

	So we take the removal of the bandwidth out of the if so the limit gets
	cleared correctly.

	Also adds test for this case.

	(cherry picked from commit ade627ee801032b2f4a751c896ae6b6e2676b677)

2025-07-31  Arik Hadas  <ahadas@redhat.com>

	Teardown replica when replication fails
	When disk replication fails during live storage migration, we detect it
	properly, fail the operation and remove the disk from the destination
	storage domain. However, we didn't tear down the replica on the host
	that executes the replication and therefore, if the removal of the
	destination disk was done on a different host, we had leftovers
	remaining on the host that executed the replication.

	This patch changes the diskReplicateFinish function to tear down the
	replicate when the corresponding block job doesn't exist in order to
	prevent this scenario of having leftovers on the host that could lead to
	data corruption later on.

	Bug-Url: https://bugzilla.redhat.com/2193392
	(cherry picked from commit 1938e3cb68bd658c53b042335fc830414fc238bd)

2025-07-31  Saksham  <saksrsri@SAKSRSRI-7420.in.oracle.com>

	virt: Fix negative cpuUser value in getAllVmStats
	Issues:

	When calling the command 'vdsm-client Host getAllVmStats', sometimes value of cpuUser was coming negative.

	Fix:

	The cpuUser value was coming negative due to less accuracy of user_time and system_time values (upto 2 decimal) as compared to cpu_time values (upto 9 decimal) returned by libvirt. Fixed the issue by adding the check in vmstats.py for negative cpuUser values and setting them to 0.

	(cherry picked from commit 5551539956f7a1979efbee84afdc4893061564aa)

2025-07-31  Jean-Louis Dupond  <jean-louis@dupond.be>

	Fix flapping disk info due to timing differences
	In commit 45903d01e142047093bf844628b5d90df12b6ffb there was code added
	to refresh the fs info earlier when a hotplug disk was added.
	Now this caused some side effect that when only that command was
	triggered, the info dict never contained 'disk.count', which caused us
	to change the diskMapping to the parsed data from fsinfo.

	Some minutes later when the disk command needed to be refreshed, it
	changed the diskMapping again, because (sometimes) the disks call
	returns more disks in comparision to the fsinfo call (for ex unmounted
	disks).

	Again a bit later, the fsinfo had to be refreshed, and the diskMapping
	was modified again.

	This occurs continiously, causing the device hash to change every time,
	and causing an excessive amount of dumpxml's also due to that.

	Fixed this by not setting the diskMapping when we have the
	_QEMU_DISKS_COMMAND in our caps. As this means somewhere else in time
	this command will refresh the disk info.
	Also refresh the disk info and not only fs info after a disk hotplug.

	(cherry picked from commit 1bb7ee1bfbaae9e430e56c9b94dd815c9b664873)

2025-07-31  Albert Esteve  <aesteve@redhat.com>

	livemerge: prune bitmaps before measuring
	Prune stale bitmaps before a live merge to avoid
	failing with ENOSPC.

	Fixes: #352
	(cherry picked from commit 5e5498506006394bc9ad55ade32c8748c5529b7d)

2025-07-31  Shmuel Melamud  <smelamud@redhat.com>

	virt: Accept None returned by guest agent for vCPU count
	If guest agent returns None for vCPU count, TypeError is raised. This
	patch adds correct handling of this situation.

	Bug-Url: https://bugzilla.redhat.com/2120381
	(cherry picked from commit 459c7533cce3bf8ec24f990cf693481a50eb57f5)

2025-07-31  Milan Zamazal  <mzamazal@redhat.com>

	virt: Add support for zero-copy migrations
	Zero-copy migrations are enabled using ‘zerocopy’ migration
	parameter.  It is the responsibility of Engine to pass the parameter
	only when all the zero-copy migration requirements are
	satisfied (parallel non-encrypted migrations).

	Since adding the parameter is an API change and we don’t have a new
	cluster version, a new host capability ‘zerocopy_migrations’ is
	provided to indicate the presence of the zero-copy migration feature
	on the host.  It is currently not used by Engine (assuming that hosts
	should be kept up-to-date) but let’s have it in case we realize in
	future we need it.  Note that libvirt on both the source and
	destination hosts must support zero-copy migrations otherwise the
	zero-copy migration fails before it starts, on an unknown libvirt
	flag.

	libvirt support for zero-copy migrations is not available in CentOS
	Stream 8 at the moment; we do not enable zero-copy migrations there.

	Bug-Url: https://bugzilla.redhat.com/2089434

	(cherry picked from commit 37cbca2db2538e2a65fc439d3edaafc33360781e)

	virt: Log migrateToURI3 parameters
	Migrations can be run with various parameters and flags influencing
	their functionality (e.g. encryption, post-copy) or
	performance (number of parallel connections, zero-copy).  The
	particular libvirt parameters and flags are determined in Vdsm and
	unless libvirt logs are enabled and available, we don’t know them.

	Let’s add one more log line to migrations to see clearly their
	eventual parameters.  The domain XML, large and already logged
	separately, is omitted from the log line.

	(cherry picked from commit 4de4adb6bf14231de8484896e431f9c2e15b260f)

	virt: Don’t retrieve VM external data until the VM is started
	VM external data, if not provided by Engine, may not be available
	initially and may be created only once the VM is started by libvirt.
	If its retrieval is attempted before the data is available, an error
	message is produced in the logs.  This error message is harmless but
	incorrect and it may confuse users or prevent distinguishing real
	errors from fake errors.

	Let’s not retrieve external data in all the VM initial states, not
	only MIGRATION_DESTINATION, to prevent the external data retrieval
	error.

	(cherry picked from commit 62544a750c5518673137274143ec134cee99af9d)

2025-07-31  Vojtech Juranek  <vjuranek@redhat.com>

	virt: switch domain to Defined once migrated VM is stopped
	When the VM is stopped on the source after migration, set VM status to
	Down and also switch domain to Defined state. The domain is not running
	and not all calls are available -- some would result in libvirt error.
	Defined domain will throw virdomain.NotConnectedError which should be
	handled by the caller.

	Added handling of this exception into Vm._destroyVm* methods.
	The methods are not called on not connected domain so this is only a
	preventive measure to be on the safe side.

	It would be more practical to change the domain to Defined much sooner,
	ideally in _handle_libvirt_domain_stopped(). That would avoid any delays
	especially from calling hooks. But postponing the change and doing it
	together with state change later makes the behavior more predictable and
	more consistent.

	Bug-Url: https://bugzilla.redhat.com/2000046
	(cherry picked from commit 7ff8ae2d7eb22ddf3e6177bb84617fd51eee89c4)
