We not necessarily will have test args available when we construct a
installer object (we can't depend on a 'build' test always being run),
so move the args parsing to a method specific for the install code.

The new method may be eventually merted with install().

Signed-off-by: Eduardo Habkost <[email protected]>
---
 client/tests/kvm/kvm/installer.py |   18 ++++++++++--------
 client/tests/kvm/tests/build.py   |    1 +
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/client/tests/kvm/kvm/installer.py 
b/client/tests/kvm/kvm/installer.py
index 84ace09..bee0765 100644
--- a/client/tests/kvm/kvm/installer.py
+++ b/client/tests/kvm/kvm/installer.py
@@ -166,8 +166,10 @@ def save_build(build_dir, dest_dir):
 
 
 class BaseInstaller(object):
-    def __init__(self, mode, test, params):
+    def __init__(self, mode):
         self.install_mode = mode
+
+    def set_install_params(self, test, params):
         self.params = params
 
         load_modules = params.get('load_modules', 'no')
@@ -250,8 +252,8 @@ class YumInstaller(BaseInstaller):
     """
     Class that uses yum to install and remove packages.
     """
-    def __init__(self, mode, test, params):
-        super(YumInstaller, self).__init__(mode, test, params)
+    def set_install_params(self, test, params):
+        super(YumInstaller, self).set_install_params(test, params)
         # Checking if all required dependencies are available
         os_dep.command("rpm")
         os_dep.command("yum")
@@ -308,14 +310,14 @@ class KojiInstaller(YumInstaller):
     Class that handles installing KVM from the fedora build service, koji.
     It uses yum to install and remove packages.
     """
-    def __init__(self, mode, test, params):
+    def set_install_params(self, test, params):
         """
         Gets parameters and initializes the package downloader.
 
         @param test: kvm test object
         @param params: Dictionary with test arguments
         """
-        super(KojiInstaller, self).__init__(mode, test, params)
+        super(KojiInstaller, self).set_install_params(test, params)
         default_koji_cmd = '/usr/bin/koji'
         default_src_pkg = 'qemu'
         self.src_pkg = params.get("src_pkg", default_src_pkg)
@@ -352,14 +354,14 @@ class SourceDirInstaller(BaseInstaller):
     Class that handles building/installing KVM directly from a tarball or
     a single source code dir.
     """
-    def __init__(self, mode, test, params):
+    def set_install_params(self, test, params):
         """
         Initializes class attributes, and retrieves KVM code.
 
         @param test: kvm test object
         @param params: Dictionary with test arguments
         """
-        super(SourceDirInstaller, self).__init__(mode, test, params)
+        super(SourceDirInstaller, self).set_install_params(test, params)
 
         srcdir = params.get("srcdir", None)
         self.path_to_roms = params.get("path_to_rom_images", None)
@@ -657,4 +659,4 @@ def make_installer(test, params):
     # - 'mode' param
     mode = params.get("install_mode", params.get("mode"))
     klass = _installer_class(mode)
-    return klass(mode, test, params)
+    return klass(mode)
diff --git a/client/tests/kvm/tests/build.py b/client/tests/kvm/tests/build.py
index 7c9c193..99b0ae0 100644
--- a/client/tests/kvm/tests/build.py
+++ b/client/tests/kvm/tests/build.py
@@ -13,4 +13,5 @@ def run_build(test, params, env):
     params["srcdir"] = srcdir
 
     installer = kvm.installer.make_installer(test, params)
+    installer.set_install_params(test, params)
     installer.install()
-- 
1.7.3.2

_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to