chiark / gitweb /
f1d52539641564de92bb4231cb66afab56d55a8f
[autopkgtest.git] / xen / setup
1 #!/bin/bash
2 set -e
3 . ${ADT_XENLVM_SHARE:=/usr/share/autopkgtest/xenlvm}/readconfig
4
5 $ADT_XENLVM_SHARE/cleanup
6 lvchange -a n $lvm_cowdata_namepath ||:
7 lvremove $lvm_baselv_namepath ||:
8 lvremove $lvm_cowdata_namepath ||:
9
10 lvcreate -L $adt_fs_size -n $adt_lvm_baselv $adt_lvm_vg
11 lvcreate -L $adt_fs_snapsize -n $adt_lvm_cowdatalv $adt_lvm_vg
12 dd if=/dev/zero of=$lvm_baselv_namepath
13 mkfs -t $adt_fs_type $adt_mkfs_args $lvm_baselv_namepath
14
15 mkdir -p $adt_play/base
16 mount $adt_lvm_baselv $adt_play/base
17
18 pbuilder create --configfile /dev/null --distribution $distro   \
19         --no-targz --buildplace $adt_play/base                  \
20         $adt_pbuilder_args   --debootstrapopts --variant=''
21
22 $ADT_XENLVM_SHARE/fixups "$@"
23
24 echo "
25 --- writing $adt_xmconfig ---
26 "
27
28 cat <<END >$adt_xmconfig
29 kernel = "$kernel"
30 memory = $adt_testbed_ram
31 root = "/dev/hda1"
32 extra = "ro console=tty0"
33 disk = [ "phy:$lvm_fslink_ptrrhs,hda1,w" ]
34 vif = [ "bridge=none,mac=$adt_guest_macaddr,ip=${adt_guest_ipaddr},script=${adt_net_vifscript}" ]
35 on_crash = "preserve"
36 on_reboot = "preserve"
37 on_shutdown = "preserve"
38 END
39
40 if [ "x$ramdisk" != x ]; then
41 cat <<END >>$adt_xmconfig
42 ramdisk = "$ramdisk"
43 END
44 fi
45
46 umount $adt_lvm_baselv
47
48 mkdir -p /dev/${lvm_fslink_dirpath}
49 ln -sf ../$lvm_baselv_namerhs ${lvm_fslink_ptr}
50 xm create $adt_xmconfig name=$adt_xmname
51 retries=10
52
53 while true; do
54         if ping -c 1 $adt_guest_ipaddr && ./on-testbed id; then break; fi
55         if [ $retries -le 0 ]; then 
56                 echo >&2 'no response from guest'
57                 xm console $adt_xmname
58                 exit 1
59         fi
60         retries=$(($retries-1))
61         sleep 2
62 done
63
64 xm mem-set $adt_xmname $adt_freeze_ram
65 retries=$adt_vm_reduce_retries
66 while sleep 1; do
67   if xm mem-max $adt_xmname $adt_freeze_ram; then break; fi
68   if [ $retries -le 0 ]; then echo >&2 'cannot reduce memory'; exit 1; fi
69   retries=$(($retries-1))
70 done
71
72 xm save $adt_xmname $adt_play/xen-save
73 rm ${lvm_fslink_ptr}