[pve-devel] [PATCH v2 qemu-server 1/2] parser/writer: namespace pending section

Thomas Lamprecht t.lamprecht at proxmox.com
Mon Nov 25 10:24:01 CET 2019


On 10/24/19 1:53 PM, Oguz Bektas wrote:
> to make the pct/qemu config formats more similar, we can namespace the
> pending section using the 'pve:' prefix like in pct parser.
> 
> the new format is optional in the parser, but default in the writer.
> 
> with PVE 7.0, we can make it default in parser too.

no, we cannot simply do this, this is wrong, you can theoretically
have a PENDING now and it can be kept in their until a VM gets
live-migrated to 7.0, which still needs to work! Remove those
comments.

> Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
> ---
>  PVE/QemuServer.pm | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index 7b225da..8d7994e 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -2643,7 +2643,8 @@ sub parse_vm_config {
>      foreach my $line (@lines) {
>  	next if $line =~ m/^\s*$/;
>  
> -	if ($line =~ m/^\[PENDING\]\s*$/i) {
> +	if ($line =~ m/^\[(?:pve:)?pending\]\s*$/i) {
> +	    # TODO: make 'pve:' prefix non-optional with PVE 7.0
>  	    $section = 'pending';
>  	    if (defined($descr)) {
>  		$descr =~ s/\s+$//;


> @@ -2684,7 +2685,7 @@ sub parse_vm_config {
>  	    if ($section eq 'pending') {
>  		$conf->{delete} = $value; # we parse this later
>  	    } else {
> -		warn "vm $vmid - propertry 'delete' is only allowed in [PENDING]\n";
> +		warn "vm $vmid - property 'delete' is only allowed as a pending change\n";
>  	    }
>  	} elsif ($line =~ m/^([a-z][a-z_]*\d*):\s*(.+?)\s*$/) {
>  	    my $key = $1;
> @@ -2750,7 +2751,7 @@ sub write_vm_config {
>  		$key eq 'snapstate' || $key eq 'pending';
>  	    my $value = $cref->{$key};
>  	    if ($key eq 'delete') {
> -		die "propertry 'delete' is only allowed in [PENDING]\n"
> +		die "property 'delete' is only allowed as a pending change\n"
>  		    if !$pending;
>  		# fixme: check syntax?
>  		next;
> @@ -2810,7 +2811,7 @@ sub write_vm_config {
>      my $raw = &$generate_raw_config($conf);
>  
>      if (scalar(keys %{$conf->{pending}})){
> -	$raw .= "\n[PENDING]\n";
> +	$raw .= "\n[pve:pending]\n";
>  	$raw .= &$generate_raw_config($conf->{pending}, 1);
>      }
>  
> @@ -4820,7 +4821,7 @@ my $fast_plug_option = {
>      'hookscript' => 1,
>  };
>  
> -# hotplug changes in [PENDING]
> +# hotplug changes in [pve:pending]
>  # $selection hash can be used to only apply specified options, for
>  # example: { cores => 1 } (only apply changed 'cores')
>  # $errors ref is used to return error messages
> 





More information about the pve-devel mailing list