remove some cruft to make flidas basefile build
[automated-distro-installer] / fai-revm
index 547689d462ae2f550eae0b07b1d839ebb62ab5cf..f7e45c9f97b960fa0af105fb9c4378f8c52c1f89 100755 (executable)
--- a/fai-revm
+++ b/fai-revm
 
 
 
 
 
 
-cleanup() { :; }
-set -eE -o pipefail
-trap 'cleanup; echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
-script_dir=$(dirname $(readlink -f "$BASH_SOURCE"))
+x="$(readlink -f "$BASH_SOURCE")"
+script_dir="${x%/*}"
+source "${script_dir}/bash-trace"
 
 e() { echo "$*"; "$@"; }
 
 
 e() { echo "$*"; "$@"; }
 
@@ -34,8 +33,9 @@ then start a virtual machine to test the config
 Note, sometimes shutting down the existing demohost vm
 fails. Just run again if that happens.
 
 Note, sometimes shutting down the existing demohost vm
 fails. Just run again if that happens.
 
--r         Do not reboot.
--n         Create new qcow2(s) for vm
+-r         Do not boot after install is complete
+-n         Create new qcow2(s) for vm. Good for testing partitioning
+           script, to ensure a blank disk.
 -h|--help  Print help and exit.
 
 Note: Uses GNU getopt options parsing style
 -h|--help  Print help and exit.
 
 Note: Uses GNU getopt options parsing style
@@ -43,28 +43,20 @@ EOF
     exit $1
 }
 
     exit $1
 }
 
-
-# not sure why I wanted to have this option before. oh well.
-redeploy=true
-
-reboot=true
-temp=$(getopt -l opt o "$@") || usage 1
+orig_args=("$@")
+new_disk=false
+temp=$(getopt -l help hnr "$@") || usage 1
 eval set -- "$temp"
 while true; do
     case $1 in
         -n) new_disk=true; shift ;;
 eval set -- "$temp"
 while true; do
     case $1 in
         -n) new_disk=true; shift ;;
-        -r) reboot=false; shift ;;
+        -r) reboot_arg=--noreboot; shift ;;
         -h|--help) usage ;;
         --) shift; break ;;
         *) echo "$0: Internal error!" ; exit 1 ;;
     esac
 done
 
         -h|--help) usage ;;
         --) shift; break ;;
         *) echo "$0: Internal error!" ; exit 1 ;;
     esac
 done
 
-
-if [[ $1 == -r ]]; then
-    redeploy=false
-fi
-
 # change this to test different disk counts. 1 and > 1 should be the only
 # important things to test.
 disk_count=1
 # change this to test different disk counts. 1 and > 1 should be the only
 # important things to test.
 disk_count=1
@@ -74,9 +66,8 @@ if [[ $script_dir == /a/bin/* ]]; then
     # Copy our script elsewhere so we can develop it
     # and save it at the same time it's running
     rm -rf /tmp/faifreeze
     # Copy our script elsewhere so we can develop it
     # and save it at the same time it's running
     rm -rf /tmp/faifreeze
-    mkdir -p /a/tmp
     cp -ar /a/bin/fai /tmp/faifreeze
     cp -ar /a/bin/fai /tmp/faifreeze
-    exec /tmp/faifreeze/${BASH_SOURCE##*/} "$@"
+    exec /tmp/faifreeze/${BASH_SOURCE##*/} "${orig_args[@]}"
 fi
 
 cd $script_dir
 fi
 
 cd $script_dir
@@ -85,19 +76,24 @@ is_arch_revm() {
     [[ ${0##*/} == arch-revm ]]
 }
 
     [[ ${0##*/} == arch-revm ]]
 }
 
-cleanup() { ./pxe-server :; }
+cleanup() {
+    ./pxe-server
+    ./faiserver-disable
+}
+_errcatch_cleanup=cleanup
+
 if is_arch_revm; then
 if is_arch_revm; then
-    ./pxe-server arch
+    e ./pxe-server demohost arch
     sleep 2
     # via osinfo-query os. guessing arch is closest to latest fedora.
     variant=fedora22
 else
     sleep 2
     # via osinfo-query os. guessing arch is closest to latest fedora.
     variant=fedora22
 else
-    ./pxe-server fai
+    e ./pxe-server demohost fai
     sleep 2
     sleep 2
-    if $redeploy; then
-        ./fai-redep
-    fi
-    variant=ubuntu16.04
+    # I don't think these variants actually make a diff for us, but I
+    # use the appropriate one when trying a new distro just in case.
+    variant=ubuntu14.04
+    #variant=ubuntu16.04
     #variant=debian8
 fi
 
     #variant=debian8
 fi
 
@@ -112,7 +108,7 @@ for ((i=1; i <= disk_count; i++)); do
     disk_arg+=("--disk path=$f")
     if $new_disk || [[ ! -e $f ]]; then
         s rm -f $f
     disk_arg+=("--disk path=$f")
     if $new_disk || [[ ! -e $f ]]; then
         s rm -f $f
-        e s qemu-img create -o preallocation=metadata -f qcow2 $f 20G
+        e s qemu-img create -o preallocation=metadata -f qcow2 $f 50G
     fi
 done
 
     fi
 done
 
@@ -126,7 +122,7 @@ fi
 #
 # uniq is to stop gtk-warning spam
 e s virt-install --os-variant $variant  -n $name --pxe -r 2048 --vcpus 1 \
 #
 # uniq is to stop gtk-warning spam
 e s virt-install --os-variant $variant  -n $name --pxe -r 2048 --vcpus 1 \
-  ${disk_arg[*]} -w bridge=br0,mac=52:54:00:9c:ef:ad \
+  ${disk_arg[*]} -w bridge=br0,mac=52:54:00:9c:ef:ad $reboot_arg \
   --graphics spice,listen=0.0.0.0 $console_arg |& grep -v '^ *$' | uniq &
 
 if [[ $SSH_CLIENT ]]; then
   --graphics spice,listen=0.0.0.0 $console_arg |& grep -v '^ *$' | uniq &
 
 if [[ $SSH_CLIENT ]]; then
@@ -134,11 +130,11 @@ if [[ $SSH_CLIENT ]]; then
 fi
 
 sleep 30
 fi
 
 sleep 30
-while ! timeout -s 9 10 ssh root@$name /bin/true; do
+while ! timeout -s 9 10 ssh -oBatchMode=yes root@$name /bin/true; do
     e sleep 5
 done
     e sleep 5
 done
-cleanup() { :; }
-e pxe-server :
+unset _errcatch_cleanup
+e pxe-server
 if is_arch_revm; then
     ./arch-init-remote $name
 fi
 if is_arch_revm; then
     ./arch-init-remote $name
 fi