[pve-devel] [PATCH qemu-server v2 36/49] blockdev: add blockdev_change_medium() helper
Fiona Ebner
f.ebner at proxmox.com
Tue Jul 1 17:40:56 CEST 2025
The new helper will be used after the switch to blockdev starting with
machine version 10.0.
Co-developed-by: Alexandre Derumier <alexandre.derumier at groupe-cyllene.com>
Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>
---
src/PVE/QemuServer/Blockdev.pm | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/PVE/QemuServer/Blockdev.pm b/src/PVE/QemuServer/Blockdev.pm
index 147bf047..c6798eda 100644
--- a/src/PVE/QemuServer/Blockdev.pm
+++ b/src/PVE/QemuServer/Blockdev.pm
@@ -563,6 +563,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) = @_;
--
2.47.2
More information about the pve-devel
mailing list