|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH OSSTEST v2 12/15] distros: support PV guest install from Debian netinst media.
Ian Campbell writes ("[PATCH OSSTEST v2 12/15] distros: support PV guest
install from Debian netinst media."):
> The netinst media are iso images containing a base Debian install and some
> (image size dependent) additional tasks.
>
> On x86 the "multiarch" iso flavour contains a Xen capable kernel for both i386
> and amd64 so use that.
>
> This adds support for two classes of ISO, the CD sized ones which are built
> nightly and the DVD sized ones which are built weekly.
>
> The images are downloaded using jigdo which sources the majority of the data
> from a local Debian mirror, for this reason I have not worried about the fact
> that the i386 and amd64 tests are downloading the same thing (adding a
> specific
> download job would require finding up to 4GB of scratch space for each
> flight).
>
> The ISOs booted using pygrub which can extract the kernel and initrd from a
> ISO
> image. The resulting guests are also booted with pygrub since the pv-grub-menu
> package is not available on the ISO images and we have pvgrub coverage from
> the
> netboot tests.
>
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> ---
> Osstest/Debian.pm | 7 +++++--
> make-distros-flight | 22 ++++++++++++++++++++
> ts-debian-di-install | 57
> ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 84 insertions(+), 2 deletions(-)
>
> diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
> index ad478ab..b149e8d 100644
> --- a/Osstest/Debian.pm
> +++ b/Osstest/Debian.pm
> @@ -433,8 +433,6 @@ sub preseed_base ($$;@) {
> $extra_packages ||= '';
>
> my $preseed= (<<END);
> -d-i mirror/suite string $suite
> -
> d-i debian-installer/locale string en_GB
> d-i console-keymaps-at/keymap select gb
> d-i keyboard-configuration/xkb-keymap string en_GB
> @@ -502,6 +500,11 @@ $xopts{ExtraPreseed}
>
> END
>
> + # For CDROM the suite is part of the image
> + $preseed .= <<END unless $xopts{CDROM};
> +d-i mirror/suite string $suite
> +END
> +
> # deb http://ftp.debian.org/debian/ wheezy-backports main
> $preseed .= <<END if $xopts{EnableBackports};
> d-i apt-setup/local0/repository string
> http://$c{DebianMirrorHost}/$c{DebianMirrorSubpath} $suite-backports main
> diff --git a/make-distros-flight b/make-distros-flight
> index 244d582..a679c61 100755
> --- a/make-distros-flight
> +++ b/make-distros-flight
> @@ -86,6 +86,19 @@ test_do_one_netboot () {
> all_hostflags=$most_hostflags
> }
>
> +test_do_one_netinst () {
> + # Always pygrub since no pv-grub-menu on CD
> + job_create_test test-$xenarch$kern-$dom0arch-$domU-$cd-netinst \
> + test-debian-di xl $xenarch $dom0arch \
> + kernbuildjob=${bfi}build-$dom0arch-$kernbuild \
> + debian_arch=$domU \
> + debian_cd=$cd \
> + debian_method=netinst \
> + debian_bootloader=pygrub \
> + all_hostflags=$most_hostflags
> +
> +}
> +
> test_matrix_do_one () {
> case ${xenarch} in
> amd64) domUarches="amd64 i386";;
> @@ -104,6 +117,15 @@ test_matrix_do_one () {
>
> done
>
> + for cd in current weekly ; do
> + case ${domU}_${dist} in
> + armhf_*) continue;; # No iso targets for armhf
> + *) ;;
> + esac
> +
> + test_do_one_netinst
> +
> + done
> done
> }
>
> diff --git a/ts-debian-di-install b/ts-debian-di-install
> index 5ed15e4..56feee6 100755
> --- a/ts-debian-di-install
> +++ b/ts-debian-di-install
> @@ -46,6 +46,53 @@ sub prep () {
> target_cmd_root($ho, "umount $gho->{Lvdev} ||:");
> }
>
> +sub setup_netinst($$$)
> +{
...
> + # Use the MD5SUMs file as an index
> + logm("Fetch index from $baseurl/MD5SUMS");
> + open C, "curl $baseurl/MD5SUMS|" or die "curl: $!";
This needs to be done in a way that has a timeout. I don't know what
curl's default is but I think it would be best to arrange to use cmd
in TestSupport.pm somehow. (Maybe directly, in which case it needs to
be exported.)
> + target_cmd_root($ho, <<END, 3600);
> + cd $didir && jigdo-lite --noask $netinst_jigdo
> +END
Can you indent the script line so this is easier to read ?
> + store_runvar("$gho->{Guest}_netinst_jigdo", $netinst_jigdo);
> +
> + return (<<END, "\"file:$didir/$filebase.iso,xvdd:cdrom,r\",");
> +bootloader = "pygrub"
> +bootloader_args = ["--kernel=$props->{IsoPath}/vmlinuz",
> "--ramdisk=$props->{IsoPath}/initrd.gz"]
Could be wrapped.
Thanks,
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |