Signed-off-by: Alexandre Derumier <aderum...@odiso.com>
---
 PVE/QemuServer.pm |   18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index fb672eb..5e02734 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -165,8 +165,10 @@ my $confdesc = {
     },
     hotplug => {
         optional => 1,
-        type => 'boolean',
+        type => 'integer',
         description => "Allow hotplug for disk and network device",
+        minimum => 0,
+        maximum => 2,
         default => 1,
     },
     reboot => {
@@ -2591,6 +2593,14 @@ sub vm_deviceunplug {
     my $devices_list = vm_devices_list($vmid);
     return 1 if !defined($devices_list->{$deviceid});
 
+    if ($deviceid =~ m/^(net)(\d+)$/) {
+        return undef if !qemu_netdevdel($vmid, $deviceid);
+        qemu_devicedel($vmid, $deviceid);
+        return undef if !qemu_devicedelverify($vmid, $deviceid);
+    }
+    
+    return 1 if (!$conf->{hotplug} || (defined($conf->{hotplug}) && 
$conf->{hotplug} < 2));
+
     die "can't unplug bootdisk" if $conf->{bootdisk} && $conf->{bootdisk} eq 
$deviceid;
 
     if ($deviceid =~ m/^(virtio)(\d+)$/) {
@@ -2608,12 +2618,6 @@ sub vm_deviceunplug {
         return undef if !qemu_drivedel($vmid, $deviceid);
     }
 
-    if ($deviceid =~ m/^(net)(\d+)$/) {
-        return undef if !qemu_netdevdel($vmid, $deviceid);
-        qemu_devicedel($vmid, $deviceid);
-        return undef if !qemu_devicedelverify($vmid, $deviceid);
-    }
-
     return 1;
 }
 
-- 
1.7.10.4

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

Reply via email to