[pve-devel] [PATCH qemu-server 05/31] blockdev: add helpers for attaching and detaching block devices
Fiona Ebner
f.ebner at proxmox.com
Mon Jun 30 13:45:46 CEST 2025
Am 30.06.25 um 12:15 schrieb Fabian Grünbichler:
> On June 27, 2025 5:57 pm, Fiona Ebner wrote:
>> +sub attach {
>> + my ($storecfg, $vmid, $drive, $options) = @_;
>> +
>> + my $blockdev = generate_drive_blockdev($storecfg, $drive, $options);
>> +
>> + my $drive_id = PVE::QemuServer::Drive::get_drive_id($drive);
>> + if ($blockdev->{'node-name'} eq "drive-$drive_id") { # device top nodes need a throttle group
>> + my $throttle_group = generate_throttle_group($drive);
>> + mon_cmd($vmid, 'object-add', $throttle_group->%*);
>> + }
>> +
>> + eval { blockdev_add($vmid, $blockdev); };
>> + if (my $err = $@) {
>> + eval { mon_cmd($vmid, 'object-del', id => "throttle-drive-$drive_id"); };
>> + warn $@ if $@;
>> + die $err;
>> + }
>
> not sure whether we want (central) helpers for top-level node name
> (encoding and parsing) and throttle group ID (encoding and parsing)?
Won't hurt.
>> + # also remove throttle group if it was a device top node
>> + my $drive_id = $1;
>> + if (PVE::QemuServer::Drive::is_valid_drivename($drive_id)) {
>> + mon_cmd($vmid, 'object-del', id => "throttle-drive-$drive_id");
>
> should this get an eval?
I think it's better to propagate the error (or do you mean having an
eval+die for adding context to the message)?
More information about the pve-devel
mailing list