#!/bin/bash
set -e
. ${ADT_XENLVM_SHARE:=/usr/share/autopkgtest/xenlvm}/readconfig
+test $nonoptargs = 0 || fail "non-option arguments not allowed"
-$ADT_XENLVM_SHARE/cleanup
-lvchange -a n $lvm_cowdata_namepath ||:
-lvremove $lvm_baselv_namepath ||:
-lvremove $lvm_cowdata_namepath ||:
+$ADT_XENLVM_SHARE/purge
-lvcreate -L $adt_fs_size -n $adt_lvm_baselv $adt_lvm_vg
-lvcreate -L $adt_fs_snapsize -n $adt_lvm_cowdatalv $adt_lvm_vg
-dd if=/dev/zero of=$lvm_baselv_namepath
-mkfs -t $adt_fs_type $adt_mkfs_args $lvm_baselv_namepath
+x lvcreate -L $adt_fs_size -n $adt_lvm_baselv $adt_lvm_vg
+x lvcreate -L $adt_fs_snapsize -n $adt_lvm_cowdatalv $adt_lvm_vg
+
+if $adt_lvm_erasebase; then
+ x dd if=/dev/zero of=$lvm_baselv_namepath
+fi
+x mkfs -t $adt_fs_type $adt_mkfs_args $lvm_baselv_namepath
mkdir -p $adt_play/base
-mount $adt_lvm_baselv $adt_play/base
+x mount $lvm_baselv_namepath $adt_play/base
-pbuilder create --configfile /dev/null --distribution $distro \
- --no-targz --buildplace $adt_play/base \
- $adt_pbuilder_args --debootstrapopts --variant=''
+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 "$@"
"
cat <<END >$adt_xmconfig
-kernel = "$kernel"
+kernel = "$adt_kernel"
memory = $adt_testbed_ram
root = "/dev/hda1"
extra = "ro console=tty0"
disk = [ "phy:$lvm_fslink_ptrrhs,hda1,w" ]
-vif = [ "bridge=none,mac=00:16:3e:7c:aa:7f,ip=$adt_guest_ipaddr,script=/etc/xen/scripts/vif-route-adt" ]
+vif = [ "bridge=none,mac=$adt_guest_macaddr,ip=${adt_guest_ipaddr},script=${adt_net_vifscript}" ]
on_crash = "preserve"
on_reboot = "preserve"
on_shutdown = "preserve"
END
-if [ "x$ramdisk" != x ]; then
+if [ "x$adt_ramdisk" != x ]; then
cat <<END >>$adt_xmconfig
-ramdisk = "$ramdisk"
+ramdisk = "$adt_ramdisk"
END
fi
-umount $adt_lvm_baselv
+if [ "x$adt_setup_hook" != x ]; then
+ $adt_setup_hook ${adt_play}/base
+fi
-mkdir -p /dev/${lvm_fslink_dirpath}
+x umount $lvm_baselv_namepath
+
+mkdir -p ${lvm_fslink_dirpath}
ln -sf ../$lvm_baselv_namerhs ${lvm_fslink_ptr}
-xm create $adt_xmconfig name=$adt_xmname
+x xm create $adt_xmconfig name=$adt_xmname
retries=10
+if grep 0 /proc/sys/net/ipv4/ip_forward >/dev/null; then
+ cat <<END
+
+********** WARNING - IP FORWARDING IS TURNED OFF **********
+Your testbed will probably have trouble with downloads, DNS, etc.
+You must turn this on manually, since it is a major config change.
+
+END
+fi
+
while true; do
- if ping -c 1 $adt_guest_ipaddr && ./on-testbed id; then break; fi
+ if ping -c 1 $adt_guest_ipaddr && \
+ /usr/share/autopkgtest/xenlvm/on-testbed '
+ set -e; umask 002; cd /var/lib;
+ mkdir -p autopkgtest; cd autopkgtest;
+ touch xenlvm-created
+ '; then break; fi
if [ $retries -le 0 ]; then
echo >&2 'no response from guest'
- xm console $adt_xmname
+ x xm console $adt_xmname
exit 1
fi
retries=$(($retries-1))
sleep 2
done
-xm mem-set $adt_xmname $adt_freeze_ram
+x xm mem-set $adt_xmname $adt_freeze_ram
retries=$adt_vm_reduce_retries
while sleep 1; do
- if xm mem-max $adt_xmname $adt_freeze_ram; 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 $adt_xmname $adt_play/xen-save
+x xm save $adt_xmname $adt_play/xen-save
rm ${lvm_fslink_ptr}