X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=src%2FPVE%2FJSONSchema.pm;h=9c624f694c6f423ee643ef025620c369b713f5bb;hb=24197a9f6c698985b7255fbf7792b0b6bd8188b5;hp=4ea9007c21e344c024d6ad72ec16f8f920428e68;hpb=7278cb3c1249e325726d3d9968bba1564cac3832;p=pve-common.git diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm index 4ea9007..9c624f6 100644 --- a/src/PVE/JSONSchema.pm +++ b/src/PVE/JSONSchema.pm @@ -4,6 +4,8 @@ use strict; use warnings; use Storable; # for dclone use Getopt::Long; +use Encode::Locale; +use Encode; use Devel::Cycle -quiet; # todo: remove? use PVE::Tools qw(split_list $IPV6RE $IPV4RE); use PVE::Exception qw(raise); @@ -84,6 +86,12 @@ register_standard_option('pve-config-digest', { maxLength => 40, # sha1 hex digest lenght is 40 }); +register_standard_option('skiplock', { + description => "Ignore locks - only root is allowed to use this option.", + type => 'boolean', + optional => 1, +}); + register_standard_option('extra-args', { description => "Extra arguments as array", type => 'array', @@ -672,7 +680,7 @@ sub check_type { return 1; #} elsif ($value =~ m/^(0|false|no|off)$/i) { } elsif ($value eq '0') { - return 0; + return 1; # return success (not value) } else { add_error($errors, $path, "type check ('$type') failed - got '$value'"); return undef; @@ -1343,7 +1351,9 @@ sub get_options { } } - $opts = PVE::Tools::decode_utf8_parameters($opts); + foreach my $p (keys %$opts) { + $opts->{$p} = decode('locale', $opts->{$p}); + } foreach my $p (keys %$opts) { if (my $pd = $schema->{properties}->{$p}) {