mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Disable DL0 specific tests
Disable tests that use domain level 0. Fail early to catch additional tests that depend on DL0. See: https://pagure.io/freeipa/issue/7669 Signed-off-by: Christian Heimes <cheimes@redhat.com> Reviewed-By: Thomas Woerner <twoerner@redhat.com>
This commit is contained in:
parent
6907a0cef7
commit
13000e2f19
@ -32,6 +32,7 @@ import time
|
||||
|
||||
import dns
|
||||
from ldif import LDIFWriter
|
||||
import pytest
|
||||
from SSSDConfig import SSSDConfig
|
||||
from six import StringIO
|
||||
from cryptography.hazmat.primitives import serialization
|
||||
@ -45,7 +46,9 @@ from ipapython.dn import DN
|
||||
from ipalib import errors
|
||||
from ipalib.util import get_reverse_zone_default, verify_host_resolvable
|
||||
from ipalib.constants import (
|
||||
DEFAULT_CONFIG, DOMAIN_SUFFIX_NAME, DOMAIN_LEVEL_0)
|
||||
DEFAULT_CONFIG, DOMAIN_SUFFIX_NAME, DOMAIN_LEVEL_0,
|
||||
MIN_DOMAIN_LEVEL, MAX_DOMAIN_LEVEL
|
||||
)
|
||||
|
||||
from ipatests.create_external_ca import ExternalCA
|
||||
from .env_config import env_to_script
|
||||
@ -291,6 +294,7 @@ def install_master(host, setup_dns=True, setup_kra=False, setup_adtrust=False,
|
||||
stdin_text=None, raiseonerr=True):
|
||||
if domain_level is None:
|
||||
domain_level = host.config.domain_level
|
||||
check_domain_level(domain_level)
|
||||
setup_server_logs_collecting(host)
|
||||
apply_common_fixes(host)
|
||||
fix_apache_semaphores(host)
|
||||
@ -335,6 +339,19 @@ def get_replica_filename(replica):
|
||||
return os.path.join(replica.config.test_dir, 'replica-info.gpg')
|
||||
|
||||
|
||||
def check_domain_level(domain_level):
|
||||
if domain_level < MIN_DOMAIN_LEVEL:
|
||||
pytest.fail(
|
||||
"Domain level {} not supported, min level is {}.".format(
|
||||
domain_level, MIN_DOMAIN_LEVEL)
|
||||
)
|
||||
if domain_level > MAX_DOMAIN_LEVEL:
|
||||
pytest.fail(
|
||||
"Domain level {} not supported, max level is {}.".format(
|
||||
domain_level, MAX_DOMAIN_LEVEL)
|
||||
)
|
||||
|
||||
|
||||
def domainlevel(host):
|
||||
"""
|
||||
Dynamically determines the domainlevel on master. Needed for scenarios
|
||||
@ -347,13 +364,15 @@ def domainlevel(host):
|
||||
"""
|
||||
kinit_admin(host, raiseonerr=False)
|
||||
result = host.run_command(['ipa', 'domainlevel-get'], raiseonerr=False)
|
||||
level = 0
|
||||
level = MIN_DOMAIN_LEVEL
|
||||
domlevel_re = re.compile('.*(\d)')
|
||||
if result.returncode == 0:
|
||||
# "domainlevel-get" command doesn't exist on ipa versions prior to 4.3
|
||||
level = int(domlevel_re.findall(result.stdout_text)[0])
|
||||
check_domain_level(level)
|
||||
return level
|
||||
|
||||
|
||||
def master_authoritative_for_client_domain(master, client):
|
||||
zone = ".".join(client.hostname.split('.')[1:])
|
||||
result = master.run_command(["ipa", "dnszone-show", zone],
|
||||
@ -401,6 +420,7 @@ def install_replica(master, replica, setup_ca=True, setup_dns=False,
|
||||
raiseonerr=True):
|
||||
if domain_level is None:
|
||||
domain_level = domainlevel(master)
|
||||
check_domain_level(domain_level)
|
||||
apply_common_fixes(replica)
|
||||
setup_server_logs_collecting(replica)
|
||||
allow_sync_ptr(master)
|
||||
@ -712,6 +732,7 @@ def sync_time(host, server):
|
||||
def connect_replica(master, replica, domain_level=None):
|
||||
if domain_level is None:
|
||||
domain_level = master.config.domain_level
|
||||
check_domain_level(domain_level)
|
||||
if domain_level == DOMAIN_LEVEL_0:
|
||||
replica.run_command(['ipa-replica-manage', 'connect', master.hostname])
|
||||
else:
|
||||
@ -726,6 +747,7 @@ def connect_replica(master, replica, domain_level=None):
|
||||
def disconnect_replica(master, replica, domain_level=None):
|
||||
if domain_level is None:
|
||||
domain_level = master.config.domain_level
|
||||
check_domain_level(domain_level)
|
||||
if domain_level == DOMAIN_LEVEL_0:
|
||||
replica.run_command(['ipa-replica-manage', 'disconnect', master.hostname])
|
||||
else:
|
||||
@ -1226,6 +1248,7 @@ def ipa_restore(master, backup_path):
|
||||
def install_kra(host, domain_level=None, first_instance=False, raiseonerr=True):
|
||||
if domain_level is None:
|
||||
domain_level = domainlevel(host)
|
||||
check_domain_level(domain_level)
|
||||
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)
|
||||
@ -1241,6 +1264,7 @@ def install_ca(host, domain_level=None, first_instance=False,
|
||||
external_ca=False, cert_files=None, raiseonerr=True):
|
||||
if domain_level is None:
|
||||
domain_level = domainlevel(host)
|
||||
check_domain_level(domain_level)
|
||||
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:
|
||||
|
@ -265,6 +265,7 @@ class CALessBase(IntegrationTest):
|
||||
|
||||
if domain_level is None:
|
||||
domain_level = tasks.domainlevel(master)
|
||||
tasks.check_domain_level(domain_level)
|
||||
files_to_copy = ['root.pem']
|
||||
if http_pkcs12_exists:
|
||||
files_to_copy.append(http_pkcs12)
|
||||
@ -1072,8 +1073,7 @@ class TestReplicaInstall(CALessBase):
|
||||
result = self.prepare_replica(http_pkcs12='server.p12',
|
||||
dirsrv_pkcs12='server.p12')
|
||||
assert result.returncode == 0
|
||||
if self.domain_level > DOMAIN_LEVEL_0:
|
||||
self.verify_installation()
|
||||
self.verify_installation()
|
||||
|
||||
@replica_install_teardown
|
||||
def test_wildcard_http(self):
|
||||
@ -1085,8 +1085,7 @@ class TestReplicaInstall(CALessBase):
|
||||
result = self.prepare_replica(http_pkcs12='http.p12',
|
||||
dirsrv_pkcs12='dirsrv.p12')
|
||||
assert result.returncode == 0
|
||||
if self.domain_level > DOMAIN_LEVEL_0:
|
||||
self.verify_installation()
|
||||
self.verify_installation()
|
||||
|
||||
@replica_install_teardown
|
||||
def test_wildcard_ds(self):
|
||||
@ -1098,8 +1097,7 @@ class TestReplicaInstall(CALessBase):
|
||||
result = self.prepare_replica(http_pkcs12='http.p12',
|
||||
dirsrv_pkcs12='dirsrv.p12')
|
||||
assert result.returncode == 0
|
||||
if self.domain_level > DOMAIN_LEVEL_0:
|
||||
self.verify_installation()
|
||||
self.verify_installation()
|
||||
|
||||
@replica_install_teardown
|
||||
def test_http_san(self):
|
||||
@ -1111,8 +1109,7 @@ class TestReplicaInstall(CALessBase):
|
||||
result = self.prepare_replica(http_pkcs12='http.p12',
|
||||
dirsrv_pkcs12='dirsrv.p12')
|
||||
assert result.returncode == 0
|
||||
if self.domain_level > DOMAIN_LEVEL_0:
|
||||
self.verify_installation()
|
||||
self.verify_installation()
|
||||
|
||||
@replica_install_teardown
|
||||
def test_ds_san(self):
|
||||
@ -1124,8 +1121,7 @@ class TestReplicaInstall(CALessBase):
|
||||
result = self.prepare_replica(http_pkcs12='http.p12',
|
||||
dirsrv_pkcs12='dirsrv.p12')
|
||||
assert result.returncode == 0
|
||||
if self.domain_level > DOMAIN_LEVEL_0:
|
||||
self.verify_installation()
|
||||
self.verify_installation()
|
||||
|
||||
@replica_install_teardown
|
||||
def test_interactive_missing_http_pkcs_password(self):
|
||||
@ -1139,8 +1135,7 @@ class TestReplicaInstall(CALessBase):
|
||||
result = self.prepare_replica(http_pin=None, unattended=False,
|
||||
stdin_text=stdin_text)
|
||||
assert result.returncode == 0
|
||||
if self.domain_level > DOMAIN_LEVEL_0:
|
||||
self.verify_installation()
|
||||
self.verify_installation()
|
||||
|
||||
@replica_install_teardown
|
||||
def test_interactive_missing_ds_pkcs_password(self):
|
||||
@ -1154,8 +1149,7 @@ class TestReplicaInstall(CALessBase):
|
||||
result = self.prepare_replica(dirsrv_pin=None, unattended=False,
|
||||
stdin_text=stdin_text)
|
||||
assert result.returncode == 0
|
||||
if self.domain_level > DOMAIN_LEVEL_0:
|
||||
self.verify_installation()
|
||||
self.verify_installation()
|
||||
|
||||
@replica_install_teardown
|
||||
def test_no_http_password(self):
|
||||
@ -1168,8 +1162,7 @@ class TestReplicaInstall(CALessBase):
|
||||
dirsrv_pkcs12='dirsrv.p12',
|
||||
http_pin='')
|
||||
assert result.returncode == 0
|
||||
if self.domain_level > DOMAIN_LEVEL_0:
|
||||
self.verify_installation()
|
||||
self.verify_installation()
|
||||
|
||||
@replica_install_teardown
|
||||
def test_no_ds_password(self):
|
||||
@ -1182,8 +1175,7 @@ class TestReplicaInstall(CALessBase):
|
||||
dirsrv_pkcs12='dirsrv.p12',
|
||||
dirsrv_pin='')
|
||||
assert result.returncode == 0
|
||||
if self.domain_level > DOMAIN_LEVEL_0:
|
||||
self.verify_installation()
|
||||
self.verify_installation()
|
||||
|
||||
@replica_install_teardown
|
||||
def test_certs_with_no_password(self):
|
||||
@ -1198,8 +1190,7 @@ class TestReplicaInstall(CALessBase):
|
||||
self.prepare_replica(http_pkcs12='http.p12',
|
||||
dirsrv_pkcs12='dirsrv.p12',
|
||||
http_pin='', dirsrv_pin='')
|
||||
if self.domain_level > DOMAIN_LEVEL_0:
|
||||
self.verify_installation()
|
||||
self.verify_installation()
|
||||
|
||||
@replica_install_teardown
|
||||
def test_certs_with_no_password_interactive(self):
|
||||
@ -1217,8 +1208,7 @@ class TestReplicaInstall(CALessBase):
|
||||
http_pin=None, dirsrv_pin=None,
|
||||
unattended=False, stdin_text=stdin_text)
|
||||
assert result.returncode == 0
|
||||
if self.domain_level > DOMAIN_LEVEL_0:
|
||||
self.verify_installation()
|
||||
self.verify_installation()
|
||||
|
||||
|
||||
class TestClientInstall(CALessBase):
|
||||
|
@ -40,12 +40,14 @@ class ReplicaPromotionBase(IntegrationTest):
|
||||
assert(found > 0), result2.stdout_text
|
||||
|
||||
|
||||
@pytest.mark.skip(reason="Domain level 0 is not supported anymore")
|
||||
class TestReplicaPromotionLevel0(ReplicaPromotionBase):
|
||||
|
||||
topology = 'star'
|
||||
num_replicas = 1
|
||||
domain_level = DOMAIN_LEVEL_0
|
||||
|
||||
@pytest.mark.skip(reason="Domain level 0 is not supported anymore")
|
||||
@replicas_cleanup
|
||||
def test_promotion_disabled(self):
|
||||
"""
|
||||
@ -87,6 +89,7 @@ class TestReplicaPromotionLevel0(ReplicaPromotionBase):
|
||||
assert(found2 > 0), result2.stdout_text
|
||||
|
||||
|
||||
@pytest.mark.skip(reason="Domain level 0 is not supported anymore")
|
||||
@pytest.mark.xfail(reason="Ticket N 6274", strict=True)
|
||||
class TestKRAInstall(IntegrationTest):
|
||||
"""
|
||||
@ -126,6 +129,7 @@ class TestKRAInstall(IntegrationTest):
|
||||
tasks.install_kra(replica2)
|
||||
|
||||
|
||||
@pytest.mark.skip(reason="Domain level 0 is not supported anymore")
|
||||
@pytest.mark.xfail(reason="Ticket N 6274", strict=True)
|
||||
class TestCAInstall(IntegrationTest):
|
||||
topology = 'star'
|
||||
@ -178,6 +182,7 @@ class TestReplicaPromotionLevel1(ReplicaPromotionBase):
|
||||
num_replicas = 1
|
||||
domain_level = DOMAIN_LEVEL_1
|
||||
|
||||
@pytest.mark.skip(reason="Domain level 0 is not supported anymore")
|
||||
@replicas_cleanup
|
||||
def test_replica_prepare_disabled(self):
|
||||
replica = self.replicas[0]
|
||||
@ -205,6 +210,7 @@ class TestReplicaPromotionLevel1(ReplicaPromotionBase):
|
||||
'-U'])
|
||||
|
||||
|
||||
@pytest.mark.skip(reason="Domain level 0 is not supported anymore")
|
||||
@pytest.mark.xfail(reason="Ticket N 6274", strict=True)
|
||||
class TestReplicaManageCommands(IntegrationTest):
|
||||
topology = "star"
|
||||
@ -372,6 +378,7 @@ class TestProhibitReplicaUninstallation(IntegrationTest):
|
||||
'-U', '--ignore-topology-disconnect'])
|
||||
|
||||
|
||||
@pytest.mark.skip(reason="Domain level 0 is not supported anymore")
|
||||
@pytest.mark.xfail(reason="Ticket N 6274", strict=True)
|
||||
class TestOldReplicaWorksAfterDomainUpgrade(IntegrationTest):
|
||||
topology = 'star'
|
||||
|
Loading…
Reference in New Issue
Block a user