used to forbid a virtual machine remove operation

v2 changes: error message
---
 PVE/API2/Qemu.pm  | 11 +++++++++++
 PVE/QemuServer.pm |  6 ++++++
 2 files changed, 17 insertions(+)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index 20d73f7..a302d06 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -299,6 +299,12 @@ __PACKAGE__->register_method({
                    type => 'string', format => 'pve-poolid',
                    description => "Add the VM to the specified pool.",
                },
+               protection => {
+                   optional => 1,
+                   type => 'boolean',
+                   description => "Enable/disable VM protection mode.",
+                   default => 0,
+                },
            }),
     },
     returns => {
@@ -325,6 +331,8 @@ __PACKAGE__->register_method({
 
        my $pool = extract_param($param, 'pool');
 
+       my $protection = extract_param($param, 'protection');
+
        my $filename = PVE::QemuServer::config_file($vmid);
 
        my $storecfg = PVE::Storage::config();
@@ -1142,6 +1150,9 @@ __PACKAGE__->register_method({
 
        my $storecfg = PVE::Storage::config();
 
+       die  "can't remove VM $vmid - protection mode enabled\n"
+           if ($conf->{protection} == 1);
+
        die "unable to remove VM $vmid - used in HA resources\n"
            if PVE::HA::Config::vm_is_ha_managed($vmid);
 
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index be53a1e..c82c052 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -384,6 +384,12 @@ EODESCR
        maxLength => 256,
        optional => 1,
     },
+    protection => {
+        optional => 1,
+        type => 'boolean',
+        description => "The enable/disable VM protection mode used to forbid a 
virtual machine remove operation.",
+        default => 0,
+    },
 };
 
 # what about other qemu settings ?
-- 
2.1.4


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

Reply via email to