commit 825192a3e9042f2d657f6e3e70e3bc934f1d5d5c
parent 7fc4e8c067a398572929960e4b4f8a3c6553dbdd
Author: Christian Grothoff <christian@grothoff.org>
Date: Wed, 1 May 2019 14:15:37 +0200
nicer logging, coding style, eliminate duplicate calls
Diffstat:
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/ascension/ascension.py b/ascension/ascension.py
@@ -142,10 +142,10 @@ class Ascender():
try:
soa_answer = dns.resolver.query(domain, 'SOA')
except dns.resolver.NoAnswer:
- logging.warning("the domain '%s' is not publicly resolvable",
+ logging.warning("The domain '%s' is not publicly resolvable.",
domain)
except dns.resolver.NXDOMAIN:
- logging.warning("the domain '%s' is not publicly resolvable",
+ logging.warning("The domain '%s' is not publicly resolvable.",
domain)
master_answer = dns.resolver.query(soa_answer[0].mname, 'A')
try:
@@ -157,12 +157,14 @@ class Ascender():
master_answer[0].address, domain,
port=cls.port))
except dns.resolver.NoAnswer:
- logging.error("nameserver for '%s' did not answer", domain)
+ logging.error("Nameserver for '%s' did not answer.", domain)
except dns.exception.FormError:
- logging.critical("domain '%s' does not allow xfr requests", domain)
+ logging.critical("Domain '%s' does not allow xfr requests.", domain)
+ # FIXME: do not exit, throw exception, catch in main, retry based on GNS SOA (or default value)
sys.exit(1)
except dns.query.TransferError:
- logging.critical("domain '%s' does not allow xfr requests", domain)
+ logging.critical("Domain '%s' does not allow xfr requests.", domain)
+ # FIXME: do not exit, throw exception, catch in main, retry based on GNS SOA (or default value)
sys.exit(1)
for soa_record in zone.iterate_rdatas(rdtype=dns.rdatatype.SOA):
if not cls.transferns:
@@ -174,30 +176,28 @@ class Ascender():
return soa_record[2].serial
@classmethod
- def mirror_zone(cls, gns_zone_serial=None):
+ def mirror_zone(cls, gns_zone_serial):
"""
Extract necessary information from Generator
"""
dns_zone_serial = int(cls.get_dns_zone_serial(cls.domain, cls.transferns))
- if gns_zone_serial == 0:
- logging.info("zone does not exist yet")
- cls.initial_zone_transfer()
+ if not gns_zone_serial:
+ logging.info("GNS zone does not exist yet, performing full transfer.")
try:
cls.zone = dns.zone.from_xfr(cls.zonegenerator,
check_origin=False)
except dns.zone.BadZone:
logging.critical("Malformed DNS Zone '%s'", cls.domain)
cls.soa = cls.get_zone_soa(cls.zone)
- elif gns_zone_serial < dns_zone_serial:
- logging.info("zone is out of date")
- cls.initial_zone_transfer(serial=gns_zone_serial)
+ elif int(gns_zone_serial) < dns_zone_serial:
+ logging.info("GNS zone is out of date, performing incremental transfer.")
try:
cls.zone = dns.zone.from_xfr(cls.zonegenerator)
except dns.zone.BadZone:
logging.critical("Malformed DNS Zone '%s'", cls.domain)
cls.soa = cls.get_zone_soa(cls.zone)
- elif gns_zone_serial == dns_zone_serial:
- logging.info("zone is up to date")
+ elif int(gns_zone_serial) == dns_zone_serial:
+ logging.info("GNS zone is up to date.")
# should be unnecessary but AXFR SOA might not be equal to direct SOA
else:
# because it runs as a daemon, ignore this case but log it