In order to concentrate (as much as possible) processor architecture dependent code, create an arch module on virt tests. As the first function in there, refactor the code that gets the list of kvm modules on different architectures.
The idea is to move other arch dependent code to that module, so we have a cleaner and less repetitive way of solving multi-arch support. Signed-off-by: Lucas Meneghel Rodrigues <[email protected]> --- qemu/get_started.py | 7 +++---- virttest/arch.py | 10 ++++++++++ virttest/base_installer.py | 6 ++---- virttest/standalone_test.py | 6 ++---- 4 files changed, 17 insertions(+), 12 deletions(-) create mode 100644 virttest/arch.py diff --git a/qemu/get_started.py b/qemu/get_started.py index e33f363..c183616 100755 --- a/qemu/get_started.py +++ b/qemu/get_started.py @@ -6,16 +6,15 @@ Program to help setup kvm test environment """ import os, sys, logging import common -from virttest import utils_misc, data_dir, bootstrap +from virttest import utils_misc, data_dir, bootstrap, arch test_name = "qemu" test_dir = os.path.dirname(sys.modules[__name__].__file__) test_dir = os.path.abspath(test_dir) base_dir = data_dir.get_data_dir() default_userspace_paths = ["/usr/bin/qemu-kvm", "/usr/bin/qemu-img"] -platform = utils_misc.get_hardware_platform() -check_modules = platform == 'ppc64' and ["kvm"] or ["kvm", - "kvm-%s" % utils_misc.get_cpu_vendor(verbose=False)] + +check_modules = arch.get_kvm_module_list() online_docs_url = "https://github.com/autotest/virt-test/wiki/GetStarted" interactive = True diff --git a/virttest/arch.py b/virttest/arch.py new file mode 100644 index 0000000..d420273 --- /dev/null +++ b/virttest/arch.py @@ -0,0 +1,10 @@ +import platform +from virttest import utils_misc + +ARCH = platform.machine() + +def get_kvm_module_list(): + if ARCH == 'x86_64': + return ["kvm", "kvm-%s" % utils_misc.get_cpu_vendor(verbose=False)] + elif ARCH == 'ppc64': + return ["kvm"] diff --git a/virttest/base_installer.py b/virttest/base_installer.py index e6c1192..c02603c 100644 --- a/virttest/base_installer.py +++ b/virttest/base_installer.py @@ -9,7 +9,7 @@ custom logic for each virtualization hypervisor/software. import os, logging from autotest.client import utils, os_dep from autotest.client.shared import error -import build_helper, utils_misc, utils_koji, yumrepo +import build_helper, utils_misc, utils_koji, yumrepo, arch class NoModuleError(Exception): @@ -449,9 +449,7 @@ class NoopInstaller(BaseInstaller): @param params: Dict with test params. ''' if params['vm_type'] == 'qemu': - platform = utils_misc.get_hardware_platform() - params['module_list'] = platform == 'ppc64' and "kvm" or ("kvm " + - "kvm-%s" % utils_misc.get_cpu_vendor(verbose=False)) + params['module_list'] = arch.get_kvm_module_list() super(NoopInstaller, self).__init__(mode, name, test, params) diff --git a/virttest/standalone_test.py b/virttest/standalone_test.py index c6b1cb3..92f9f64 100644 --- a/virttest/standalone_test.py +++ b/virttest/standalone_test.py @@ -2,7 +2,7 @@ import os, logging, imp, sys, time, traceback, Queue, glob, shutil from autotest.client.shared import error from autotest.client import utils import utils_misc, utils_params, utils_env, env_process, data_dir, bootstrap -import storage, cartesian_config +import storage, cartesian_config, arch global GUEST_NAME_LIST GUEST_NAME_LIST = None @@ -569,9 +569,7 @@ def bootstrap_tests(options): test_dir = os.path.abspath(parent_config_dir) if options.type == 'qemu': - platform = utils_misc.get_hardware_platform() - check_modules = platform == 'ppc64' and ["kvm"] or ["kvm", - "kvm-%s" % utils_misc.get_cpu_vendor(verbose=False)] + check_modules = arch.get_kvm_module_list() else: check_modules = None online_docs_url = "https://github.com/autotest/virt-test/wiki" -- 1.8.2 _______________________________________________ Virt-test-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/virt-test-devel
