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 <aderum...@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

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

Reply via email to