[pve-devel] [PATCH 2/5] add optionnal current param to config api
Alexandre Derumier
aderumier at odiso.com
Wed Dec 31 07:42:30 CET 2014
config api return by default the pending config, like this it don't break current behaviour
Add an optionnal current param to get to current running config
Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
PVE/API2/Qemu.pm | 29 ++++++++++++++++++++++-------
1 file changed, 22 insertions(+), 7 deletions(-)
diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index fb36ce8..328a82c 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -624,7 +624,7 @@ __PACKAGE__->register_method({
path => '{vmid}/config',
method => 'GET',
proxyto => 'node',
- description => "Get current virtual machine configuration. This does not include pending configuration changes (see 'pending' API).",
+ description => "Get pending virtual machine configuration",
permissions => {
check => ['perm', '/vms/{vmid}', [ 'VM.Audit' ]],
},
@@ -633,6 +633,12 @@ __PACKAGE__->register_method({
properties => {
node => get_standard_option('pve-node'),
vmid => get_standard_option('pve-vmid'),
+ current => {
+ optional => 1,
+ default => 0,
+ type => 'boolean',
+ description => "Get current values instead pending values",
+ },
},
},
returns => {
@@ -650,6 +656,17 @@ __PACKAGE__->register_method({
my $conf = PVE::QemuServer::load_config($param->{vmid});
delete $conf->{snapshots};
+
+ if(!$param->{current} || (defined($param->{current}) && $param->{current} == 0)) {
+ foreach my $opt (keys $conf->{pending}) {
+ foreach my $opt (PVE::Tools::split_list($conf->{pending}->{delete})) {
+ delete $conf->{$opt} if $conf->{$opt};
+ }
+ next if ref($conf->{pending}->{$opt}); # just to be sure
+ $conf->{$opt} = $conf->{pending}->{$opt};
+ }
+ }
+
delete $conf->{pending};
return $conf;
@@ -685,11 +702,6 @@ __PACKAGE__->register_method({
type => 'string',
optional => 1,
},
- pending => {
- description => "Pending value.",
- type => 'string',
- optional => 1,
- },
delete => {
description => "Indicated a pending delete request.",
type => 'boolean',
@@ -1156,6 +1168,10 @@ __PACKAGE__->register_method({
maxLength => 40,
optional => 1,
},
+ pending => {
+ optional => 1,
+ type => 'boolean',
+ }
}),
},
returns => { type => 'null' },
@@ -1166,7 +1182,6 @@ __PACKAGE__->register_method({
}
});
-
__PACKAGE__->register_method({
name => 'destroy_vm',
path => '{vmid}',
--
1.7.10.4
More information about the pve-devel
mailing list