URL: https://github.com/freeipa/freeipa/pull/136 Author: mbasti-rh Title: #136: [WIP] Fix KRA install tests Action: opened
PR body: """ - in test_installation testsuite KRA related tests were duplicated, this PR removes it - in test_installation test suite with domain level 0, some KRA tests must be skipped because does not work under domain level 0 by design - because in previous commits I decreased amount of replicas in test_installation, I added KRA tests into replication_layout test suite to test how KRA install works with more replicas and various layouts (needed mainly for domain level 0) https://fedorahosted.org/freeipa/ticket/6088 """ To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/136/head:pr136 git checkout pr136
From 54f15f3f9eb7f7be276834c92802f72fa5b42454 Mon Sep 17 00:00:00 2001 From: Martin Basti <mba...@redhat.com> Date: Tue, 4 Oct 2016 22:30:00 +0200 Subject: [PATCH 1/3] CI: remove duplicated install tests KRA cannot be installed in one step with ipa-replica-install, we dropped this support. This commit removes duplicated test-cases https://fedorahosted.org/freeipa/ticket/6088 --- ipatests/test_integration/test_installation.py | 33 +++++++++----------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/ipatests/test_integration/test_installation.py b/ipatests/test_integration/test_installation.py index c3d194f..819ede4 100644 --- a/ipatests/test_integration/test_installation.py +++ b/ipatests/test_integration/test_installation.py @@ -13,7 +13,7 @@ class InstallTestBase1(IntegrationTest): - num_replicas = 3 + num_replicas = 2 topology = 'star' @classmethod @@ -41,43 +41,32 @@ def test_replica1_ipa_kra_install(self): def test_replica1_ipa_dns_install(self): tasks.install_dns(self.replicas[1]) - def test_replica2_with_ca_kra_install(self): - tasks.install_replica(self.master, self.replicas[2], setup_ca=True, - setup_kra=True) - - def test_replica2_ipa_dns_install(self): - tasks.install_dns(self.replicas[2]) - class InstallTestBase2(IntegrationTest): - num_replicas = 3 + num_replicas = 2 topology = 'star' @classmethod def install(cls, mh): tasks.install_master(cls.master, setup_dns=False) - def test_replica0_with_ca_kra_dns_install(self): + def test_replica0_with_ca_dns_install(self): tasks.install_replica(self.master, self.replicas[0], setup_ca=True, - setup_kra=True, setup_dns=True) - - def test_replica1_with_ca_dns_install(self): - tasks.install_replica(self.master, self.replicas[1], setup_ca=True, setup_dns=True) - def test_replica1_ipa_kra_install(self): - tasks.install_kra(self.replicas[1]) + def test_replica0_ipa_kra_install(self): + tasks.install_kra(self.replicas[0]) - def test_replica2_with_dns_install(self): - tasks.install_replica(self.master, self.replicas[2], setup_ca=False, + def test_replica1_with_dns_install(self): + tasks.install_replica(self.master, self.replicas[1], setup_ca=False, setup_dns=True) - def test_replica2_ipa_ca_install(self): - tasks.install_ca(self.replicas[2]) + def test_replica1_ipa_ca_install(self): + tasks.install_ca(self.replicas[1]) - def test_replica2_ipa_kra_install(self): - tasks.install_kra(self.replicas[2]) + def test_replica1_ipa_kra_install(self): + tasks.install_kra(self.replicas[1]) ## From fd0a983274fe83c1ca8707adf6fc4776e4984c0a Mon Sep 17 00:00:00 2001 From: Martin Basti <mba...@redhat.com> Date: Tue, 4 Oct 2016 22:46:03 +0200 Subject: [PATCH 2/3] CI installation: skip KRA on replica with domain lvl 0 With domain level 0, replica requires to have KRA installed on original server (source of replica file) https://fedorahosted.org/freeipa/ticket/6088 --- ipatests/test_integration/test_installation.py | 39 ++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/ipatests/test_integration/test_installation.py b/ipatests/test_integration/test_installation.py index 819ede4..cb5e8cd 100644 --- a/ipatests/test_integration/test_installation.py +++ b/ipatests/test_integration/test_installation.py @@ -6,10 +6,14 @@ Module provides tests which testing ability of various subsystems to be installed. """ - +import pytest +from ipalib.constants import DOMAIN_LEVEL_0 +from ipatests.test_integration.env_config import get_global_config from ipatests.test_integration.base import IntegrationTest from ipatests.test_integration import tasks +config = get_global_config() + class InstallTestBase1(IntegrationTest): @@ -56,7 +60,7 @@ def test_replica0_with_ca_dns_install(self): setup_dns=True) def test_replica0_ipa_kra_install(self): - tasks.install_kra(self.replicas[0]) + tasks.install_kra(self.replicas[0], first_instance=True) def test_replica1_with_dns_install(self): tasks.install_replica(self.master, self.replicas[1], setup_ca=False, @@ -79,6 +83,13 @@ class TestInstallWithCA1(InstallTestBase1): def install(cls, mh): tasks.install_master(cls.master, setup_dns=False) + @pytest.mark.skipif( + config.domain_level == DOMAIN_LEVEL_0, + reason='does not work on DOMAIN_LEVEL_0 by design (KRA requires to ' + 'have KRA installed on original server)') + def test_replica1_ipa_kra_install(self): + super(TestInstallWithCA1, self).test_replica1_ipa_kra_install() + class TestInstallWithCA2(InstallTestBase2): @@ -86,6 +97,12 @@ class TestInstallWithCA2(InstallTestBase2): def install(cls, mh): tasks.install_master(cls.master, setup_dns=False) + @pytest.mark.skipif(config.domain_level == DOMAIN_LEVEL_0, + reason='does not work on DOMAIN_LEVEL_0 by design (KRA requires to ' + 'have KRA installed on original server)') + def test_replica1_ipa_kra_install(self): + super(TestInstallWithCA2, self).test_replica1_ipa_kra_install() + class TestInstallWithCA_KRA1(InstallTestBase1): @@ -103,6 +120,9 @@ class TestInstallWithCA_KRA2(InstallTestBase2): def install(cls, mh): tasks.install_master(cls.master, setup_dns=False, setup_kra=True) + def test_replica0_ipa_kra_install(self): + tasks.install_kra(self.replicas[0], first_instance=False) + class TestInstallWithCA_DNS1(InstallTestBase1): @@ -110,6 +130,12 @@ class TestInstallWithCA_DNS1(InstallTestBase1): def install(cls, mh): tasks.install_master(cls.master, setup_dns=True) + @pytest.mark.skipif(config.domain_level == DOMAIN_LEVEL_0, + reason='does not work on DOMAIN_LEVEL_0 by design (KRA requires to ' + 'have KRA installed on original server)') + def test_replica1_ipa_kra_install(self): + super(TestInstallWithCA_DNS1, self).test_replica1_ipa_kra_install() + class TestInstallWithCA_DNS2(InstallTestBase2): @@ -117,6 +143,12 @@ class TestInstallWithCA_DNS2(InstallTestBase2): def install(cls, mh): tasks.install_master(cls.master, setup_dns=True) + @pytest.mark.skipif(config.domain_level == DOMAIN_LEVEL_0, + reason='does not work on DOMAIN_LEVEL_0 by design (KRA requires to ' + 'have KRA installed on original server)') + def test_replica1_ipa_kra_install(self): + super(TestInstallWithCA_DNS2, self).test_replica1_ipa_kra_install() + class TestInstallWithCA_KRA_DNS1(InstallTestBase1): @@ -134,6 +166,9 @@ class TestInstallWithCA_KRA_DNS2(InstallTestBase2): def install(cls, mh): tasks.install_master(cls.master, setup_dns=True, setup_kra=True) + def test_replica0_ipa_kra_install(self): + tasks.install_kra(self.replicas[0], first_instance=False) + ## # Rest of master installation tests From 1466a4a2bff72f061e4deccf5a125002c973afe9 Mon Sep 17 00:00:00 2001 From: Martin Basti <mba...@redhat.com> Date: Tue, 4 Oct 2016 23:08:19 +0200 Subject: [PATCH 3/3] CI: extend replication layouts tests with KRA KRA should be tested with warious replication topologies as well, mainly in domain level 0 https://fedorahosted.org/freeipa/ticket/6088 --- ipatests/test_integration/tasks.py | 18 ++++++-- .../test_integration/test_replication_layouts.py | 48 ++++++++++++++++++++++ 2 files changed, 63 insertions(+), 3 deletions(-) diff --git a/ipatests/test_integration/tasks.py b/ipatests/test_integration/tasks.py index 6c26626..c31a338 100644 --- a/ipatests/test_integration/tasks.py +++ b/ipatests/test_integration/tasks.py @@ -994,12 +994,20 @@ def double_circle_topo(master, replicas, site_size=6): def install_topo(topo, master, replicas, clients, domain_level=None, - skip_master=False, setup_replica_cas=True): + skip_master=False, setup_replica_cas=True, + setup_replica_kras=False): """Install IPA servers and clients in the given topology""" + if setup_replica_kras and not setup_replica_cas: + raise ValueError("Option 'setup_replica_kras' requires " + "'setup_replica_cas' set to True") replicas = list(replicas) installed = {master} if not skip_master: - install_master(master, domain_level=domain_level) + install_master( + master, + domain_level=domain_level, + setup_kra=setup_replica_kras + ) add_a_records_for_hosts_in_master_domain(master) @@ -1009,7 +1017,11 @@ def install_topo(topo, master, replicas, clients, domain_level=None, connect_replica(parent, child) else: log.info('Installing replica %s from %s' % (parent, child)) - install_replica(parent, child, setup_ca=setup_replica_cas) + install_replica( + parent, child, + setup_ca=setup_replica_cas, + setup_kra=setup_replica_kras + ) installed.add(child) install_clients([master] + replicas, clients) diff --git a/ipatests/test_integration/test_replication_layouts.py b/ipatests/test_integration/test_replication_layouts.py index c178815..53cae7d 100644 --- a/ipatests/test_integration/test_replication_layouts.py +++ b/ipatests/test_integration/test_replication_layouts.py @@ -52,6 +52,16 @@ def test_line_topology_with_ca(self): self.replication_is_working() +class TestLineTopologyWithCAKRA(LayoutsBaseTest): + + num_replicas = 3 + + def test_line_topology_with_ca_kra(self): + tasks.install_topo('line', self.master, self.replicas, [], + setup_replica_cas=True, setup_replica_kras=True) + self.replication_is_working() + + class TestStarTopologyWithoutCA(LayoutsBaseTest): num_replicas = 3 @@ -72,6 +82,16 @@ def test_star_topology_with_ca(self): self.replication_is_working() +class TestStarTopologyWithCAKRA(LayoutsBaseTest): + + num_replicas = 3 + + def test_star_topology_with_ca_kra(self): + tasks.install_topo('star', self.master, self.replicas, [], + setup_replica_cas=True, setup_replica_kras=True) + self.replication_is_working() + + class TestCompleteTopologyWithoutCA(LayoutsBaseTest): num_replicas = 3 @@ -92,6 +112,16 @@ def test_complete_topology_with_ca(self): self.replication_is_working() +class TestCompleteTopologyWithCAKRA(LayoutsBaseTest): + + num_replicas = 3 + + def test_complete_topology_with_ca_kra(self): + tasks.install_topo('complete', self.master, self.replicas, [], + setup_replica_cas=True, setup_replica_kras=True) + self.replication_is_working() + + @pytest.mark.skipif(config.domain_level == DOMAIN_LEVEL_0, reason='does not work on DOMAIN_LEVEL_0 by design') class Test2ConnectedTopologyWithoutCA(LayoutsBaseTest): @@ -112,6 +142,15 @@ def test_2_connected_topology_with_ca(self): self.replication_is_working() +class Test2ConnectedTopologyWithCAKRA(LayoutsBaseTest): + num_replicas = 33 + + def test_2_connected_topology_with_ca_kra(self): + tasks.install_topo('2-connected', self.master, self.replicas, [], + setup_replica_cas=True, setup_replica_kras=True) + self.replication_is_working() + + @pytest.mark.skipif(config.domain_level == DOMAIN_LEVEL_0, reason='does not work on DOMAIN_LEVEL_0 by design') class TestDoubleCircleTopologyWithoutCA(LayoutsBaseTest): @@ -130,3 +169,12 @@ def test_2_connected_topology_with_ca(self): tasks.install_topo('double-circle', self.master, self.replicas, [], setup_replica_cas=True) self.replication_is_working() + + +class TestDoubleCircleTopologyWithCAKRA(LayoutsBaseTest): + num_replicas = 29 + + def test_2_connected_topology_with_ca_kra(self): + tasks.install_topo('double-circle', self.master, self.replicas, [], + setup_replica_cas=True, setup_replica_kras=True) + self.replication_is_working()
-- 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