summaryrefslogtreecommitdiffstats
path: root/ipatests
diff options
context:
space:
mode:
authorOleg Fayans <ofayans@redhat.com>2016-10-12 13:54:12 +0200
committerMartin Basti <mbasti@redhat.com>2016-11-10 12:07:24 +0100
commitdc58f8f2a17adc642ae6f32fe9c9eb05d993c9d0 (patch)
tree4ae1d6bb054d3c482c18bc2c93a2fa5f5c86737e /ipatests
parent6d812a0d52ff89dd337aac50c1a107c9dddce73f (diff)
downloadfreeipa-dc58f8f2a17adc642ae6f32fe9c9eb05d993c9d0.tar.gz
freeipa-dc58f8f2a17adc642ae6f32fe9c9eb05d993c9d0.tar.xz
freeipa-dc58f8f2a17adc642ae6f32fe9c9eb05d993c9d0.zip
Automated ipa-replica-manage del tests
Reviewed-By: Martin Basti <mbasti@redhat.com> Reviewed-By: Milan Kubik <mkubik@redhat.com>
Diffstat (limited to 'ipatests')
-rw-r--r--ipatests/test_integration/test_topology.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/ipatests/test_integration/test_topology.py b/ipatests/test_integration/test_topology.py
index 6f02e3206..634660e5b 100644
--- a/ipatests/test_integration/test_topology.py
+++ b/ipatests/test_integration/test_topology.py
@@ -264,3 +264,75 @@ class TestCASpecificRUVs(IntegrationTest):
master.config.dirman_password]).stdout_text
assert(replica.hostname not in res2), (
"Replica RUVs were not clean during replica uninstallation")
+
+
+class TestReplicaManageDel(IntegrationTest):
+ domain_level = 0
+ topology = 'star'
+ num_replicas = 3
+
+ def test_replica_managed_del_domlevel0(self):
+ """
+ http://www.freeipa.org/page/V4/Manage_replication_topology_4_4/
+ Test_Plan#Test_case:_ipa-replica-manage_del_with_turned_off_replica
+ _under_domain_level_0_keeps_ca-related_RUVs
+ """
+ master = self.master
+ replica = self.replicas[0]
+ replica.run_command(['ipactl', 'stop'])
+ master.run_command(['ipa-replica-manage', 'del', '-f', '-p',
+ master.config.dirman_password, replica.hostname])
+ result = master.run_command(['ipa-replica-manage', 'list-ruv',
+ '-p', master.config.dirman_password])
+ num_ruvs = result.stdout_text.count(replica.hostname)
+ assert(num_ruvs == 1), ("Expected to find 1 replica's RUV, found %s" %
+ num_ruvs)
+ ruvid_re = re.compile(".*%s:389: (\d+).*" % replica.hostname)
+ replica_ruvs = ruvid_re.findall(result.stdout_text)
+ master.run_command(['ipa-replica-manage', 'clean-ruv', '-f',
+ '-p', master.config.dirman_password,
+ replica_ruvs[0]])
+ result2 = master.run_command(['ipa-replica-manage', 'list-ruv',
+ '-p', master.config.dirman_password])
+ assert(replica.hostname not in result2.stdout_text), (
+ "Replica's RUV was not properly removed")
+
+ def test_clean_dangling_ruv_multi_ca(self):
+ """
+ http://www.freeipa.org/page/V4/Manage_replication_topology_4_4/
+ Test_Plan#Test_case:_ipa-replica-manage_clean-dangling-ruv_in_a
+ _multi-CA_setup
+ """
+ master = self.master
+ replica = self.replicas[1]
+ replica.run_command(['ipa-server-install', '--uninstall', '-U'])
+ master.run_command(['ipa-replica-manage', 'del', '-f', '-p',
+ master.config.dirman_password, replica.hostname])
+ result1 = master.run_command(['ipa-replica-manage', 'list-ruv', '-p',
+ master.config.dirman_password])
+ ruvid_re = re.compile(".*%s:389: (\d+).*" % replica.hostname)
+ assert(ruvid_re.search(result1.stdout_text)), (
+ "Replica's RUV should not be removed under domain level 0")
+ master.run_command(['ipa-replica-manage', 'clean-dangling-ruv', '-p',
+ master.config.dirman_password], stdin_text="yes\n")
+ result2 = master.run_command(['ipa-replica-manage', 'list-ruv', '-p',
+ master.config.dirman_password])
+ assert(replica.hostname not in result2.stdout_text), (
+ "Replica's RUV was not removed by a clean-dangling-ruv command")
+
+ def test_replica_managed_del_domlevel1(self):
+ """
+ http://www.freeipa.org/page/V4/Manage_replication_topology_4_4/
+ Test_Plan#Test_case:_ipa-replica-manage_del_with_turned_off_replica
+ _under_domain_level_1_removes_ca-related_RUVs
+ """
+ master = self.master
+ replica = self.replicas[2]
+ master.run_command(['ipa', 'domainlevel-set', '1'])
+ replica.run_command(['ipactl', 'stop'])
+ master.run_command(['ipa-replica-manage', 'del', '-f', '-p',
+ master.config.dirman_password, replica.hostname])
+ result = master.run_command(['ipa-replica-manage', 'list-ruv',
+ '-p', master.config.dirman_password])
+ assert(replica.hostname not in result.stdout_text), (
+ "Replica's RUV was not properly removed")