]> git.openstreetmap.org Git - dns.git/blobdiff - bin/mkgeo
Use portable location for GeoIP database
[dns.git] / bin / mkgeo
index 4a183e85d210843055549aedbefa5076973bca29..3a69d89af6639e476e78c61cc910a8dbd73656a8 100755 (executable)
--- a/bin/mkgeo
+++ b/bin/mkgeo
@@ -35,7 +35,7 @@ while (my($name,$cluster) = each %$clusters)
             push @servers, $server;
         }
     }
-    else
+    elsif ($cluster->{requests} > 0)
     {
         my $server = {
             cluster => $cluster,
@@ -50,6 +50,10 @@ while (my($name,$cluster) = each %$clusters)
 
         push @servers, $server;
     }
+    else
+    {
+        $cluster->{servers} = [];
+    }
 
     $cluster->{name} = $name;
     $cluster->{status} = "down";
@@ -145,6 +149,9 @@ foreach my $server (@servers)
     }
 }
 
+# Abort if no servers at all are up
+exit 0 unless grep { $_->{status} eq "up" } values(%$clusters);
+
 # Create target origins object
 my $targetorigins = {};
 
@@ -227,9 +234,17 @@ foreach my $name (sort keys %$clusters)
     my $cluster = $clusters->{$name};
     my $used = int($cluster->{requests_used} + 0.5);
     my $limit = $cluster->{requests_limit};
-    my $proportion = int($used / $limit * 100 + 0.5);
+
+    if ($limit > 0)
+    {
+        my $proportion = int($used / $limit * 100 + 0.5);
     
-    print "${name}: used ${used} of ${limit} (${proportion}%)\n";
+        print "${name}: used ${used} of ${limit} (${proportion}%)\n";
+    }
+    else
+    {
+        print "${name}: used ${used} of ${limit}\n";
+    }
 }
 
 # Create JSON collection object
@@ -340,7 +355,7 @@ if (defined($gdnsname))
     my $continent = "";
 
     $gdnsmapfile->print("${gdnsname} => {\n");
-    $gdnsmapfile->print("  geoip2_db => /usr/share/GeoIP/GeoLite2-Country.mmdb\n");
+    $gdnsmapfile->print("  geoip2_db => /etc/gdnsd/geoip/GeoLite2-Country.mmdb\n");
     $gdnsmapfile->print("  datacenters => [" . join(",", sort(keys(%$clusters))) . "]\n");
     $gdnsmapfile->print("  map => {\n");
     $gdnsmapfile->print("    default => [" . join(",", sort(map { $_->{name} } grep { $_->{default} } values(%$clusters))) . "]\n");