From: Alexandre Derumier <aderum...@odiso.com>

example:

[PENDING]
virtio1:...
delete:net0,net1

$conf->{pending}->{virtio1}
$conf->{pending}->{del}->{net0}
$conf->{pending}->{del}->{net1}

Signed-off-by: Alexandre Derumier <aderum...@odiso.com>
Signed-off-by: Dietmar Maurer <diet...@proxmox.com>
---
 PVE/QemuServer.pm |   13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 02bf404..0241dc0 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -1782,6 +1782,7 @@ sub parse_vm_config {
     my $res = {
        digest => Digest::SHA::sha1_hex($raw),
        snapshots => {},
+       pending => {}
     };
 
     $filename =~ m|/qemu-server/(\d+)\.conf$|
@@ -1796,7 +1797,11 @@ sub parse_vm_config {
     foreach my $line (@lines) {
        next if $line =~ m/^\s*$/;
 
-       if ($line =~ m/^\[([a-z][a-z0-9_\-]+)\]\s*$/i) {
+       if ($line =~ m/^\[PENDING\]\s*$/i) {
+           $conf = $res->{pending} = {};
+           next;
+
+       }elsif ($line =~ m/^\[([a-z][a-z0-9_\-]+)\]\s*$/i) {
            my $snapname = $1;
            $conf->{description} = $descr if $descr;
            $descr = '';
@@ -1817,6 +1822,12 @@ sub parse_vm_config {
            my $key = $1;
            my $value = $2;
            $conf->{$key} = $value;
+       } elsif ($line =~ m/^(delete):\s*(.*\S)\s*$/) {
+           my $key = $1;
+           my $value = $2;
+           foreach my $opt (split(/,/, $value)) {
+               $conf->{del}->{$opt} = 1;
+           }
        } elsif ($line =~ m/^([a-z][a-z_]*\d*):\s*(\S+)\s*$/) {
            my $key = $1;
            my $value = $2;
-- 
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