From: Frank Brehm Date: Thu, 9 Nov 2017 17:08:03 +0000 (+0100) Subject: Adding method get_api_zones() to pp_lib/pdns_app.py and using it in pp_lib/pdns_list_... X-Git-Tag: 0.1.2~90 X-Git-Url: https://git.uhu-banane.de/?a=commitdiff_plain;h=2b64a5e1e049aec8ac4910843204cf732303402d;p=pixelpark%2Fadmin-tools.git Adding method get_api_zones() to pp_lib/pdns_app.py and using it in pp_lib/pdns_list_zones.py --- diff --git a/pp_lib/pdns_app.py b/pp_lib/pdns_app.py index 68a8818..0d0654d 100644 --- a/pp_lib/pdns_app.py +++ b/pp_lib/pdns_app.py @@ -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 # ============================================================================= diff --git a/pp_lib/pdns_list_zones.py b/pp_lib/pdns_list_zones.py index aa7521a..8114b86 100644 --- a/pp_lib/pdns_list_zones.py +++ b/pp_lib/pdns_list_zones.py @@ -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",