[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