since containers can also have pending changes now, we need a method to
get the current applied config as well as the one with the pending
changes inside. this makes the GET config api more consistent with
qemu-server's by reusing load_current_config and load_snapshot_config from
AbstractConfig.
to decide which method to call, we look at the parameters.

Signed-off-by: Oguz Bektas <o.bek...@proxmox.com>
---
 src/PVE/API2/LXC/Config.pm | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/src/PVE/API2/LXC/Config.pm b/src/PVE/API2/LXC/Config.pm
index 769fc3b..41e75a8 100644
--- a/src/PVE/API2/LXC/Config.pm
+++ b/src/PVE/API2/LXC/Config.pm
@@ -34,6 +34,12 @@ __PACKAGE__->register_method({
        properties => {
            node => get_standard_option('pve-node'),
            vmid => get_standard_option('pve-vmid', { completion => 
\&PVE::LXC::complete_ctid }),
+           current => {
+               description => "Get current values (instead of pending 
values).",
+               optional => 1,
+               default => 0,
+               type => 'boolean',
+           },
            snapshot => get_standard_option('pve-snapshot-name', {
                description => "Fetch config values from given snapshot.",
                optional => 1,
@@ -62,19 +68,17 @@ __PACKAGE__->register_method({
     code => sub {
        my ($param) = @_;
 
-       my $conf = PVE::LXC::Config->load_config($param->{vmid});
+       raise_param_exc({ snapshot => "cannot use 'snapshot' parameter with 
'current'",
+                         current => "cannot use 'snapshot' parameter with 
'current'"})
+           if ($param->{snapshot} && $param->{current});
 
-       if (my $snapname = $param->{snapshot}) {
-           my $snapshot = $conf->{snapshots}->{$snapname};
-           die "snapshot '$snapname' does not exist\n" if !defined($snapshot);
-
-           # we need the digest of the file
-           $snapshot->{digest} = $conf->{digest};
-           $conf = $snapshot;
+       my $conf;
+       if ($param->{snapshot}) {
+           $conf = PVE::LXC::Config->load_snapshot_config($param->{vmid}, 
$param->{snapshot});
+       } else {
+           $conf = PVE::LXC::Config->load_current_config($param->{vmid}, 
$param->{current});
        }
 
-       delete $conf->{snapshots};
-
        return $conf;
     }});
 
-- 
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