From: Anthony PERARD Date: Mon, 11 Jun 2018 18:36:37 +0000 (+0100) Subject: ts-xen-install: Adapt to install package from a centos repo X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=217c44cfaa069cd78f08b8e12809e4fde6fb3a1a;p=people%2Faperard%2Fosstest.git ts-xen-install: Adapt to install package from a centos repo --- diff --git a/Osstest/RedHat.pm b/Osstest/RedHat.pm index 60531fdf..1c2ab202 100644 --- a/Osstest/RedHat.pm +++ b/Osstest/RedHat.pm @@ -369,4 +369,45 @@ sub ks_installcmdline_core ($$;@) { return @cl; } +sub yum_add_repository ($@) { + my ($ho, @repos_url) = @_; + + my $repos = ''; + my $yum_repo_number = 1; + foreach my $url (@repos_url) { + $repos .= <{OS}"; + } +} + 1; diff --git a/ts-xen-install b/ts-xen-install index 8de94ac2..d06e46a3 100755 --- a/ts-xen-install +++ b/ts-xen-install @@ -23,6 +23,7 @@ use File::Path; use File::Basename; use POSIX; use Osstest::Debian; +use Osstest::RedHat; use Osstest::TestSupport; use Data::Dumper; use Osstest::CXFabric; @@ -46,6 +47,19 @@ my $enable_xsm = ($r{enable_xsm}//'false') =~ m/true/ ? 1 : 0; my %distpath; +sub setup_package_repo_config () { + # TODO: Find an appropriate runvar + # all_host_xen_repo? + my $repos_url = $r{redhat_repos_url}; + die "no repo" unless defined($repos_url); + my @repos_url = (); + while ($repos_url =~ s/^([^,]+),(.*)$/$2/) { + push @repos_url, "$1"; + } + push @repos_url, "$repos_url"; + host_add_repository($ho)->($ho, @repos_url); +} + sub packages () { target_install_packages($ho, qw(bridge-utils vncsnapshot libaio1 libpixman-1-0 @@ -103,6 +117,36 @@ sub some_extradebs ($) { } } +sub packages_redhat () { + # Merge that with packages() + # Maybe have a runvar for packages to install + # if a runvar exist for Xen package, do not run extract + my @packages; + + # For vncpasswd + if ($ho->{RedhatRelease} == 6) { + push @packages, 'tigervnc-server'; + } else { + push @packages, 'tigervnc-server-minimal'; + } + target_install_packages($ho, @packages); + + # This packages is necessary, in order to get the right kernel + # It pull /usr/bin/grub-bootxen.sh (helper to boot Xen by default). + target_install_packages($ho, qw(centos-release-xen-common)); + + # Xen + my @xen_packages = qw(xen); + push @xen_packages, qw(libvirt-daemon-xen libvirt-client) + if toolstack($ho)->{Name} eq "libvirt"; + target_install_packages($ho, @xen_packages); + + if ($ho->{RedhatRelease} == 6) { + # Update Xen kernel parametter + target_cmd_root($ho, "grubby --update-kernel=/boot/xen.gz --args='console=hvc0'"); + } +} + sub extradebs () { my $suite = $ho->{Suite}; @@ -408,12 +452,25 @@ END die if @hos > 1; $ho= $hos[0]; -packages(); -extradebs(); -extract(); +if (is_host_redhat_derived($ho)) { + # centos, install packages + + # Could look up for repo url + setup_package_repo_config(); + packages_redhat(); +} else { + # debian, extract dist tarballs + packages(); + extradebs(); + extract(); +} forbidden(); adjustconfig(); -setupboot(); -setupinitd(); -ensurebridge(); +if (is_host_redhat_derived($ho)) { + Osstest::RedHat::setupbridge($ho); +} else { + setupboot(); + setupinitd(); + ensurebridge(); +} hosts();