summaryrefslogtreecommitdiffstats
path: root/ipatests/test_integration/tasks.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipatests/test_integration/tasks.py')
-rw-r--r--ipatests/test_integration/tasks.py42
1 files changed, 35 insertions, 7 deletions
diff --git a/ipatests/test_integration/tasks.py b/ipatests/test_integration/tasks.py
index aebd907eb..38218fa70 100644
--- a/ipatests/test_integration/tasks.py
+++ b/ipatests/test_integration/tasks.py
@@ -57,10 +57,10 @@ def check_arguments_are(slice, instanceof):
and third arguments are integers
"""
def wrapper(func):
- def wrapped(*args):
+ def wrapped(*args, **kwargs):
for i in args[slice[0]:slice[1]]:
assert isinstance(i, instanceof), "Wrong type: %s: %s" % (i, type(i))
- return func(*args)
+ return func(*args, **kwargs)
return wrapped
return wrapper
@@ -678,7 +678,8 @@ def kinit_admin(host):
stdin_text=host.config.admin_password)
-def uninstall_master(host, ignore_topology_disconnect=True):
+def uninstall_master(host, ignore_topology_disconnect=True,
+ ignore_last_of_role=True):
host.collect_log(paths.IPASERVER_UNINSTALL_LOG)
uninstall_cmd = ['ipa-server-install', '--uninstall', '-U']
@@ -687,6 +688,9 @@ def uninstall_master(host, ignore_topology_disconnect=True):
if ignore_topology_disconnect and host_domain_level != DOMAIN_LEVEL_0:
uninstall_cmd.append('--ignore-topology-disconnect')
+ if ignore_last_of_role and host_domain_level != DOMAIN_LEVEL_0:
+ uninstall_cmd.append('--ignore-last-of-role')
+
host.run_command(uninstall_cmd, raiseonerr=False)
host.run_command(['pkidestroy', '-s', 'CA', '-i', 'pki-tomcat'],
raiseonerr=False)
@@ -721,7 +725,7 @@ def clean_replication_agreement(master, replica):
@check_arguments_are((0, 3), Host)
-def create_segment(master, leftnode, rightnode):
+def create_segment(master, leftnode, rightnode, suffix=DOMAIN_SUFFIX_NAME):
"""
creates a topology segment. The first argument is a node to run the command
:returns: a hash object containing segment's name, leftnode, rightnode
@@ -731,7 +735,7 @@ def create_segment(master, leftnode, rightnode):
lefthost = leftnode.hostname
righthost = rightnode.hostname
segment_name = "%s-to-%s" % (lefthost, righthost)
- result = master.run_command(["ipa", "topologysegment-add", DOMAIN_SUFFIX_NAME,
+ result = master.run_command(["ipa", "topologysegment-add", suffix,
segment_name,
"--leftnode=%s" % lefthost,
"--rightnode=%s" % righthost], raiseonerr=False)
@@ -743,7 +747,7 @@ def create_segment(master, leftnode, rightnode):
return {}, result.stderr_text
-def destroy_segment(master, segment_name):
+def destroy_segment(master, segment_name, suffix=DOMAIN_SUFFIX_NAME):
"""
Destroys topology segment.
:param master: reference to master object of class Host
@@ -753,7 +757,7 @@ def destroy_segment(master, segment_name):
kinit_admin(master)
command = ["ipa",
"topologysegment-del",
- DOMAIN_SUFFIX_NAME,
+ suffix,
segment_name]
result = master.run_command(command, raiseonerr=False)
return result.returncode, result.stderr_text
@@ -1181,3 +1185,27 @@ def replicas_cleanup(func):
"host-del",
host.hostname], raiseonerr=False)
return wrapped
+
+
+def run_server_del(host, server_to_delete, force=False,
+ ignore_topology_disconnect=False,
+ ignore_last_of_role=False):
+ kinit_admin(host)
+ args = ['ipa', 'server-del', server_to_delete]
+ if force:
+ args.append('--force')
+ if ignore_topology_disconnect:
+ args.append('--ignore-topology-disconnect')
+ if ignore_last_of_role:
+ args.append('--ignore-last-of-role')
+
+ return host.run_command(args, raiseonerr=False)
+
+
+def assert_error(result, stderr_text, returncode=None):
+ "Assert that `result` command failed and its stderr contains `stderr_text`"
+ assert stderr_text in result.stderr_text, result.stderr_text
+ if returncode:
+ assert result.returncode == returncode
+ else:
+ assert result.returncode > 0