Am 30.06.25 um 12:15 schrieb Fabian Grünbichler:
> On June 27, 2025 5:57 pm, Fiona Ebner wrote:
>> @@ -4050,28 +4069,63 @@ sub qemu_iothread_del {
>>  sub qemu_driveadd {
>>      my ($storecfg, $vmid, $device) = @_;
>>  
>> -    my $drive = print_drive_commandline_full($storecfg, $vmid, $device, 
>> undef);
>> -    $drive =~ s/\\/\\\\/g;
>> -    my $ret = PVE::QemuServer::Monitor::hmp_cmd($vmid, "drive_add auto 
>> \"$drive\"", 60);
>> +    my $machine_type = 
>> PVE::QemuServer::Machine::get_current_qemu_machine($vmid);
>>  
>> -    # If the command succeeds qemu prints: "OK"
>> -    return 1 if $ret =~ m/OK/s;
>> +    # for the switch to -blockdev
>> +    if 
>> (PVE::QemuServer::Machine::is_machine_version_at_least($machine_type, 10, 
>> 0)) {
> 
> isn't this part here basically Blockdev::attach?
>
>> +        my $throttle_group = 
>> PVE::QemuServer::Blockdev::generate_throttle_group($device);
>> +        mon_cmd($vmid, 'object-add', %$throttle_group);
>>  
>> -    die "adding drive failed: $ret\n";
>> +        eval {
>> +            my $blockdev =
>> +                
>> PVE::QemuServer::Blockdev::generate_drive_blockdev($storecfg, $device, {});
>> +            mon_cmd($vmid, 'blockdev-add', %$blockdev);
>> +        };
>> +        if (my $err = $@) {
>> +            my $drive_id = PVE::QemuServer::Drive::get_drive_id($device);
>> +            eval { mon_cmd($vmid, 'object-del', id => 
>> "throttle-drive-$drive_id"); };
>> +            warn $@ if $@;
>> +            die $err;
>> +        }
>> +
>> +        return 1;
>> +    } else {
>> +        my $drive = print_drive_commandline_full($storecfg, $vmid, $device, 
>> undef);
>> +        $drive =~ s/\\/\\\\/g;
>> +        my $ret = PVE::QemuServer::Monitor::hmp_cmd($vmid, "drive_add auto 
>> \"$drive\"", 60);
>> +
>> +        # If the command succeeds qemu prints: "OK"
>> +        return 1 if $ret =~ m/OK/s;
>> +
>> +        die "adding drive failed: $ret\n";
>> +    }
>>  }
>>  
>>  sub qemu_drivedel {
>>      my ($vmid, $deviceid) = @_;
>>  
>> -    my $ret = PVE::QemuServer::Monitor::hmp_cmd($vmid, "drive_del 
>> drive-$deviceid", 10 * 60);
>> -    $ret =~ s/^\s+//;
>> +    my $machine_type = 
>> PVE::QemuServer::Machine::get_current_qemu_machine($vmid);
>>  
>> -    return 1 if $ret eq "";
>> +    # for the switch to -blockdev
>> +    if 
>> (PVE::QemuServer::Machine::is_machine_version_at_least($machine_type, 10, 
>> 0)) {
> 
> and this here Blockdev::detach?

Yes, sorry! I forgot to switch to using the helpers here.


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to