|
|
9991ea |
From 36c14bf16eba793f37585b697bd1cb2750d68e36 Mon Sep 17 00:00:00 2001
|
|
|
9991ea |
From: Petr Viktorin <pviktori@redhat.com>
|
|
|
9991ea |
Date: Thu, 24 Oct 2013 12:14:58 +0200
|
|
|
9991ea |
Subject: [PATCH 11/11] test_integration: Support external names for hosts
|
|
|
9991ea |
|
|
|
9991ea |
The framework had a concept of external hostnames,
|
|
|
9991ea |
which the controller uses to contact the test machines,
|
|
|
9991ea |
but they were not loaded from configuration.
|
|
|
9991ea |
|
|
|
9991ea |
Load external names from configuration.
|
|
|
9991ea |
|
|
|
9991ea |
This makes tests pass in setups where internal and external
|
|
|
9991ea |
hostnames are different, and the internal hostnames are not
|
|
|
9991ea |
initially resolvable from the controller.
|
|
|
9991ea |
|
|
|
9991ea |
Martin Kosek: this patch also contains squashed patch
|
|
|
9991ea |
"test_integration: Log external hostname in Host.ldap_connect" from
|
|
|
9991ea |
Petr Viktorin aiming for better debugability of the beaker tests.
|
|
|
9991ea |
---
|
|
|
9991ea |
ipatests/test_integration/config.py | 14 ++++++++++----
|
|
|
9991ea |
ipatests/test_integration/host.py | 11 +++++++----
|
|
|
9991ea |
2 files changed, 17 insertions(+), 8 deletions(-)
|
|
|
9991ea |
|
|
|
9991ea |
diff --git a/ipatests/test_integration/config.py b/ipatests/test_integration/config.py
|
|
|
9991ea |
index 3aa4d05d6cb5758cd0d6be64a1ac582adcc971b4..b8c5fdc7f9ce1877e34491964418a8d806168e73 100644
|
|
|
9991ea |
--- a/ipatests/test_integration/config.py
|
|
|
9991ea |
+++ b/ipatests/test_integration/config.py
|
|
|
9991ea |
@@ -236,8 +236,10 @@ def env_normalize(env):
|
|
|
9991ea |
"""Fill env variables from alternate variable names
|
|
|
9991ea |
|
|
|
9991ea |
MASTER_env1 <- MASTER
|
|
|
9991ea |
- REPLICA_env1 <- REPLICA
|
|
|
9991ea |
- CLIENT_env1 <- CLIENT, SLAVE
|
|
|
9991ea |
+ REPLICA_env1 <- REPLICA, SLAVE
|
|
|
9991ea |
+ CLIENT_env1 <- CLIENT
|
|
|
9991ea |
+ similarly for BEAKER* variants: BEAKERMASTER1_env1 <- BEAKERMASTER, etc.
|
|
|
9991ea |
+
|
|
|
9991ea |
CLIENT_env1 gets extended with CLIENT2 or CLIENT2_env1
|
|
|
9991ea |
"""
|
|
|
9991ea |
def coalesce(name, *other_names):
|
|
|
9991ea |
@@ -253,8 +255,12 @@ def coalesce(name, *other_names):
|
|
|
9991ea |
else:
|
|
|
9991ea |
env[name] = ''
|
|
|
9991ea |
coalesce('MASTER_env1', 'MASTER')
|
|
|
9991ea |
- coalesce('REPLICA_env1', 'REPLICA')
|
|
|
9991ea |
- coalesce('CLIENT_env1', 'CLIENT', 'SLAVE')
|
|
|
9991ea |
+ coalesce('REPLICA_env1', 'REPLICA', 'SLAVE')
|
|
|
9991ea |
+ coalesce('CLIENT_env1', 'CLIENT')
|
|
|
9991ea |
+
|
|
|
9991ea |
+ coalesce('BEAKERMASTER1_env1', 'BEAKERMASTER')
|
|
|
9991ea |
+ coalesce('BEAKERREPLICA1_env1', 'BEAKERREPLICA', 'BEAKERSLAVE')
|
|
|
9991ea |
+ coalesce('BEAKERCLIENT1_env1', 'BEAKERCLIENT')
|
|
|
9991ea |
|
|
|
9991ea |
def extend(name, name2):
|
|
|
9991ea |
value = env.get(name2)
|
|
|
9991ea |
diff --git a/ipatests/test_integration/host.py b/ipatests/test_integration/host.py
|
|
|
9991ea |
index 02c82b372ce2805c0ca922319f5de1cd29b0ed82..507e19ed62b3d0a76e6e2ff6286fd83f17a68627 100644
|
|
|
9991ea |
--- a/ipatests/test_integration/host.py
|
|
|
9991ea |
+++ b/ipatests/test_integration/host.py
|
|
|
9991ea |
@@ -32,7 +32,8 @@ class BaseHost(object):
|
|
|
9991ea |
"""Representation of a remote IPA host"""
|
|
|
9991ea |
transport_class = None
|
|
|
9991ea |
|
|
|
9991ea |
- def __init__(self, domain, hostname, role, index, ip=None):
|
|
|
9991ea |
+ def __init__(self, domain, hostname, role, index, ip=None,
|
|
|
9991ea |
+ external_hostname=None):
|
|
|
9991ea |
self.domain = domain
|
|
|
9991ea |
self.role = role
|
|
|
9991ea |
self.index = index
|
|
|
9991ea |
@@ -40,7 +41,7 @@ def __init__(self, domain, hostname, role, index, ip=None):
|
|
|
9991ea |
shortname, dot, ext_domain = hostname.partition('.')
|
|
|
9991ea |
self.shortname = shortname
|
|
|
9991ea |
self.hostname = shortname + '.' + self.domain.name
|
|
|
9991ea |
- self.external_hostname = hostname
|
|
|
9991ea |
+ self.external_hostname = external_hostname or hostname
|
|
|
9991ea |
|
|
|
9991ea |
self.netbios = self.domain.name.split('.')[0].upper()
|
|
|
9991ea |
|
|
|
9991ea |
@@ -96,6 +97,8 @@ def remove_log_collector(self, collector):
|
|
|
9991ea |
def from_env(cls, env, domain, hostname, role, index):
|
|
|
9991ea |
ip = env.get('BEAKER%s%s_IP_env%s' %
|
|
|
9991ea |
(role.upper(), index, domain.index), None)
|
|
|
9991ea |
+ external_hostname = env.get(
|
|
|
9991ea |
+ 'BEAKER%s%s_env%s' % (role.upper(), index, domain.index), None)
|
|
|
9991ea |
|
|
|
9991ea |
# We need to determine the type of the host, this depends on the domain
|
|
|
9991ea |
# type, as we assume all Unix machines are in the Unix domain and
|
|
|
9991ea |
@@ -106,7 +109,7 @@ def from_env(cls, env, domain, hostname, role, index):
|
|
|
9991ea |
else:
|
|
|
9991ea |
cls = Host
|
|
|
9991ea |
|
|
|
9991ea |
- self = cls(domain, hostname, role, index, ip)
|
|
|
9991ea |
+ self = cls(domain, hostname, role, index, ip, external_hostname)
|
|
|
9991ea |
return self
|
|
|
9991ea |
|
|
|
9991ea |
@property
|
|
|
9991ea |
@@ -157,7 +160,7 @@ def put_file_contents(self, filename, contents):
|
|
|
9991ea |
def ldap_connect(self):
|
|
|
9991ea |
"""Return an LDAPClient authenticated to this host as directory manager
|
|
|
9991ea |
"""
|
|
|
9991ea |
- self.log.info('Connecting to LDAP')
|
|
|
9991ea |
+ self.log.info('Connecting to LDAP at %s', self.external_hostname)
|
|
|
9991ea |
ldap = IPAdmin(self.external_hostname)
|
|
|
9991ea |
binddn = self.config.dirman_dn
|
|
|
9991ea |
self.log.info('LDAP bind as %s' % binddn)
|
|
|
9991ea |
--
|
|
|
9991ea |
1.8.3.1
|
|
|
9991ea |
|