mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
CI: installation tests
Reviewed-By: Oleg Fayans <ofayans@redhat.com>
This commit is contained in:
parent
2c5a662fd8
commit
a11cddd75b
@ -39,6 +39,7 @@ 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
|
||||
from ipalib.constants import DOMAIN_SUFFIX_NAME
|
||||
from ipalib.constants import DOMAIN_LEVEL_0
|
||||
|
||||
log = log_mgr.get_logger(__name__)
|
||||
|
||||
@ -922,3 +923,34 @@ def resolve_record(nameserver, query, rtype="SOA", retry=True, timeout=100):
|
||||
if not retry:
|
||||
raise
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
def install_kra(host, domain_level=None, first_instance=False, raiseonerr=True):
|
||||
if not domain_level:
|
||||
domain_level = domainlevel(host)
|
||||
command = ["ipa-kra-install", "-U", "-p", host.config.dirman_password]
|
||||
if domain_level == DOMAIN_LEVEL_0 and not first_instance:
|
||||
replica_file = get_replica_filename(host)
|
||||
command.append(replica_file)
|
||||
return host.run_command(command, raiseonerr=raiseonerr)
|
||||
|
||||
|
||||
def install_ca(host, domain_level=None, first_instance=False, raiseonerr=True):
|
||||
if not domain_level:
|
||||
domain_level = domainlevel(host)
|
||||
command = ["ipa-ca-install", "-U", "-p", host.config.dirman_password,
|
||||
"-P", 'admin', "-w", host.config.admin_password]
|
||||
if domain_level == DOMAIN_LEVEL_0 and not first_instance:
|
||||
replica_file = get_replica_filename(host)
|
||||
command.append(replica_file)
|
||||
return host.run_command(command, raiseonerr=raiseonerr)
|
||||
|
||||
|
||||
def install_dns(host, raiseonerr=True):
|
||||
args = [
|
||||
"ipa-dns-install",
|
||||
"--forwarder", host.config.dns_forwarder,
|
||||
"-p", host.config.dirman_password,
|
||||
"-U",
|
||||
]
|
||||
return host.run_command(args, raiseonerr=raiseonerr)
|
||||
|
200
ipatests/test_integration/test_installation.py
Normal file
200
ipatests/test_integration/test_installation.py
Normal file
@ -0,0 +1,200 @@
|
||||
#
|
||||
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
|
||||
#
|
||||
|
||||
"""
|
||||
Module provides tests which testing ability of various subsystems to be
|
||||
installed.
|
||||
"""
|
||||
|
||||
import time
|
||||
|
||||
from ipatests.test_integration.base import IntegrationTest
|
||||
from ipatests.test_integration import tasks
|
||||
|
||||
|
||||
class InstallTestBase1(IntegrationTest):
|
||||
|
||||
num_replicas = 3
|
||||
topology = 'star'
|
||||
|
||||
@classmethod
|
||||
def install(cls, mh):
|
||||
tasks.install_master(cls.master, setup_dns=False)
|
||||
|
||||
def test_replica0_ca_less_install(self):
|
||||
tasks.install_replica(self.master, self.replicas[0], setup_ca=False)
|
||||
|
||||
def test_replica0_ipa_ca_install(self):
|
||||
tasks.install_ca(self.replicas[0])
|
||||
|
||||
def test_replica0_ipa_kra_install(self):
|
||||
tasks.install_kra(self.replicas[0], first_instance=True)
|
||||
|
||||
def test_replica0_ipa_dns_install(self):
|
||||
tasks.install_dns(self.replicas[0])
|
||||
|
||||
def test_replica1_with_ca_install(self):
|
||||
tasks.install_replica(self.master, self.replicas[1], setup_ca=True)
|
||||
|
||||
def test_replica1_ipa_kra_install(self):
|
||||
tasks.install_kra(self.replicas[1])
|
||||
|
||||
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
|
||||
topology = 'star'
|
||||
|
||||
@classmethod
|
||||
def install(cls, mh):
|
||||
tasks.install_master(cls.master, setup_dns=False)
|
||||
|
||||
def test_replica0_with_ca_kra_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_replica2_with_dns_install(self):
|
||||
tasks.install_replica(self.master, self.replicas[2], setup_ca=False,
|
||||
setup_dns=True)
|
||||
|
||||
def test_replica2_ipa_ca_install(self):
|
||||
tasks.install_ca(self.replicas[2])
|
||||
|
||||
def test_replica2_ipa_kra_install(self):
|
||||
tasks.install_kra(self.replicas[2])
|
||||
|
||||
|
||||
##
|
||||
# Master X Replicas installation tests
|
||||
##
|
||||
|
||||
class TestInstallWithCA1(InstallTestBase1):
|
||||
|
||||
@classmethod
|
||||
def install(cls, mh):
|
||||
tasks.install_master(cls.master, setup_dns=False)
|
||||
|
||||
|
||||
class TestInstallWithCA2(InstallTestBase2):
|
||||
|
||||
@classmethod
|
||||
def install(cls, mh):
|
||||
tasks.install_master(cls.master, setup_dns=False)
|
||||
|
||||
|
||||
class TestInstallWithCA_KRA1(InstallTestBase1):
|
||||
|
||||
@classmethod
|
||||
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_KRA2(InstallTestBase2):
|
||||
|
||||
@classmethod
|
||||
def install(cls, mh):
|
||||
tasks.install_master(cls.master, setup_dns=False, setup_kra=True)
|
||||
|
||||
|
||||
class TestInstallWithCA_DNS1(InstallTestBase1):
|
||||
|
||||
@classmethod
|
||||
def install(cls, mh):
|
||||
tasks.install_master(cls.master, setup_dns=True)
|
||||
|
||||
|
||||
class TestInstallWithCA_DNS2(InstallTestBase2):
|
||||
|
||||
@classmethod
|
||||
def install(cls, mh):
|
||||
tasks.install_master(cls.master, setup_dns=True)
|
||||
|
||||
|
||||
class TestInstallWithCA_KRA_DNS1(InstallTestBase1):
|
||||
|
||||
@classmethod
|
||||
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)
|
||||
|
||||
|
||||
class TestInstallWithCA_KRA_DNS2(InstallTestBase2):
|
||||
|
||||
@classmethod
|
||||
def install(cls, mh):
|
||||
tasks.install_master(cls.master, setup_dns=True, setup_kra=True)
|
||||
|
||||
|
||||
##
|
||||
# Rest of master installation tests
|
||||
##
|
||||
|
||||
class TestInstallMaster(IntegrationTest):
|
||||
|
||||
num_replicas = 0
|
||||
|
||||
@classmethod
|
||||
def install(cls, mh):
|
||||
pass
|
||||
|
||||
def test_install_master(self):
|
||||
tasks.install_master(self.master, setup_dns=False)
|
||||
|
||||
def test_install_kra(self):
|
||||
tasks.install_kra(self.master, first_instance=True)
|
||||
|
||||
def test_install_dns(self):
|
||||
tasks.install_dns(self.master)
|
||||
|
||||
|
||||
class TestInstallMasterKRA(IntegrationTest):
|
||||
|
||||
num_replicas = 0
|
||||
|
||||
@classmethod
|
||||
def install(cls, mh):
|
||||
pass
|
||||
|
||||
def test_install_master(self):
|
||||
tasks.install_master(self.master, setup_dns=False, setup_kra=True)
|
||||
|
||||
def test_install_dns(self):
|
||||
tasks.install_dns(self.master)
|
||||
|
||||
|
||||
class TestInstallMasterDNS(IntegrationTest):
|
||||
|
||||
num_replicas = 0
|
||||
|
||||
@classmethod
|
||||
def install(cls, mh):
|
||||
pass
|
||||
|
||||
def test_install_master(self):
|
||||
tasks.install_master(self.master, setup_dns=True)
|
||||
|
||||
def test_install_kra(self):
|
||||
tasks.install_kra(self.master, first_instance=True)
|
Loading…
Reference in New Issue
Block a user