Add more test tasks

- install_client
- connect_replica
- disconnect_replica
- prepare_host
- kinit_admin
This commit is contained in:
Petr Viktorin
2013-06-27 10:44:02 +02:00
parent db8027407a
commit ac70c2cc5c
3 changed files with 42 additions and 17 deletions

View File

@@ -24,7 +24,7 @@ import os
import nose import nose
from ipapython.ipa_log_manager import log_mgr from ipapython.ipa_log_manager import log_mgr
from ipatests.test_integration.config import get_global_config, env_to_script from ipatests.test_integration.config import get_global_config
from ipatests.test_integration import tasks from ipatests.test_integration import tasks
from ipatests.order_plugin import ordered from ipatests.order_plugin import ordered
@@ -74,10 +74,7 @@ class IntegrationTest(object):
@classmethod @classmethod
def prepare_host(cls, host): def prepare_host(cls, host):
cls.log.info('Preparing host %s', host.hostname) cls.log.info('Preparing host %s', host.hostname)
env_filename = os.path.join(host.config.test_dir, 'env.sh') tasks.prepare_host(host)
cls.collect_log(host, env_filename)
host.mkdir_recursive(host.config.test_dir)
host.put_file_contents(env_filename, env_to_script(host.to_env()))
@classmethod @classmethod
def install(cls): def install(cls):

View File

@@ -273,8 +273,6 @@ class Host(object):
else: else:
self.log.critical('No SSH credentials configured') self.log.critical('No SSH credentials configured')
raise RuntimeError('No SSH credentials configured') raise RuntimeError('No SSH credentials configured')
# Clean up the test directory
self.run_command(['rm', '-rvf', self.config.test_dir])
return transport return transport
@property @property

View File

@@ -25,10 +25,18 @@ import re
from ipapython import ipautil from ipapython import ipautil
from ipapython.ipa_log_manager import log_mgr from ipapython.ipa_log_manager import log_mgr
from ipatests.test_integration.config import env_to_script
log = log_mgr.get_logger(__name__) log = log_mgr.get_logger(__name__)
def prepare_host(host):
env_filename = os.path.join(host.config.test_dir, 'env.sh')
host.collect_log(env_filename)
host.mkdir_recursive(host.config.test_dir)
host.put_file_contents(env_filename, env_to_script(host.to_env()))
def apply_common_fixes(host): def apply_common_fixes(host):
fix_etc_hosts(host) fix_etc_hosts(host)
fix_hostname(host) fix_hostname(host)
@@ -93,6 +101,9 @@ def unapply_fixes(host):
restore_files(host) restore_files(host)
restore_hostname(host) restore_hostname(host)
# Clean up the test directory
host.run_command(['rm', '-rvf', host.config.test_dir])
def restore_files(host): def restore_files(host):
backupname = os.path.join(host.config.test_dir, 'file_backup') backupname = os.path.join(host.config.test_dir, 'file_backup')
@@ -147,8 +158,7 @@ def install_master(host):
enable_replication_debugging(host) enable_replication_debugging(host)
host.run_command(['kinit', 'admin'], kinit_admin(host)
stdin_text=host.config.admin_password)
def install_replica(master, replica, setup_ca=True): def install_replica(master, replica, setup_ca=True):
@@ -178,16 +188,36 @@ def install_replica(master, replica, setup_ca=True):
enable_replication_debugging(replica) enable_replication_debugging(replica)
replica.run_command(['kinit', 'admin'], kinit_admin(replica)
stdin_text=replica.config.admin_password)
def install_client(master, client):
client.collect_log('/var/log/ipaclient-install.log')
apply_common_fixes(client)
client.run_command(['ipa-client-install', '-U',
'--domain', client.domain.name,
'--realm', client.domain.realm,
'-p', client.config.admin_name,
'-w', client.config.admin_password,
'--server', master.hostname])
kinit_admin(client)
def connect_replica(master, replica=None): def connect_replica(master, replica):
if replica is None: kinit_admin(replica)
args = [replica.hostname, master.hostname] replica.run_command(['ipa-replica-manage', 'connect', master.hostname])
else:
args = [master.hostname]
replica.run_command(['ipa-replica-manage', 'connect'] + args) def disconnect_replica(master, replica):
kinit_admin(replica)
replica.run_command(['ipa-replica-manage', 'disconnect', master.hostname])
def kinit_admin(host):
host.run_command(['kinit', 'admin'],
stdin_text=host.config.admin_password)
def uninstall_master(host): def uninstall_master(host):