diff options
author | Oleg Fayans <ofayans@redhat.com> | 2016-09-09 14:41:59 +0200 |
---|---|---|
committer | David Kupka <dkupka@redhat.com> | 2016-09-22 15:20:42 +0200 |
commit | e0b67dfa7e957cc134043b265b87ed71bb09a7d3 (patch) | |
tree | 3d1a0c69a94d6a6ac252a4b841285eb2b1f48078 /ipatests/test_integration | |
parent | 24f218f4ebe203213eebede59ff79b89c657ee76 (diff) | |
download | freeipa-e0b67dfa7e957cc134043b265b87ed71bb09a7d3.tar.gz freeipa-e0b67dfa7e957cc134043b265b87ed71bb09a7d3.tar.xz freeipa-e0b67dfa7e957cc134043b265b87ed71bb09a7d3.zip |
tests: Updated master and replica installation methods to enable negative testing
Negative testing was enabled by introducing an optional raiseonerr parameter
with True by default to both master and replica installation methods
Also the methods were updated to support intractive installation
Reviewed-By: David Kupka <dkupka@redhat.com>
Diffstat (limited to 'ipatests/test_integration')
-rw-r--r-- | ipatests/test_integration/tasks.py | 94 |
1 files changed, 54 insertions, 40 deletions
diff --git a/ipatests/test_integration/tasks.py b/ipatests/test_integration/tasks.py index d6cf05b31..f5c27b74e 100644 --- a/ipatests/test_integration/tasks.py +++ b/ipatests/test_integration/tasks.py @@ -255,7 +255,8 @@ def enable_replication_debugging(host): def install_master(host, setup_dns=True, setup_kra=False, extra_args=(), - domain_level=None): + domain_level=None, unattended=True, stdin_text=None, + raiseonerr=True): if domain_level is None: domain_level = host.config.domain_level setup_server_logs_collecting(host) @@ -263,13 +264,15 @@ def install_master(host, setup_dns=True, setup_kra=False, extra_args=(), fix_apache_semaphores(host) args = [ - 'ipa-server-install', '-U', + 'ipa-server-install', '-n', host.domain.name, '-r', host.domain.realm, '-p', host.config.dirman_password, '-a', host.config.admin_password, "--domain-level=%i" % domain_level, ] + if unattended: + args.append('-U') if setup_dns: args.extend([ @@ -279,20 +282,20 @@ def install_master(host, setup_dns=True, setup_kra=False, extra_args=(), ]) args.extend(extra_args) - - host.run_command(args) - enable_replication_debugging(host) - setup_sssd_debugging(host) - - if setup_kra: - args = [ - "ipa-kra-install", - "-p", host.config.dirman_password, - "-U", - ] - host.run_command(args) - - kinit_admin(host) + result = host.run_command(args, raiseonerr=raiseonerr, + stdin_text=stdin_text) + if result.returncode == 0: + enable_replication_debugging(host) + setup_sssd_debugging(host) + if setup_kra: + args = [ + "ipa-kra-install", + "-p", host.config.dirman_password, + "-U", + ] + host.run_command(args) + kinit_admin(host) + return result def get_replica_filename(replica): @@ -328,7 +331,8 @@ def master_authoritative_for_client_domain(master, client): return False -def replica_prepare(master, replica): +def replica_prepare(master, replica, extra_args=(), + raiseonerr=True, stdin_text=None): fix_apache_semaphores(replica) prepare_reverse_zone(master, replica.ip) args = ['ipa-replica-prepare', @@ -336,15 +340,20 @@ def replica_prepare(master, replica): replica.hostname] if master_authoritative_for_client_domain(master, replica): args.extend(['--ip-address', replica.ip]) - master.run_command(args) - replica_bundle = master.get_file_contents( - paths.REPLICA_INFO_GPG_TEMPLATE % replica.hostname) - replica_filename = get_replica_filename(replica) - replica.put_file_contents(replica_filename, replica_bundle) + args.extend(extra_args) + result = master.run_command(args, raiseonerr=raiseonerr, + stdin_text=stdin_text) + if result.returncode == 0: + replica_bundle = master.get_file_contents( + paths.REPLICA_INFO_GPG_TEMPLATE % replica.hostname) + replica_filename = get_replica_filename(replica) + replica.put_file_contents(replica_filename, replica_bundle) + return result def install_replica(master, replica, setup_ca=True, setup_dns=False, - setup_kra=False, extra_args=(), domain_level=None): + setup_kra=False, extra_args=(), domain_level=None, + unattended=True, stdin_text=None, raiseonerr=True): if domain_level is None: domain_level = domainlevel(master) apply_common_fixes(replica) @@ -352,9 +361,11 @@ def install_replica(master, replica, setup_ca=True, setup_dns=False, allow_sync_ptr(master) # Otherwise ipa-client-install would not create a PTR # and replica installation would fail - args = ['ipa-replica-install', '-U', + args = ['ipa-replica-install', '-p', replica.config.dirman_password, '-w', replica.config.admin_password] + if unattended: + args.append('-U') if setup_ca: args.append('--setup-ca') if setup_dns: @@ -377,22 +388,25 @@ def install_replica(master, replica, setup_ca=True, setup_dns=False, install_client(master, replica) fix_apache_semaphores(replica) args.extend(['-r', replica.domain.realm]) - replica.run_command(args) - enable_replication_debugging(replica) - setup_sssd_debugging(replica) - - if setup_kra: - assert setup_ca, "CA must be installed on replica with KRA" - args = [ - "ipa-kra-install", - "-p", replica.config.dirman_password, - "-U", - ] - if domainlevel(master) == DOMAIN_LEVEL_0: - args.append(replica_filename) - replica.run_command(args) - - kinit_admin(replica) + + result = replica.run_command(args, raiseonerr=raiseonerr, + stdin_text=stdin_text) + if result.returncode == 0: + enable_replication_debugging(replica) + setup_sssd_debugging(replica) + if setup_kra: + assert setup_ca, "CA must be installed on replica with KRA" + args = [ + "ipa-kra-install", + "-p", replica.config.dirman_password, + "-U", + ] + if domainlevel(master) == DOMAIN_LEVEL_0: + args.append(replica_filename) + replica.run_command(args) + + kinit_admin(replica) + return result def install_client(master, client, extra_args=()): |