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

Reply via email to