in config GET call, we can now use the new shared methods from
guest-common, namely load_current_config and load_snapshot_config.

the correct method is called depending on the parameters 'current' or
'snapshot'

Signed-off-by: Oguz Bektas <o.bek...@proxmox.com>
---
 PVE/API2/Qemu.pm | 41 ++++++++++-------------------------------
 1 file changed, 10 insertions(+), 31 deletions(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index 267a08e..ba6de27 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -865,40 +865,19 @@ __PACKAGE__->register_method({
     code => sub {
        my ($param) = @_;
 
-       my $conf = PVE::QemuConfig->load_config($param->{vmid});
-
-       if (my $snapname = $param->{snapshot}) {
-           my $snapshot = $conf->{snapshots}->{$snapname};
-           die "snapshot '$snapname' does not exist\n" if !defined($snapshot);
-
-           $snapshot->{digest} = $conf->{digest}; # keep file digest for API
-
-           $conf = $snapshot;
-       }
-
-       delete $conf->{snapshots};
-
-       if (!$param->{current}) {
-           foreach my $opt (keys %{$conf->{pending}}) {
-               next if $opt eq 'delete';
-               my $value = $conf->{pending}->{$opt};
-               next if ref($value); # just to be sure
-               $conf->{$opt} = $value;
-           }
-           my $pending_delete_hash = 
PVE::QemuServer::split_flagged_list($conf->{pending}->{delete});
-           foreach my $opt (keys %$pending_delete_hash) {
-               delete $conf->{$opt} if $conf->{$opt};
-           }
-       }
-
-       delete $conf->{pending};
+       raise_param_exc({ snapshot => "cannot use 'snapshot' parameter with 
'current'",
+                         current => "cannot use 'snapshot' parameter with 
'current'"})
+           if ($param->{snapshot} && $param->{current});
 
-       # hide cloudinit password
-       if ($conf->{cipassword}) {
-           $conf->{cipassword} = '**********';
+       my $conf;
+       if ($param->{snapshot}) {
+           $conf = PVE::QemuConfig->load_snapshot_config($param->{vmid}, 
$param->{snapshot});
+       } else {
+           $conf = PVE::QemuConfig->load_current_config($param->{vmid}, 
$param->{current});
        }
-
+       $conf->{cipassword} = '**********' if $conf->{cipassword};
        return $conf;
+
     }});
 
 __PACKAGE__->register_method({
-- 
2.20.1

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

Reply via email to