[pve-devel] [PATCH v2 common 1/5] jsonschema: register 'timezone' format and add verification method
Oguz Bektas
o.bektas at proxmox.com
Wed Jun 17 15:32:29 CEST 2020
/usr/share/zoneinfo/zone.tab has the valid list of time zones.
Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
---
v1->v2:
* don't use array for verifying format
src/PVE/JSONSchema.pm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm
index 84fb694..15a498c 100644
--- a/src/PVE/JSONSchema.pm
+++ b/src/PVE/JSONSchema.pm
@@ -482,6 +482,25 @@ sub pve_verify_dns_name {
return $name;
}
+register_format('timezone', \&pve_verify_timezone);
+sub pve_verify_timezone {
+ my ($timezone, $noerr) = @_;
+
+ my $zonetab = "/usr/share/zoneinfo/zone.tab";
+ return $timezone if $timezone eq 'UTC';
+ open(my $fh, "<", $zonetab);
+ while(my $line = <$fh>) {
+ next if $line =~ /^#/;
+ chomp $line;
+ return $timezone if $timezone eq (split /\t/, $line)[2]; # found
+ }
+ close $fh;
+
+ return undef if $noerr;
+ die "invalid time zone '$timezone'\n";
+
+}
+
# network interface name
register_format('pve-iface', \&pve_verify_iface);
sub pve_verify_iface {
--
2.20.1
More information about the pve-devel
mailing list