[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [OSSTEST PATCH 18/26] ts-debian-hvm-install, etc.: Do not hardcode in-iso path



ts-debian-hvm-install hardcoded `install.amd' as the directory in the
.iso in which to find the kernel and initrd.  This is wrong for
architectures other than amd64.

Instead, pass this information in runvars (as is done for the netinst
installs in make-distros-flight), and honour it in
ts-debian-hvm-install.

If the runvars are not set, default to the previous hardcoded values.
(This arranges that clones of old flights still work with new osstest,
eg for bisection.)

Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
 make-flight           |    8 ++++++++
 ts-debian-hvm-install |   25 +++++++++++++++++++------
 2 files changed, 27 insertions(+), 6 deletions(-)

diff --git a/make-flight b/make-flight
index c1f40b9..accf922 100755
--- a/make-flight
+++ b/make-flight
@@ -264,6 +264,12 @@ do_hvm_debian_test_one () {
 
   local arch=$(branch_debianhvm_arch)
 
+  case "$arch" in
+    amd64) iso_dir='install.amd' ;;
+    i386)  iso_dir='install.386' ;;
+    *)     iso_dir="install.$arch" ;;
+  esac
+
   stubdom_suffix=""
   stubdom_runvar=""
   if [ x$stubdom = xtrue ]; then
@@ -276,6 +282,8 @@ do_hvm_debian_test_one () {
     enable_xsm=$xsm                             \
     $stubdom_runvar                             \
     debianhvm_image=debian-7.2.0-$arch-CD-1.iso \
+    debianhvm_iso_kernel=/$iso_dir/vmlinuz \
+    debianhvm_iso_ramdisk=/$iso_dir/initrd.gz \
     bios=$bios \
     all_hostflags=$most_hostflags,hvm
 }
diff --git a/ts-debian-hvm-install b/ts-debian-hvm-install
index 4b1eca4..3b93ebd 100755
--- a/ts-debian-hvm-install
+++ b/ts-debian-hvm-install
@@ -48,6 +48,8 @@ our $disk_mb= 10000;
 our $guesthost= "$gn.guest.osstest";
 our $gho;
 
+our ($kernel, $ramdisk);
+
 our $gsuite= guest_var($gho,'suite',$c{GuestDebianSuite});
 
 sub preseed () {
@@ -130,14 +132,14 @@ set default="0"
 set timeout=5
 
 menuentry 'debian guest auto Install' {
-    linux /install.amd/vmlinuz $cmdline
-    initrd /install.amd/initrd.gz
+    linux $kernel $cmdline
+    initrd $ramdisk
 }
 END
 }
 
 sub isolinux_cfg () {
-    my $cmdline = gcmdline("initrd=/install.amd/initrd.gz");
+    my $cmdline = gcmdline("initrd=$ramdisk");
 
     return <<"END";
     default autoinstall
@@ -145,7 +147,7 @@ sub isolinux_cfg () {
     timeout 0
 
     label autoinstall
-        kernel /install.amd/vmlinuz
+        kernel $kernel
         append $cmdline
 END
 }
@@ -156,9 +158,9 @@ sub prepare_initrd ($$$) {
       rm -rf $initrddir
       mkdir $initrddir
       cd $initrddir
-      gzip -d < $newiso/install.amd/initrd.gz | cpio --extract 
--make-directories --no-absolute-filename
+      gzip -d < $newiso$ramdisk | cpio --extract --make-directories 
--no-absolute-filename
       cp $preseed_file_path preseed.cfg
-      find . | cpio -H newc --create | gzip -9 > $newiso/install.amd/initrd.gz
+      find . | cpio -H newc --create | gzip -9 > $newiso$ramdisk
       cd -
       rm -rf $initrddir
       cd $newiso
@@ -169,6 +171,13 @@ END
 
 our $emptyiso= "/root/$flight.$job.$gn-empty.iso";
 
+sub iso_path ($$) {
+    my ($which, $deftail) = @_;
+    my $v = guest_var($gho, "iso_$which", "/install.amd/$deftail");
+    die "$gho->{Guest} $which $v ?" unless $v =~ m#^/#;
+    return $v;
+}
+
 sub prep () {
     target_install_packages_norec($ho, qw(lvm2 rsync genisoimage));
 
@@ -177,6 +186,10 @@ sub prep () {
     $gho= prepareguest($ho, $gn, $guesthost, 22,
                        $disk_mb + 1,
                        200);
+
+    $kernel = iso_path('kernel', 'vmlinuz');
+    $ramdisk = iso_path('ramdisk', 'initrd.gz');
+
     my $base = "/root/$flight.$job.$gn-";
     my $newiso= $base . "newiso";
     my $emptydir= $base . "empty-dir";
-- 
1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.