[pve-devel] [PATCH 7/7] update_vm api : add optionnal revert option
Alexandre Derumier
aderumier at odiso.com
Fri Jan 2 15:16:04 CET 2015
Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
PVE/API2/Qemu.pm | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index e39e59b..d097662 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -832,9 +832,11 @@ my $update_vm_api = sub {
my $delete_str = extract_param($param, 'delete');
+ my $revert_str = extract_param($param, 'revert');
+
my $force = extract_param($param, 'force');
- die "no options specified\n" if !$delete_str && !scalar(keys %$param);
+ die "no options specified\n" if !$delete_str && !$revert_str && !scalar(keys %$param);
my $storecfg = PVE::Storage::config();
@@ -858,6 +860,15 @@ my $update_vm_api = sub {
push @delete, $opt;
}
+ my @revert = ();
+ foreach my $opt (PVE::Tools::split_list($revert_str)) {
+ if (!PVE::QemuServer::option_exists($opt)) {
+ raise_param_exc({ revert => "unknown option '$opt'" });
+ }
+
+ push @revert, $opt;
+ }
+
foreach my $opt (keys %$param) {
if (PVE::QemuServer::valid_drivename($opt)) {
# cleanup drive path
@@ -900,6 +911,14 @@ my $update_vm_api = sub {
print "update VM $vmid: " . join (' ', @paramarr) . "\n";
+ foreach my $opt (PVE::Tools::split_list(@revert)) {
+ if (defined($conf->{$opt})) {
+ $param->{$opt} = $conf->{$opt};
+ }elsif (defined($conf->{pending}->{$opt})) {
+ push @delete, $opt;
+ }
+ }
+
# write updates to pending section
my $modified = {}; # record what $option we modify
@@ -1081,6 +1100,11 @@ __PACKAGE__->register_method({
description => "A list of settings you want to delete.",
optional => 1,
},
+ revert => {
+ type => 'string', format => 'pve-configid-list',
+ description => "Revert a pending change.",
+ optional => 1,
+ },
force => {
type => 'boolean',
description => $opt_force_description,
@@ -1131,6 +1155,11 @@ __PACKAGE__->register_method({
description => "A list of settings you want to delete.",
optional => 1,
},
+ revert => {
+ type => 'string', format => 'pve-configid-list',
+ description => "Revert a pending change.",
+ optional => 1,
+ },
force => {
type => 'boolean',
description => $opt_force_description,
--
1.7.10.4
More information about the pve-devel
mailing list