mirror of
https://git.proxmox.com/git/pve-common
synced 2025-07-17 15:56:14 +00:00
JSONSchema: verify comma-separated property strings
This commit is contained in:
parent
095b88fd51
commit
2f9e609a46
@ -396,8 +396,9 @@ PVE::JSONSchema::register_standard_option('pve-startup-order', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
sub check_format {
|
sub check_format {
|
||||||
my ($format, $value) = @_;
|
my ($format, $value, $path) = @_;
|
||||||
|
|
||||||
|
return parse_property_string($format, $value, $path) if ref($format) eq 'HASH';
|
||||||
return if $format eq 'regex';
|
return if $format eq 'regex';
|
||||||
|
|
||||||
if ($format =~ m/^(.*)-a?list$/) {
|
if ($format =~ m/^(.*)-a?list$/) {
|
||||||
@ -427,6 +428,7 @@ sub check_format {
|
|||||||
|
|
||||||
die "undefined format '$format'\n" if !$code;
|
die "undefined format '$format'\n" if !$code;
|
||||||
|
|
||||||
|
return parse_property_string($code, $value, $path) if ref($code) eq 'HASH';
|
||||||
&$code($value);
|
&$code($value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -728,7 +730,7 @@ sub check_prop {
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (my $format = $schema->{format}) {
|
if (my $format = $schema->{format}) {
|
||||||
eval { check_format($format, $value); };
|
eval { check_format($format, $value, $path); };
|
||||||
if ($@) {
|
if ($@) {
|
||||||
add_error($errors, $path, "invalid format - $@");
|
add_error($errors, $path, "invalid format - $@");
|
||||||
return;
|
return;
|
||||||
@ -915,7 +917,7 @@ my $default_schema_noref = {
|
|||||||
description => "indicates a required property or a schema that must be validated if this property is present",
|
description => "indicates a required property or a schema that must be validated if this property is present",
|
||||||
},
|
},
|
||||||
format => {
|
format => {
|
||||||
type => "string",
|
type => [ "string", "object" ],
|
||||||
optional => 1,
|
optional => 1,
|
||||||
description => "This indicates what format the data is among some predefined formats which may include:\n\ndate - a string following the ISO format \naddress \nschema - a schema definition object \nperson \npage \nhtml - a string representing HTML",
|
description => "This indicates what format the data is among some predefined formats which may include:\n\ndate - a string following the ISO format \naddress \nschema - a schema definition object \nperson \npage \nhtml - a string representing HTML",
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user