import logging, os, sys, fcntl kvm_test_dir = "/usr/local/autotest/client/tests/kvm" from autotest_lib.client.common_lib import cartesian_config def get_control(params, custom_cfg): control = ''' import sys, os, logging os.environ['LANG'] = 'en_US.UTF-8' kvm_test_dir = os.path.join(os.environ['AUTODIR'],'tests', 'kvm') sys.path.append(kvm_test_dir) from autotest_lib.client.common_lib import cartesian_config from autotest_lib.client.virt import virt_utils kernel_install_params = %s custom_cfg = %s def step_init(): job.next_step([step_test]) virt_utils.install_host_kernel(job, kernel_install_params) def step_test(): parser = cartesian_config.Parser() parser.parse_file(os.path.join(kvm_test_dir, "redhat.cfg")) for line in custom_cfg: parser.parse_string(line) virt_utils.run_tests(parser, job) ''' % (params, custom_cfg) return control def run(machine): parser = cartesian_config.Parser() parser.parse_file(os.path.join(kvm_test_dir, "redhat.cfg")) custom_cfg = $custom_job_cfg for line in custom_cfg: parser.parse_string(line) generator = parser.get_dicts() params = generator.next() host = hosts.create_host(machine) profile = params.get('host_install_profile') timeout = int(params.get('host_install_timeout', 3600)) if profile: host.install(profile=profile, timeout=timeout) at = autotest.Autotest(host) control = get_control(params, custom_cfg) at.run(control) job.parallel_simple(run, machines)