From 558ae7321620ae38dd3bf3c613691f0757cf0949 Mon Sep 17 00:00:00 2001 From: Frank Brehm Date: Wed, 22 Nov 2017 12:05:18 +0100 Subject: [PATCH] Setting a zone to local if necessary --- pp_lib/import_pdnsdata.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/pp_lib/import_pdnsdata.py b/pp_lib/import_pdnsdata.py index 09f8572..a6d61d5 100644 --- a/pp_lib/import_pdnsdata.py +++ b/pp_lib/import_pdnsdata.py @@ -31,7 +31,7 @@ from .common import pp, to_bool from .cfg_app import PpCfgAppError, PpConfigApplication -__version__ = '0.8.1' +__version__ = '0.8.2' LOG = logging.getLogger(__name__) # ============================================================================= @@ -58,6 +58,8 @@ class ImportPdnsdataApp(PpConfigApplication): default_tgt_db_schema = 'pdns' default_tgt_db_user = 'pdns' + re_is_local_account = re.compile(r'(lo[ck]al|privat|intern)', re.IGNORECASE) + # ------------------------------------------------------------------------- def __init__(self, appname=None, version=__version__): @@ -626,6 +628,20 @@ class ImportPdnsdataApp(PpConfigApplication): i += 1 if self.is_local(result['name']): LOG.debug("Setting zone {!r} to a local only zone.".format(result['name'])) + cur_account = result['account'] + if cur_account is None: + cur_account = '' + else: + cur_account = cur_account.strip() + if not self.re_is_local_account.search(cur_account): + if cur_account == '': + cur_account = 'local' + else: + cur_account += ', local' + if self.verbose > 1: + LOG.debug("Setting account information of zone {!r} to {!r}.".format( + result['name'], cur_account)) + result['account'] = cur_account if not self.simulate: tgt_cursor.execute(tgt_sql, result) LOG.info("Imported {} domains.".format(i)) @@ -693,8 +709,9 @@ class ImportPdnsdataApp(PpConfigApplication): LOG.debug("Got IPv4 network address of zone {!r}: {!r}.".format(domain, net_address)) network = ipaddress.ip_network(net_address) if network.is_global: - LOG.debug("The network {!r} of zone {!r} is allocated for public networks.".format( - net_address, domain)) + if self.verbose > 1: + LOG.debug("The network {!r} of zone {!r} is allocated for public networks.".format( + net_address, domain)) return False LOG.debug("The network {!r} of zone {!r} is allocated for local networks.".format( net_address, domain)) -- 2.39.5