From: Frank Brehm Date: Fri, 12 Jan 2018 16:37:43 +0000 (+0100) Subject: Adding method get_zone_nameservers() to PdnsApiZone X-Git-Tag: 0.1.2~36 X-Git-Url: https://git.uhu-banane.net/?a=commitdiff_plain;h=5367d2fe321b744881def29d9ed2440782cfd8f4;p=pixelpark%2Fadmin-tools.git Adding method get_zone_nameservers() to PdnsApiZone --- 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__":