X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=xen%2Fsetup;h=262f5eaa406d60271ec9159596083cb2dd63a712;hb=aa43f2a81adb120c1da99919c5b3523ea952d170;hp=b3c9b697decb433383b01128627e8f801cf5885d;hpb=907172185deaf4d880e4ca8153933a2e90b40560;p=autopkgtest.git diff --git a/xen/setup b/xen/setup index b3c9b69..262f5ea 100755 --- a/xen/setup +++ b/xen/setup @@ -1,76 +1,135 @@ #!/bin/bash set -e -. ./config -./cleanup -lvchange -a n $lvcowdata ||: -lvremove $lvbase ||: -lvremove $lvcowdata ||: +adt_readconfig_needkernel=y +adt_readconfig_needlock=y +. ${ADT_XENLVM_SHARE:=/usr/share/autopkgtest/xenlvm}/readconfig +test $nonoptargs = 0 || fail "non-option arguments not allowed" -lvcreate -L $fssize -n $lvbase $vg -lvcreate -L $snapsize -n $ncowdata $vg -#dd if=/dev/zero of=$lvbase -mkfs -t ext3 $lvbase +$ADT_XENLVM_SHARE/purge "$@" -mkdir -p $play/base -mount $lvbase $play/base +#----- create fs base -#--basetgz $play/base.tgz --buildplace +lvm_create_base () { + xl lvcreate -L $3 -n $2 $1 $4 + xl lvcreate -L $6 -n $5 $1 $7 + if $8; then + basesize=`lvdisplay -c $9 8>&- 3>&-` + basesize="${basesize#*:*:*:*:*:*:}" + basesize="${basesize%%:*}" + x dd if=/dev/zero of=$9 bs=512 count="$basesize" + fi +} -pbuilder create --configfile ./pbuilderrc --distribution $distro \ - --no-targz --buildplace $play/base \ - $pbuilderopts --debootstrapopts --variant='' +lvm_create_base $adt_lvm_vg \ + $adt_lvm_baselv $adt_fs_size $adt_lvm_pv_fsbase \ + $adt_lvm_cowdatalv $adt_fs_snapsize $adt_lvm_pv_fssnap \ + $adt_lvm_erasebase $lvm_baselv_namepath -./fixups $play/base $adt_host_hostname $adt_guest_hostname +x mkfs -t $adt_fs_type $adt_mkfs_args $lvm_baselv_namepath + +#----- create swap base + +if $provide_swap; then + lvm_create_base $adt_lvm_swapvg \ + $adt_lvm_swapbaselv $adt_swap_size $adt_lvm_pv_swapbase \ + $adt_lvm_swapcowdatalv $adt_swap_snapsize $adt_lvm_pv_swapsnap \ + $adt_lvm_eraseswap $lvm_baselv_swapnamepath + x mkswap $lvm_baselv_swapnamepath + swapdisk=", \"phy:$lvm_swaplink_ptrrhs,hda2,w\"" +fi + +#----- create base filesystem and info + +mkdir -p $adt_play/base +x mount $lvm_baselv_namepath $adt_play/base + +x debootstrap \ + --components="${adt_debootstrap_components}" \ + --include=${adt_debootstrap_include},${adt_debootstrap_includemore} \ + $adt_debootstrap_opts \ + "$adt_distro" "$adt_play/base" \ + "$adt_debootstrap_mirrors" "$adt_debootstrap_script" \ + |perl -pe ' + s/^(I: (?:Retrieving|Validating|Extracting|Unpacking|Configuring) [^A-Z].*)\n/ + sprintf "%-75s\r", $1 + /e +' + +$ADT_XENLVM_SHARE/fixups "$@" echo " --- writing $adt_xmconfig --- " -adt_host_ipaddr=`adnshost -t a +Do +Dt +Dc $adt_host_hostname` - cat <$adt_xmconfig -kernel = "$kernel" -memory = $tbmem +kernel = "$adt_kernel" +memory = $adt_testbed_ram root = "/dev/hda1" -extra = "ro console=tty0" -disk = [ "phy:$lvfsptrrhs,hda1,w" ] -vif = [ "bridge=none,mac=00:16:3e:7c:aa:7f,ip=$adt_guest_ipaddr,script=/etc/xen/scripts/vif-route-adt" ] +extra = "ro console=tty0 $adt_xmhook_extra" +disk = [ "phy:$lvm_fslink_ptrrhs,hda1,w"$swapdisk $adt_xmhook_disk ] +vif = [ "bridge=none,mac=$adt_guest_macaddr,ip=${adt_guest_ipaddr},script=${adt_net_vifscript}" $adt_xmhook_vif ] on_crash = "preserve" on_reboot = "preserve" on_shutdown = "preserve" +$adt_xmhook_config END -if [ "x$ramdisk" != x ]; then +if [ "x$adt_ramdisk" != x ]; then cat <>$adt_xmconfig -ramdisk = "$ramdisk" +ramdisk = "$adt_ramdisk" END fi -umount $lvbase +if [ "x$adt_setup_hook" != x ]; then + $adt_setup_hook ${adt_play}/base +fi + +x umount $lvm_baselv_namepath + +for fs in fs swap; do + swap=${fs#fs}; eval " + mkdir -p \${lvm_${fs}link_dirpath} + ln -sf ../\$lvm_baselv_${swap}namerhs \${lvm_${fs}link_ptr} + " +done -mkdir -p /dev/${pfx}_fs -ln -sf ../$lvbaserhs $lvfsptr -xm create $adt_xmconfig name=$xmname +x xm create $adt_xmconfig name=$adt_xmname retries=10 +if grep 0 /proc/sys/net/ipv4/ip_forward >/dev/null; then + cat <&2 'no response from guest' - xm console $xmname + x xm console $adt_xmname exit 1 fi retries=$(($retries-1)) sleep 2 done -xm mem-set $xmname $frzmem -retries=10 +x xm mem-set $adt_xmname $adt_freeze_ram +retries=$adt_vm_reduce_retries while sleep 1; do - if xm mem-max $xmname $frzmem; then break; fi + if x xm mem-max $adt_xmname $adt_freeze_ram; then break; fi if [ $retries -le 0 ]; then echo >&2 'cannot reduce memory'; exit 1; fi retries=$(($retries-1)) done -xm save $xmname $play/xen-save -rm $lvfsptr +x xm save $adt_xmname $adt_play/xen-save +rm ${lvm_fslink_ptr} ${lvm_swaplink_ptr} +touch "$adt_play/good"