Hi all,

On 09/23/2015 09:13 AM, Petr Spacek wrote:
On 22.9.2015 10:42, Oleg Fayans wrote:
+++ b/ipatests/test_integration/tasks.py
@@ -58,6 +58,14 @@ def check_arguments_are(slice, instanceof):
          return wrapped
      return wrapper

+def prepare_reverse_zone(host, ip):
+    nums = ip.split('.')[:-1]
+    zone = ".".join(reversed(nums)) + ".in-addr.arpa."
+    host.run_command(["ipa",
+                      "dnszone-add",
+                      zone,
+                      "--name-from-ip=%s" % ip], raiseonerr=False)
+

NACK:
- this will break IPv6-only hosts
- you should use DNSName class or other functions from python-dns for DNS name
manipulation

I hope this helps.

Thanks, it did :)
Used a ipalib.util get_reverse_zone_default function that does just that: creates a reverse zone name.

--
Oleg Fayans
Quality Engineer
FreeIPA team
RedHat.
From 931638cf3babd9e1650bbfe24ce01a0e11fead25 Mon Sep 17 00:00:00 2001
From: Oleg Fayans <ofay...@redhat.com>
Date: Wed, 23 Sep 2015 16:18:50 +0200
Subject: [PATCH] Added a proper workaround for dnssec test failures in Beaker
 environment

In beaker lab the situation when master and replica have ip addresses from
different subnets is quite frequent. When a replica has ip from different
subnet than master's, ipa-replica-prepare looks up a proper reverse zone to
add a pointer record, and if it does not find it, it asks a user for permission
to create it automatically. It breaks the tests adding the unexpected input.
The workaround is to always create a reverse zone for a new replica.

Corresponding ticket is https://fedorahosted.org/freeipa/ticket/5306
---
 ipatests/test_integration/tasks.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/ipatests/test_integration/tasks.py b/ipatests/test_integration/tasks.py
index 06049d4ae01332e0af4d8775b745342406fc868d..07a5d592d2f3980cfc521ec0b4f38dba71be87ec 100644
--- a/ipatests/test_integration/tasks.py
+++ b/ipatests/test_integration/tasks.py
@@ -37,6 +37,7 @@ from ipapython.ipa_log_manager import log_mgr
 from ipatests.test_integration import util
 from ipatests.test_integration.env_config import env_to_script
 from ipatests.test_integration.host import Host
+from ipalib.util import get_reverse_zone_default
 
 log = log_mgr.get_logger(__name__)
 
@@ -58,6 +59,13 @@ def check_arguments_are(slice, instanceof):
         return wrapped
     return wrapper
 
+def prepare_reverse_zone(host, ip):
+    zone = get_reverse_zone_default(ip)
+    host.run_command(["ipa",
+                      "dnszone-add",
+                      zone,
+                      "--name-from-ip=%s" % ip], raiseonerr=False)
+
 
 def prepare_host(host):
     if isinstance(host, Host):
@@ -240,17 +248,17 @@ def install_replica(master, replica, setup_ca=True, setup_dns=False):
 
     apply_common_fixes(replica)
     fix_apache_semaphores(replica)
-
+    prepare_reverse_zone(master, replica.ip)
     master.run_command(['ipa-replica-prepare',
                         '-p', replica.config.dirman_password,
-                        '--ip-address', replica.ip, '--no-reverse',
+                        '--ip-address', replica.ip,
                         replica.hostname])
     replica_bundle = master.get_file_contents(
         paths.REPLICA_INFO_GPG_TEMPLATE % replica.hostname)
     replica_filename = os.path.join(replica.config.test_dir,
                                     'replica-info.gpg')
     replica.put_file_contents(replica_filename, replica_bundle)
-    args = ['ipa-replica-install', '-U', '--no-host-dns',
+    args = ['ipa-replica-install', '-U',
             '-p', replica.config.dirman_password,
             '-w', replica.config.admin_password,
             '--ip-address', replica.ip,
-- 
2.4.3

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to