]> Frank Brehm's Git Trees - pixelpark/admin-tools.git/commitdiff
Setting a zone to local if necessary
authorFrank Brehm <frank.brehm@pixelpark.com>
Wed, 22 Nov 2017 11:05:18 +0000 (12:05 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Wed, 22 Nov 2017 11:05:18 +0000 (12:05 +0100)
pp_lib/import_pdnsdata.py

index 09f8572dc4897a763e54dd46350d4ebc928c7ee7..a6d61d52b27d34ac7b9987f29482b39e2e039baa 100644 (file)
@@ -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))