the default behaviour is the same as in Qemu, so without the 'current' flag set, current values will be replaced with their respective pending counterparts.
Signed-off-by: Oguz Bektas <o.bek...@proxmox.com> --- src/PVE/API2/LXC/Config.pm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/PVE/API2/LXC/Config.pm b/src/PVE/API2/LXC/Config.pm index 769fc3b..6e67186 100644 --- a/src/PVE/API2/LXC/Config.pm +++ b/src/PVE/API2/LXC/Config.pm @@ -53,6 +53,12 @@ __PACKAGE__->register_method({ items => { type => 'array', items => { type => 'string' }}, optional => 1, }, + current => { + description => "Get current values (instead of pending values).", + optional => 1, + default => 0, + type => 'boolean', + }, digest => { type => 'string', description => 'SHA1 digest of configuration file. This can be used to prevent concurrent modifications.', @@ -73,11 +79,28 @@ __PACKAGE__->register_method({ $conf = $snapshot; } + # take pending changes in + 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::LXC::Config->split_flagged_list($conf->{pending}->{delete}); + foreach my $opt (keys %$pending_delete_hash) { + delete $conf->{$opt} if $conf->{$opt}; + } + } + + delete $conf->{snapshots}; + delete $conf->{pending}; return $conf; }}); + my $vm_config_perm_list = [ 'VM.Config.Disk', 'VM.Config.CPU', -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel