Fix indexed parameter conversion in API dump
authorFabian Gr├╝nbichler <f.gruenbichler@proxmox.com>
Tue, 19 Apr 2016 09:47:54 +0000 (11:47 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 19 Apr 2016 10:26:26 +0000 (12:26 +0200)
this would previously skip (i.e., ignore) properties that
matched '^([a-z]+)(\d+)$' even if they were not part of an
indexed properties series (which always start with 0).

This fixes previously missing API dump occurrences of:
-smbios1
-comments6
-netmask6
-gateway6
-address6
-dns1
-dns2
-dns3
-server1
-server2

src/PVE/RESTHandler.pm

index 6799fde..ca3f99b 100644 (file)
@@ -36,8 +36,8 @@ sub api_clone_schema {
            if ($p =~ m/^([a-z]+)(\d+)$/) {
                if ($2 == 0) {
                    $p = "$1\[n\]";
-               } else {
-                   next;
+               } elsif (defined($d->{$1.'0'})) {
+                   next; # only handle once for -xx0, but only if -xx0 exists
                }
            }
            $res->{$k}->{$p} = ref($pd) ? clone($pd) : $pd;