fix #5284: api: move-disk: assert content type support for target storage

Asserts whether the target storage supports storing VM images before
moving a VM volume to the target storage.

Without the check in place, a VM volume can be moved to a storage, which
does not support VM images, but won't be able to start since any
attached volume must be stored on a supported storage.

Signed-off-by: Daniel Kral <d.kral@proxmox.com>
This commit is contained in:
Daniel Kral 2025-02-11 17:08:01 +01:00 committed by Fiona Ebner
parent 295d0be11c
commit b17e33788d

View File

@ -4233,6 +4233,10 @@ __PACKAGE__->register_method({
die "you can't move to the same storage with same format\n"
if $oldstoreid eq $storeid && (!$format || !$oldfmt || $oldfmt eq $format);
my $scfg = PVE::Storage::storage_check_enabled($storecfg, $storeid);
raise_param_exc({ storage => "storage '$storeid' does not support vm images" })
if !$scfg->{content}->{images};
# this only checks snapshots because $disk is passed!
my $snapshotted = PVE::QemuServer::Drive::is_volume_in_use(
$storecfg,