[pve-devel] [RFC qemu-server] VM protection mode added

Alen Grizonic a.grizonic at proxmox.com
Thu Sep 3 12:18:45 CEST 2015


used to forbid a virtual machine remove operation
---
 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..5fc0397 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 - 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





More information about the pve-devel mailing list