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
