]> Frank Brehm's Git Trees - pixelpark/admin-tools.git/commitdiff
Adding method get_zone_nameservers() to PdnsApiZone
authorFrank Brehm <frank.brehm@pixelpark.com>
Fri, 12 Jan 2018 16:37:43 +0000 (17:37 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Fri, 12 Jan 2018 16:37:43 +0000 (17:37 +0100)
pp_lib/pdns_zone.py

index a1236c18a9e6325fbeac62d3b3916289111088a2..40988b38d74228eda045952647cd02222a0acd85 100644 (file)
@@ -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__":