]> Frank Brehm's Git Trees - pixelpark/admin-tools.git/commitdiff
Splitting method get_soa() of class PdnsApiZone into get_soa_rrset(), get_soa_record...
authorFrank Brehm <frank.brehm@pixelpark.com>
Mon, 15 Jan 2018 15:37:13 +0000 (16:37 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Mon, 15 Jan 2018 15:37:13 +0000 (16:37 +0100)
pp_lib/pdns_zone.py

index 40988b38d74228eda045952647cd02222a0acd85..bbc59456930bf827a1818689f3b1ad0a39d4292a 100644 (file)
@@ -24,7 +24,7 @@ from .errors import PpError
 from .obj import PpBaseObjectError, PpBaseObject
 from .pdns_record import PdnsApiRrset, PdnsSoaData
 
-__version__ = '0.4.4'
+__version__ = '0.4.5'
 
 LOG = logging.getLogger(__name__)
 
@@ -372,20 +372,39 @@ class PdnsApiZone(PpBaseObject):
 
         return tpl.format(**params)
 
+    # -------------------------------------------------------------------------
+    def get_soa_rrset(self):
+
+        for rrset in self.rrsets:
+            if rrset.type == 'SOA':
+                return rrset
+        return None
+
+    # -------------------------------------------------------------------------
+    def get_soa_record(self):
+
+        rrset = self.get_soa_rrset()
+        if self.verbose > 3:
+            LOG.debug("Got SOA RRset:\n{}".format(rrset))
+        if not rrset:
+            return None
+        if not rrset.records:
+            return None
+        return rrset.records[0]
+
     # -------------------------------------------------------------------------
     def get_soa(self):
 
         soa = None
+        record = self.get_soa_record()
+        if self.verbose > 3:
+            LOG.debug("Got SOA record:\n{}".format(record))
+        if not record:
+            return None
 
-        for rrset in self.rrsets:
-            if rrset.type == 'SOA':
-                for record in rrset.records:
-                    soa = PdnsSoaData.init_from_data(
-                        data=record.content, appname=self.appname,
-                        verbose=self.verbose, base_dir=self.base_dir)
-                    break
-                if soa:
-                    break
+        soa = PdnsSoaData.init_from_data(
+            data=record.content, appname=self.appname,
+            verbose=self.verbose, base_dir=self.base_dir)
 
         return soa