From eab09f4e11db4e12fef1b6cc6bd837ab8432a93c Mon Sep 17 00:00:00 2001 From: Alexandre Derumier Date: Thu, 30 Oct 2014 13:40:22 +0100 Subject: [PATCH] parse_vm_config : parse pending changes example: [PENDING] virtio1:... delete:net0,net1 $conf->{pending}->{virtio1} $conf->{pending}->{del}->{net0} $conf->{pending}->{del}->{net1} Signed-off-by: Alexandre Derumier Signed-off-by: Dietmar Maurer --- PVE/QemuServer.pm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index cb84f42c..af516886 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -1837,6 +1837,7 @@ sub parse_vm_config { my $res = { digest => Digest::SHA::sha1_hex($raw), snapshots => {}, + pending => {} }; $filename =~ m|/qemu-server/(\d+)\.conf$| @@ -1851,7 +1852,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 = ''; @@ -1872,6 +1877,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;