From 5367d2fe321b744881def29d9ed2440782cfd8f4 Mon Sep 17 00:00:00 2001 From: Frank Brehm Date: Fri, 12 Jan 2018 17:37:43 +0100 Subject: [PATCH] Adding method get_zone_nameservers() to PdnsApiZone --- pp_lib/pdns_zone.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/pp_lib/pdns_zone.py b/pp_lib/pdns_zone.py index a1236c1..40988b3 100644 --- a/pp_lib/pdns_zone.py +++ b/pp_lib/pdns_zone.py @@ -18,12 +18,13 @@ import copy # Own modules from .common import pp, to_bytes, to_utf8, to_bool +from .common import RE_DOT_AT_END from .errors import PpError from .obj import PpBaseObjectError, PpBaseObject from .pdns_record import PdnsApiRrset, PdnsSoaData -__version__ = '0.4.3' +__version__ = '0.4.4' LOG = logging.getLogger(__name__) @@ -388,6 +389,26 @@ class PdnsApiZone(PpBaseObject): return soa + # ------------------------------------------------------------------------- + def get_zone_nameservers(self, for_zone=None): + + nameservers = [] + + for rrset in self.rrsets: + if rrset.type == 'NS': + if for_zone: + if for_zone.lower() != rrset.name.lower(): + continue + else: + if self.name.lower() != rrset.name.lower(): + continue + for record in rrset.records: + ns = RE_DOT_AT_END.sub('.', record.content).lower() + nameservers.append(ns) + + nameservers.sort() + return nameservers + # ============================================================================= if __name__ == "__main__": -- 2.39.5