summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2013-10-24 12:14:58 +0200
committerMartin Kosek <mkosek@redhat.com>2013-12-06 12:59:11 +0100
commitb20cdf0b9c7c709d7b120ffdd2d7bcb09176514d (patch)
treea2c533aa8ec4a308cc8d5532b046e0400b1a988a
parent9defb913aa65bfe9b423d510f340ae23b9e547f2 (diff)
downloadfreeipa-b20cdf0b9c7c709d7b120ffdd2d7bcb09176514d.tar.gz
freeipa-b20cdf0b9c7c709d7b120ffdd2d7bcb09176514d.tar.xz
freeipa-b20cdf0b9c7c709d7b120ffdd2d7bcb09176514d.zip
test_integration: Support external names for hosts
The framework had a concept of external hostnames, which the controller uses to contact the test machines, but they were not loaded from configuration. Load external names from configuration. This makes tests pass in setups where internal and external hostnames are different, and the internal hostnames are not initially resolvable from the controller.
-rw-r--r--ipatests/test_integration/config.py14
-rw-r--r--ipatests/test_integration/host.py9
2 files changed, 16 insertions, 7 deletions
diff --git a/ipatests/test_integration/config.py b/ipatests/test_integration/config.py
index 3aa4d05d6..b8c5fdc7f 100644
--- a/ipatests/test_integration/config.py
+++ b/ipatests/test_integration/config.py
@@ -236,8 +236,10 @@ def env_normalize(env):
"""Fill env variables from alternate variable names
MASTER_env1 <- MASTER
- REPLICA_env1 <- REPLICA
- CLIENT_env1 <- CLIENT, SLAVE
+ REPLICA_env1 <- REPLICA, SLAVE
+ CLIENT_env1 <- CLIENT
+ similarly for BEAKER* variants: BEAKERMASTER1_env1 <- BEAKERMASTER, etc.
+
CLIENT_env1 gets extended with CLIENT2 or CLIENT2_env1
"""
def coalesce(name, *other_names):
@@ -253,8 +255,12 @@ def env_normalize(env):
else:
env[name] = ''
coalesce('MASTER_env1', 'MASTER')
- coalesce('REPLICA_env1', 'REPLICA')
- coalesce('CLIENT_env1', 'CLIENT', 'SLAVE')
+ coalesce('REPLICA_env1', 'REPLICA', 'SLAVE')
+ coalesce('CLIENT_env1', 'CLIENT')
+
+ coalesce('BEAKERMASTER1_env1', 'BEAKERMASTER')
+ coalesce('BEAKERREPLICA1_env1', 'BEAKERREPLICA', 'BEAKERSLAVE')
+ coalesce('BEAKERCLIENT1_env1', 'BEAKERCLIENT')
def extend(name, name2):
value = env.get(name2)
diff --git a/ipatests/test_integration/host.py b/ipatests/test_integration/host.py
index 02c82b372..be45a0337 100644
--- a/ipatests/test_integration/host.py
+++ b/ipatests/test_integration/host.py
@@ -32,7 +32,8 @@ class BaseHost(object):
"""Representation of a remote IPA host"""
transport_class = None
- def __init__(self, domain, hostname, role, index, ip=None):
+ def __init__(self, domain, hostname, role, index, ip=None,
+ external_hostname=None):
self.domain = domain
self.role = role
self.index = index
@@ -40,7 +41,7 @@ class BaseHost(object):
shortname, dot, ext_domain = hostname.partition('.')
self.shortname = shortname
self.hostname = shortname + '.' + self.domain.name
- self.external_hostname = hostname
+ self.external_hostname = external_hostname or hostname
self.netbios = self.domain.name.split('.')[0].upper()
@@ -96,6 +97,8 @@ class BaseHost(object):
def from_env(cls, env, domain, hostname, role, index):
ip = env.get('BEAKER%s%s_IP_env%s' %
(role.upper(), index, domain.index), None)
+ external_hostname = env.get(
+ 'BEAKER%s%s_env%s' % (role.upper(), index, domain.index), None)
# We need to determine the type of the host, this depends on the domain
# type, as we assume all Unix machines are in the Unix domain and
@@ -106,7 +109,7 @@ class BaseHost(object):
else:
cls = Host
- self = cls(domain, hostname, role, index, ip)
+ self = cls(domain, hostname, role, index, ip, external_hostname)
return self
@property