X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=blobdiff_plain;f=src%2FPVE%2FJSONSchema.pm;h=50a08243295ab63b617671344ac2d3f764d7710d;hp=599dd099b0441a4bb8fd0d41406f55b928afb0d1;hb=731950fd1c0d80c4aea86e8f265e62a6ab740e36;hpb=4c72ade059c8af6ae94158377b36fb8e6eb9672b diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm index 599dd09..50a0824 100644 --- a/src/PVE/JSONSchema.pm +++ b/src/PVE/JSONSchema.pm @@ -180,14 +180,19 @@ PVE::JSONSchema::register_format('pve-storage-id', \&parse_storage_id); sub parse_storage_id { my ($storeid, $noerr) = @_; - if ($storeid !~ m/^[a-z][a-z0-9\-\_\.]*[a-z0-9]$/i) { + return parse_id($storeid, 'storage', $noerr); +} + +sub parse_id { + my ($id, $type, $noerr) = @_; + + if ($id !~ m/^[a-z][a-z0-9\-\_\.]*[a-z0-9]$/i) { return undef if $noerr; - die "storage ID '$storeid' contains illegal characters\n"; + die "$type ID '$id' contains illegal characters\n"; } - return $storeid; + return $id; } - register_format('pve-vmid', \&pve_verify_vmid); sub pve_verify_vmid { my ($vmid, $noerr) = @_; @@ -265,6 +270,19 @@ sub pve_verify_ip { return $ip; } +PVE::JSONSchema::register_format('ldap-simple-attr', \&verify_ldap_simple_attr); +sub verify_ldap_simple_attr { + my ($attr, $noerr) = @_; + + if ($attr =~ m/^[a-zA-Z0-9]+$/) { + return $attr; + } + + die "value '$attr' does not look like a simple ldap attribute name\n" if !$noerr; + + return undef; +} + my $ipv4_mask_hash = { '0.0.0.0' => 0, '128.0.0.0' => 1,