]> Frank Brehm's Git Trees - pixelpark/admin-tools.git/commitdiff
Adding method get_api_zones() to pp_lib/pdns_app.py and using it in pp_lib/pdns_list_...
authorFrank Brehm <frank.brehm@pixelpark.com>
Thu, 9 Nov 2017 17:08:03 +0000 (18:08 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Thu, 9 Nov 2017 17:08:03 +0000 (18:08 +0100)
pp_lib/pdns_app.py
pp_lib/pdns_list_zones.py

index 68a8818e7ab1b476f259f4893e8bbd333e78d42f..0d0654de744c7faae888e4287edddc5a2b52d4a9 100644 (file)
@@ -24,8 +24,9 @@ import six
 from .common import pp, to_bool
 
 from .cfg_app import PpCfgAppError, PpConfigApplication
+from .pdns_zone import PdnsApiZone
 
-__version__ = '0.3.1'
+__version__ = '0.3.2'
 LOG = logging.getLogger(__name__)
 _LIBRARY_NAME = "pp-pdns-api-client"
 
@@ -538,7 +539,26 @@ class PpPDNSApplication(PpConfigApplication):
 
         return json_response
 
+    # -------------------------------------------------------------------------
+    def get_api_zones(self):
+
+        LOG.debug("Trying to get all zones from PDNS API ...")
+
+        path = "/servers/{}/zones".format(self.api_servername)
+        json_response = self.perform_request(path)
+        if self.verbose > 2:
+            LOG.debug("Got a response:\n{}".format(pp(json_response)))
+
+        zone_list = []
+
+        for data in json_response:
+            zone = PdnsApiZone.init_from_dict(
+                data, appname=self.appname, verbose=self.verbose, base_dir=self.base_dir)
+            zone_list.append(zone)
+            if self.verbose > 2:
+                print("{!r}".format(zone))
 
+        return zone_list
 
 # =============================================================================
 
index aa7521a4dd46b88cdf8fd3063fc057fc071a47bb..8114b86bf05aafdc48874f1bc563b5fedf7defce 100644 (file)
@@ -22,7 +22,7 @@ from .common import pp, compare_fqdn
 from .pdns_app import PpPDNSAppError, PpPDNSApplication
 from .pdns_zone import PdnsApiZone
 
-__version__ = '0.2.3'
+__version__ = '0.3.1'
 LOG = logging.getLogger(__name__)
 
 
@@ -53,25 +53,16 @@ class PpPDNSListZonesApp(PpPDNSApplication):
     # -------------------------------------------------------------------------
     def _run(self):
 
-        LOG.info("Listing all available zones from PowerrDNS environment {!r}.".format(
+        LOG.info("Listing all available zones from PowerDNS environment {!r}.".format(
             self.environment))
 
-        path = "/servers/{}/zones".format(self.api_servername)
-        json_response = self.perform_request(path)
-        if self.verbose > 2:
-            LOG.debug("Got a response:\n{}".format(pp(json_response)))
+        zone_list = self.get_api_zones()
 
-        zone_list = []
         len_zone = 10
-
-        for data in json_response:
-            zone = PdnsApiZone.init_from_dict(
-                data, appname=self.appname, verbose=self.verbose, base_dir=self.base_dir)
-            zone_list.append(zone)
+        for zone in zone_list:
             if len(zone.name_unicode) > len_zone:
                 len_zone = len(zone.name_unicode)
-            if self.verbose > 2:
-                print("{!r}".format(zone))
+
         tpl = PdnsApiZone.get_list_template()
         line = tpl.format(
             name="Zone", len_zone=len_zone, kind="Type", serial="Serial",