blockdev: add blockdev_change_medium() helper

The new helper will be used after the switch to blockdev starting with
machine version 10.0.

Co-developed-by: Alexandre Derumier <alexandre.derumier@groupe-cyllene.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
This commit is contained in:
Fiona Ebner 2025-07-02 18:28:11 +02:00 committed by Fabian Grünbichler
parent 59e01f1d44
commit 5344463c59

View file

@ -562,6 +562,21 @@ sub resize {
);
}
my sub blockdev_change_medium {
my ($storecfg, $vmid, $qdev_id, $drive) = @_;
# force eject if locked
mon_cmd($vmid, "blockdev-open-tray", force => JSON::true, id => "$qdev_id");
mon_cmd($vmid, "blockdev-remove-medium", id => "$qdev_id");
detach($vmid, "drive-$qdev_id");
return if $drive->{file} eq 'none';
attach($storecfg, $vmid, $drive, {});
mon_cmd($vmid, "blockdev-insert-medium", id => "$qdev_id", 'node-name' => "drive-$qdev_id");
mon_cmd($vmid, "blockdev-close-tray", id => "$qdev_id");
}
sub change_medium {
my ($storecfg, $vmid, $qdev_id, $drive) = @_;