X-Git-Url: https://git.openstreetmap.org/dns.git/blobdiff_plain/27a3dfe0c9ce66a7e2fb889260b9cdfffbc79856..9499aa23156007dacac1b5a8faea2ea97fccfe3c:/bin/mkgeo diff --git a/bin/mkgeo b/bin/mkgeo index dcc192a..a732711 100755 --- a/bin/mkgeo +++ b/bin/mkgeo @@ -6,7 +6,7 @@ use warnings; use IO::File; use Math::Trig qw(deg2rad pip2 great_circle_distance); use JSON::XS; -use LWP::UserAgent; +use LWP::UserAgent::Determined; use YAML; my $originfile = shift @ARGV; @@ -75,7 +75,8 @@ foreach my $server (@servers) # If pingdom support is enabled then check which servers are up if ($ENV{PINGDOM_USERNAME} && $ENV{PINGDOM_PASSWORD}) { - my $ua = LWP::UserAgent->new; + my $ua = LWP::UserAgent::Determined->new; + $ua->timeout(15); $ua->default_header("App-Key", "2cohi62u5haxvqmypk3ljqqrze1jufrh"); $ua->credentials("api.pingdom.com:443", "Pingdom API", $ENV{PINGDOM_USERNAME}, $ENV{PINGDOM_PASSWORD}); @@ -105,11 +106,22 @@ if ($ENV{PINGDOM_USERNAME} && $ENV{PINGDOM_PASSWORD}) } } +# Create target origins object +my $targetorigins = {}; + # Initialise cluster details while (my($name,$cluster) = each %$clusters) { $cluster->{bandwidth_limit} = $cluster->{bandwidth} * 1024 * 1024; $cluster->{bandwidth_used} = 0; + + $targetorigins->{$cluster->{name}} = { + code => $cluster->{name}, + name => $cluster->{name}, + lat => $cluster->{lat}, + lon => $cluster->{lon}, + bandwidth => 0 + }; } my @mappings = (); @@ -162,9 +174,6 @@ while (grep { !exists($_->{cluster}) } values %$origins) # Create JSON collection object my @json; -# Create target origins object -my $targetorigins = {}; - # Open output files my $zonefile = IO::File->new("> data/${zone}") || die "$!"; my $jsonfile = IO::File->new("> json/${zone}.json") || die "$!"; @@ -203,17 +212,6 @@ foreach my $origin (values %$origins) } }; - unless (exists($targetorigins->{$cluster->{name}})) - { - $targetorigins->{$cluster->{name}} = { - code => $cluster->{name}, - name => $cluster->{name}, - lat => $cluster->{lat}, - lon => $cluster->{lon}, - bandwidth => 0 - }; - } - $targetorigins->{$cluster->{name}}->{bandwidth} += $origin->{bandwidth}; } @@ -397,11 +395,11 @@ sub output_server { if ($server->{status} eq "up") { - $zonefile->print("+${name}:$server->{ipv4}:600\n"); + $zonefile->print("+${name}:$server->{ipv4}:3600\n"); if ($server->{ipv6}) { -# $zonefile->print("3${name}:$server->{ipv6}:600\n"); +# $zonefile->print("3${name}:$server->{ipv6}:3600\n"); } } }