From 04dc3dca2690e8181c7ca5671f59add93b5cb3dc Mon Sep 17 00:00:00 2001 From: Daniel Salzman Date: Tue, 8 Oct 2013 15:44:22 +0200 Subject: [PATCH] func-test: add get soa serial function --- func-test/tools/data/example.com.zone | 2 +- func-test/tools/dnstest.py | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/func-test/tools/data/example.com.zone b/func-test/tools/data/example.com.zone index 783b66c75..8a1af1e3c 100644 --- a/func-test/tools/data/example.com.zone +++ b/func-test/tools/data/example.com.zone @@ -1,7 +1,7 @@ $ORIGIN example.com. $TTL 3600 -@ SOA dns1 hostmaster 2010111213 10800 3600 1209600 7200 +@ SOA dns1 hostmaster 2010111201 10800 3600 1209600 7200 NS dns1 NS dns2 MX 10 mail diff --git a/func-test/tools/dnstest.py b/func-test/tools/dnstest.py index 70abfbdbe..0e13ba325 100644 --- a/func-test/tools/dnstest.py +++ b/func-test/tools/dnstest.py @@ -605,7 +605,7 @@ class DnsServer(object): elif rtype.upper() == "IXFR": resp = dns.query.xfr(self.addr, rname, rtype, rclass, \ port=self.port, lifetime=timeout, \ - use_udp=udp, serial=serial, \ + use_udp=udp, serial=int(serial), \ **key_params) else: query = dns.message.make_query(rname, rtype, rclass) @@ -665,6 +665,16 @@ class DnsServer(object): return Update(self, dns.update.Update(zname, **key_params)) + def soa_serial(self, zone): + '''Returns zone SOA serial''' + + if len(zone) != 1: + raise Exception("One zone required.") + + zname = list(zone.keys())[0] + resp = self.dig(zname, "SOA") + return str((resp.resp.answer[0]).to_rdataset()).split()[5] + class Bind(DnsServer): def __init__(self):