X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=src%2FPVE%2FJSONSchema.pm;h=b53736e4c63b0ec9975e2b385defcb71229e8597;hb=88a490ff71d5491b2564f4f49931e71410bed9c3;hp=5131e4dc07b7ed27c855950c681e4c81b79fffc5;hpb=32f8e0c75bab20a363192f5bd5d0b7037fd7f918;p=pve-common.git diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm index 5131e4d..b53736e 100644 --- a/src/PVE/JSONSchema.pm +++ b/src/PVE/JSONSchema.pm @@ -229,7 +229,9 @@ my $ipv4_mask_hash = { '255.255.255.224' => 27, '255.255.255.240' => 28, '255.255.255.248' => 29, - '255.255.255.252' => 30 + '255.255.255.252' => 30, + '255.255.255.254' => 31, + '255.255.255.255' => 32, }; register_format('ipv4mask', \&pve_verify_ipv4mask); @@ -643,6 +645,9 @@ sub check_type { return undef; } return 1; + } elsif ($type eq 'string' && $vt eq 'Regexp') { + # qr// regexes can be used as strings and make sense for format=regex + return 1; } else { if ($vt) { add_error($errors, $path, "type check ('$type') failed - got $vt"); @@ -1601,7 +1606,7 @@ sub print_property_string { my $done = { map { $_ => 1 } @$skip }; my $cond_add_key = sub { - my ($key) = @_; + my ($key, $isdefault) = @_; return if $done->{$key}; # avoid duplicates @@ -1633,11 +1638,15 @@ sub print_property_string { die "internal error" if defined($phash->{alias}); my $value_str = &$format_value($key, $value, $phash->{format}); - &$add_option_string("$key=${value_str}"); + if ($isdefault) { + &$add_option_string($value_str); + } else { + &$add_option_string("$key=${value_str}"); + } }; # add default key first - &$cond_add_key($default_key) if defined($default_key); + &$cond_add_key($default_key, 1) if defined($default_key); # add required keys first foreach my $key (sort keys %$data) {