chiark / gitweb /
: ${:=} not ${:=}
[autopkgtest.git] / xen / readconfig.in
index a30c1cabf36eda21a5164f3f61c934a1f038e3f6..97e34ff249283964531f87d852da38173df447c4 100644 (file)
@@ -12,6 +12,7 @@ fail () {
 }
 
 x () { echo "x $*"; "$@"; }
+xl () { echo "x $*"; 3>&- 4>&- "$@"; }
 
 case "$BASH_VERSION" in
 '')    fail 'scripts using adtxenlvm readconfig must be bash scripts' ;;
@@ -23,17 +24,19 @@ esac
 : ${adt_nominum:=adt}
 : ${adt_testbed_ram:=256}
 : ${adt_freeze_ram:=32}
-: ${adt_fs_size:=3072M}
-: ${adt_fs_snapsize:=2560M}
+: ${adt_fs_size:=6144M}
+: ${adt_fs_snapsize:=5120M}
 : ${adt_fs_cowchunk:=8}
+: ${adt_swap_size:=5120M}
 : ${adt_playbase:=/var/lib/autopkgtest/xenlvm}
 : ${adt_fs_type:=ext3}
 : ${adt_fs_mkfs_args:=}
 : ${adt_vm_reduce_retries:=10}
 : ${adt_ssh_keytype:=dsa}
 
+: ${adt_debootstrap_opts:=}
 : ${adt_debootstrap_components:='*'}
-: ${adt_debootstrap_include:=libc6-xen,openssh-server,ed}
+: ${adt_debootstrap_include:=openssh-server,ed}
 : ${adt_debootstrap_includemore:=}
 : ${adt_debootstrap_mirrors:=}
 : ${adt_debootstrap_script:=}
@@ -83,13 +86,42 @@ cmdline_args "$@"
 test ! -e "${adt_config}" || . "${adt_config}"
 cmdline_args "$@"
 
+#---------- settings needed for locking ----------
+
+if [ ! "${adt_readconfig_initscript}" ]; then
+ case "$adt_distro" in
+ '')
+       printf "considering which distro to use ... "
+       test -e /etc/lsb-release || \
+               fail 'no /etc/lsb-version, config must specify adt_distro'
+       . /etc/lsb-release
+       adt_distro=$DISTRIB_CODENAME
+       echo "using same distro as host: $adt_distro"
+       ;;
+ esac
+fi
+
+# In-host-file-system playground
+: ${adt_play:=${adt_playbase}/${adt_nominum}_${adt_distro}}
+: ${adt_xmconfig:=${adt_play}/xmconfig}
+: ${adt_lock:=${adt_play}.lock}
+
+if [ "${adt_readconfig_needlock}" ] &&
+   [ "x${adt_lock}" != xnone ] && \
+   [ "x${ADT_LOCKED}" != "x$adt_lock" ]; then
+ if [ "${adt_whenlock_replumb81}" ]; then
+   exec >&8 8>&-
+ fi
+ ADT_LOCKED="$adt_lock" exec with-lock-ex -w "$adt_lock" "$0" "$@"
+fi
+
 #---------- calculated defaults for complex settings ----------
 
 if [ ! "${adt_readconfig_initscript}" ]; then
  case "$adt_lvm_vg" in
  '')
        printf "searching for default volume group ... "
-       vgdisplay_out=`vgdisplay -c 8>&-`
+       vgdisplay_out=`vgdisplay -c 3>&- 8>&-`
        case "$vgdisplay_out" in
        "")     fail 'no volume groups found';;
        *"
@@ -158,19 +190,6 @@ case "$adt_modules" in
 *)     ;;
 esac
 
-if [ ! "${adt_readconfig_initscript}" ]; then
- case "$adt_distro" in
- '')
-       printf "considering which distro to use ... "
-       test -e /etc/lsb-release || \
-               fail 'no /etc/lsb-version, config must specify adt_distro'
-       . /etc/lsb-release
-       adt_distro=$DISTRIB_CODENAME
-       echo "using same distro as host: $adt_distro"
-       ;;
- esac
-fi
-
 hostname_from_ipaddr () {
  eval '
   if [ x"$adt_'$1'_hostname" = x ] && \
@@ -259,6 +278,7 @@ search_hook () {
 
 search_hook fw firewall fwhook
 search_hook setup setup setuphook
+search_hook sshauthkeys "ssh auth keys" sshauthkeys
 
 boolean_config () {
   eval '
@@ -280,13 +300,9 @@ boolean_config () {
 # Xen
 : ${adt_xmname:=${adt_nominum}_${adt_distro}}
 
-# In-host-file-system playground
-: ${adt_play:=${adt_playbase}/${adt_nominum}_${adt_distro}}
-: ${adt_xmconfig:=${adt_play}/xmconfig}
-: ${adt_lock:=${adt_play}/lock}
-
 # LVM
 boolean_config lvm_erasebase true
+
 : ${adt_lvm_baselv:=${adt_nominum}_${adt_distro}_base}
 : ${adt_lvm_cowdatalv:=${adt_nominum}_${adt_distro}_cowdata}
 : ${adt_devmapper_cowdev:=${adt_nominum}_${adt_distro}_snap}
@@ -294,19 +310,42 @@ boolean_config lvm_erasebase true
 : ${adt_fslink_dir:=adt-xenlvm}
 : ${adt_fslink_name:=${adt_nominum}_${adt_distro}_fs}
 
+# LVM - swap
+: ${adt_lvm_eraseswap:=$adt_lvm_erasebase}
+
+: ${adt_lvm_swapbaselv:=${adt_nominum}_${adt_distro}_swapbase}
+: ${adt_lvm_swapcowdatalv:=${adt_nominum}_${adt_distro}_swapcowdata}
+: ${adt_devmapper_swapcowdev:=${adt_nominum}_${adt_distro}_swapsnap}
+
+: ${adt_swaplink_dir:=adt-xenlvm}
+: ${adt_swaplink_name:=${adt_nominum}_${adt_distro}_swap}
+
+: ${adt_lvm_swapvg:=$adt_lvm_vg}
+
+: ${adt_swap_snapsize:=$adt_swap_size}
+: ${adt_swap_cowchunk:=$adt_fs_cowchunk}
+
+case "$adt_swap_size" in
+*[!0A-Za-z]*)  provide_swap=true       ;;
+*)             provide_swap=false      ;;
+esac
+
 # Firewall
 : ${adt_fw_testbedclients:=${adt_host_ipaddr}}
 
-lvm_baselv_namerhs=${adt_lvm_vg}/${adt_lvm_baselv}
-lvm_baselv_namepath=/dev/${lvm_baselv_namerhs}
+for fs in fs swap; do swap=${fs#fs}; eval "
+  lvm_baselv_${swap}namerhs=\${adt_lvm_${swap}vg}/\${adt_lvm_${swap}baselv}
+  lvm_baselv_${swap}namepath=/dev/\${lvm_baselv_${swap}namerhs}
 
-lvm_cowdata_namerhs=${adt_lvm_vg}/${adt_lvm_cowdatalv}
-lvm_cowdata_namepath=/dev/${lvm_cowdata_namerhs}
+  lvm_cowdata_${swap}namerhs=\${adt_lvm_${swap}vg}/\${adt_lvm_${swap}cowdatalv}
+  lvm_cowdata_${swap}namepath=/dev/\${lvm_cowdata_${swap}namerhs}
 
-lvm_snapdev=/dev/mapper/${adt_devmapper_cowdev}
+  lvm_${swap}snapdev=/dev/mapper/\${adt_devmapper_${swap}cowdev}
 
-lvm_fslink_ptrrhs=${adt_fslink_dir}/${adt_fslink_name}
-lvm_fslink_dirpath=/dev/${adt_fslink_dir}
-lvm_fslink_ptr=/dev/${adt_fslink_dir}/${adt_fslink_name}
+  lvm_${fs}link_ptrrhs=\${adt_${fs}link_dir}/\${adt_${fs}link_name}
+  lvm_${fs}link_dirpath=/dev/\${adt_${fs}link_dir}
+  lvm_${fs}link_ptr=/dev/\${adt_${fs}link_dir}/\${adt_${fs}link_name}
+  "
+done
 
 echo "adtxenlvm: configuration for read for nominum=${adt_nominum}"