403b09
From bbc716fa6c58305e81962ea9f7e7e710ff51ad99 Mon Sep 17 00:00:00 2001
403b09
From: Martin Basti <mbasti@redhat.com>
403b09
Date: Tue, 13 Sep 2016 19:12:40 +0200
403b09
Subject: [PATCH] Catch DNS exceptions during emptyzones named.conf upgrade
403b09
403b09
For some reasons named may not be runnig and this cause fail of this
403b09
upgrade step. This step is not critical so only ERROR message with
403b09
recommendation is shown.
403b09
403b09
https://fedorahosted.org/freeipa/ticket/6205
403b09
403b09
Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
403b09
---
403b09
 ipaserver/install/server/upgrade.py | 17 ++++++++++++++---
403b09
 1 file changed, 14 insertions(+), 3 deletions(-)
403b09
403b09
diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py
403b09
index e1343f423cec21f02e3d9581012496baa7b30cc6..3b23c2e688f436453cfa185f87780b7ff5cafa16 100644
403b09
--- a/ipaserver/install/server/upgrade.py
403b09
+++ b/ipaserver/install/server/upgrade.py
403b09
@@ -11,6 +11,8 @@ import pwd
403b09
 import fileinput
403b09
 import sys
403b09
 
403b09
+import dns.exception
403b09
+
403b09
 import six
403b09
 from six.moves.configparser import SafeConfigParser
403b09
 
403b09
@@ -840,9 +842,18 @@ def named_update_global_forwarder_policy():
403b09
         'forward_policy_conflict_with_empty_zones_handled',
403b09
         True
403b09
     )
403b09
-    if not dnsutil.has_empty_zone_addresses(api.env.host):
403b09
-        # guess: local server does not have IP addresses from private ranges
403b09
-        # so hopefully automatic empty zones are not a problem
403b09
+    try:
403b09
+        if not dnsutil.has_empty_zone_addresses(api.env.host):
403b09
+            # guess: local server does not have IP addresses from private
403b09
+            # ranges so hopefully automatic empty zones are not a problem
403b09
+            return False
403b09
+    except dns.exception.DNSException as ex:
403b09
+        root_logger.error(
403b09
+            'Skipping update of global DNS forwarder in named.conf: '
403b09
+            'Unable to determine if local server is using an '
403b09
+            'IP address belonging to an automatic empty zone. '
403b09
+            'Consider changing forwarding policy to "only". '
403b09
+            'DNS exception: %s', ex)
403b09
         return False
403b09
 
403b09
     if bindinstance.named_conf_get_directive(
403b09
-- 
403b09
2.7.4
403b09