Signed-off-by: Lucas Meneghel Rodrigues <l...@redhat.com> Signed-off-by: Cleber Rosa <cr...@redhat.com> --- client/tests/kvm/kvm_utils.py | 70 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 70 insertions(+), 0 deletions(-)
diff --git a/client/tests/kvm/kvm_utils.py b/client/tests/kvm/kvm_utils.py index fb015e2..3750260 100644 --- a/client/tests/kvm/kvm_utils.py +++ b/client/tests/kvm/kvm_utils.py @@ -2229,3 +2229,73 @@ def mount(src, mount_point, type, perm="rw"): logging.error("Can't find mounted NFS share - /etc/mtab contents \n%s", file("/etc/mtab").read()) return False + + +def install_host_kernel(job, params): + """ + Install a host kernel, given the appropriate params. + + @param job: Job object. + @param params: Dict with host kernel install params. + """ + install_type = params.get('host_kernel_install_type') + + rpm_url = params.get('host_kernel_rpm_url') + + koji_cmd = params.get('host_kernel_koji_cmd') + koji_build = params.get('host_kernel_koji_build') + koji_tag = params.get('host_kernel_koji_tag') + + git_repo = params.get('host_kernel_git_repo') + git_branch = params.get('host_kernel_git_branch') + git_commit = params.get('host_kernel_git_commit') + patch_list = params.get('host_kernel_patch_list') + if patch_list: + patch_list = patch_list.split() + kernel_config = params.get('host_kernel_config') + + if install_type == 'rpm': + logging.info('Installing host kernel through rpm') + dst = os.path.join("/tmp", os.path.basename(rpm_url)) + k = utils.get_file(rpm_url, dst) + host_kernel = job.kernel(k) + host_kernel.install(install_vmlinux=False) + host_kernel.boot() + + elif install_type in ['koji', 'brew']: + k_deps = KojiPkgSpec(tag=koji_tag, package='kernel', + subpackages=['kernel-devel', 'kernel-firmware']) + k = KojiPkgSpec(tag=koji_tag, package='kernel', + subpackages=['kernel']) + + c = KojiClient(koji_cmd) + logging.info('Fetching kernel dependencies (-devel, -firmware)') + c.get_pkgs(k_deps, job.tmpdir) + logging.info('Installing kernel dependencies (-devel, -firmware) ' + 'through %s', install_type) + k_deps_rpm_file_names = [os.path.join(job.tmpdir, rpm_file_name) for + rpm_file_name in c.get_pkg_rpm_file_names(k_deps)] + utils.run('rpm -U --force %s' % " ".join(k_deps_rpm_file_names)) + + c.get_pkgs(k, job.tmpdir) + k_rpm = os.path.join(job.tmpdir, + c.get_pkg_rpm_file_names(k)[0]) + host_kernel = job.kernel(k_rpm) + host_kernel.install(install_vmlinux=False) + host_kernel.boot() + + elif install_type == 'git': + logging.info('Chose to install host kernel through git, proceeding') + repodir = os.path.join("/tmp", 'kernel_src') + r = get_git_branch(git_repo, git_branch, repodir, git_commit) + host_kernel = job.kernel(r) + if patch_list: + host_kernel.patch(patch_list) + host_kernel.config(kernel_config) + host_kernel.build() + host_kernel.install() + host_kernel.boot() + + else: + logging.info('Chose %s, using the current kernel for the host', + install_type) -- 1.7.4 _______________________________________________ Autotest mailing list Autotest@test.kernel.org http://test.kernel.org/cgi-bin/mailman/listinfo/autotest