|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH OSSTEST v4] Set {ident}_suite runvar when install a Debian guest.
Currently those places which want this open code a lookup of the
{ident}_suite runvar with a fallback to the configuration file.
However selecthost was missing such a lookup in the case where it is
constructing a nested L1 host (which begins from the selectguest
template), which lead to ts-xen-install on Jessie missing the
installation of libnl-route-3-200.
Fix this by providing debian_guest_suite($gho) which as well as
initialising $gho->{Suite} stores an {ident}_suite runvar (taking care
to handle the case where one is already set by e.g. make-flight). For
convenience debian_guest_suite() also returns the suite name.
ts-debian-install, ts-debian-di-install and ts-debian-hvm-install now
use debian_guest_suite instead of open coding the lookup.
The final piece of the puzzle is to have selectguest() pickup the
{ident}_suite runvar (if it is set) and initialise $gho->{Suite} from
it.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
I've run an adhoc test with:
OSSTEST_JOBS_ONLY=
OSSTEST_JOBS_ONLY=$OSSTEST_JOBS_ONLY:build-amd64
OSSTEST_JOBS_ONLY=$OSSTEST_JOBS_ONLY:build-amd64-pvops
OSSTEST_JOBS_ONLY=$OSSTEST_JOBS_ONLY:test-amd64-amd64-qemuu-nested # nested
OSSTEST_JOBS_ONLY=$OSSTEST_JOBS_ONLY:test-amd64-amd64-xl-qemuu-debianhvm-amd64
# regular HVM
OSSTEST_JOBS_ONLY=$OSSTEST_JOBS_ONLY:test-amd64-amd64-xl-qcow2 # DI install
OSSTEST_JOBS_ONLY=$OSSTEST_JOBS_ONLY:test-amd64-amd64-xl # Normal PV
export OSSTEST_JOBS_ONLY
( ;-) )
The three HVM ones have passed and the PV one is well past the point where any
of this would make a difference (it's at 17.ts-guest-localmigrate)
v2: Totally different approach, replacing "selecthost: Correctly set
->{Suite} for a nested host in selecthost()". Previous version
had ts-debian-hvm-install using DebianGuestSuite and
ts-xen-install using DebianSuite.
v3: Another different approach, replacing "Add $gho->{Suite} field to
guest objects from {prepare,select}guest()".
v4: Use //= guest_var, and remove spaces inside if expr.
"use Osstest::Debian" in ts-debian-install (how it avoided that
requirement until now I'm not sure!)
---
Osstest/Debian.pm | 14 ++++++++++++++
Osstest/TestSupport.pm | 1 +
ts-debian-di-install | 2 +-
ts-debian-hvm-install | 2 +-
ts-debian-install | 3 ++-
5 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
index 317f663..cee0d88 100644
--- a/Osstest/Debian.pm
+++ b/Osstest/Debian.pm
@@ -35,6 +35,7 @@ BEGIN {
@ISA = qw(Exporter);
@EXPORT = qw(debian_boot_setup
debian_overlays
+ debian_guest_suite
%preseed_cmds
preseed_base
preseed_create
@@ -1335,4 +1336,17 @@ sub preseed_hook_cmds () {
return $preseed;
}
+sub debian_guest_suite ($) {
+ my ($gho) = @_;
+
+ $gho->{Suite} //= guest_var($gho,'suite',undef);
+
+ if (!$gho->{Suite}) {
+ $gho->{Suite} = $c{GuestDebianSuite};
+ store_runvar("$gho->{Guest}_suite", $gho->{Suite});
+ }
+
+ return $gho->{Suite};
+}
+
1;
diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index d1f7d36..61e885a 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -1453,6 +1453,7 @@ sub selectguest ($$) {
CfgPath => $r{"${gn}_cfgpath"},
Tftp => $ho->{Tftp},
Host => $ho,
+ Suite => $r{"${gn}_suite"},
};
foreach my $opt (guest_var_commalist($gho,'options')) {
$gho->{Options}{$opt}++;
diff --git a/ts-debian-di-install b/ts-debian-di-install
index 64b5d44..a9b3b20 100755
--- a/ts-debian-di-install
+++ b/ts-debian-di-install
@@ -190,7 +190,7 @@ END
if ( $method eq "netboot" )
{
- my $suite= $r{"$gho->{Guest}_suite"};
+ my $suite= debian_guest_suite($gho);
logm("$method $suite/$arch");
$method_cfg = setup_netboot($tmpdir, $arch, $suite);
diff --git a/ts-debian-hvm-install b/ts-debian-hvm-install
index 2c7580c..96190a1 100755
--- a/ts-debian-hvm-install
+++ b/ts-debian-hvm-install
@@ -199,7 +199,7 @@ sub prep () {
$disk_mb + 1,
200);
- $gsuite = guest_var($gho,'suite',$c{GuestDebianSuite});
+ $gsuite = debian_guest_suite($gho);
$kernel = iso_path('kernel', 'vmlinuz');
$ramdisk = iso_path('ramdisk', 'initrd.gz');
diff --git a/ts-debian-install b/ts-debian-install
index 0dfe40c..f42edbf 100755
--- a/ts-debian-install
+++ b/ts-debian-install
@@ -19,6 +19,7 @@ use strict qw(vars);
use DBI;
use Osstest;
use Osstest::TestSupport;
+use Osstest::Debian;
tsreadconfig();
@@ -47,7 +48,7 @@ sub prep () {
sub ginstall () {
my $arch= $r{"$gho->{Guest}_arch"};
my $archarg= defined($arch) ? "--arch $arch" : '';
- my $gsuite= guest_var($gho,'suite',$c{GuestDebianSuite});
+ my $gsuite= debian_guest_suite($gho);
my $kernpath = guest_var($gho,'kernel_path',$r{xen_kernel_path});
my $initrd = guest_var($gho,'initrd_path',$r{xen_initrd_path});
--
2.6.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |