diff options
author | Leap Admins <sysdev@leap.se> | 2013-05-05 09:19:14 +0000 |
---|---|---|
committer | Leap Admins <sysdev@leap.se> | 2013-05-05 09:19:14 +0000 |
commit | 76e3fb0af9db524c009203dee020d34d5452d8e9 (patch) | |
tree | dad21f056fff4f01593275644e06a48d0e2aca93 /leap-platform-test | |
parent | a8d6b5f8e17c703be63efc064dbb2c83a8e9e719 (diff) |
integrated leap-deploy-node.sh and leap-reset-deploy-all.sh into leap-platform-test
Diffstat (limited to 'leap-platform-test')
-rwxr-xr-x | leap-platform-test | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/leap-platform-test b/leap-platform-test new file mode 100755 index 0000000..83b7153 --- /dev/null +++ b/leap-platform-test @@ -0,0 +1,149 @@ +#!/bin/bash + +usage() +{ +cat << EOF + +usage: $0 [options] command [arguments...] + +This script runs the leap platform deploy tests + +OPTIONS + + -c|--config file specify config file + -a|--all run command on all nodes + -h|--help show help + +COMMANDS + deploy <node> deploy node + reset_deploy <node> reset and deploy node + +EOF +} + +compile () { + leap $OPTS clean + leap $OPTS compile +} + + +deploy() { + vm=$1 + LOG="$LOGDIR/deploy-$vm.log" + ERRLOG="$LOGDIR/deploy-$vm-`date +"%F-%H%M%S"`-error.log" + + # remove colors until #1751 is fixed + RMCOLORS='s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' + + # we need to deploy with verbose level 2, and filter out unwanted stuff + # until puppet errors show up in verbose level 0 +1 (#1750) + FILTER_CLI='= read|= loading|= no change| - executing| = executing| = applying| = ran git| = checking| = synching| = skipping file_path| - cd .*; rsync -a| - hiera| = created hiera/| - cd /root/| - rolling backexecuting| - files/ca/client_ca.crt|\[bin,puppet\] ->' + FILTER_PUPPET='] notice: |] No change to hostname|] Puppet apply complete|] warning: Dynamic lookup|] warning: Scope\(Class' + FILTER_ALL="($FILTER_CLI|$FILTER_PUPPET)" + + + echo "Deploying \"$vm\" on `date`"|tee -a $LOG + + leap $OPTS -v 2 deploy $vm 2>&1 | sed -r "$RMCOLORS" | tee -a $LOG | egrep -v "$FILTER_ALL" > $ERRLOG + + + if [ $? -eq 0 ] + then + msg="From: $MAIL_FROM\nTo: $MAIL_TO\nSubject: Deploy to \"$vm\" had errors !\n\n`cat $ERRLOG`" + echo "Deploy to \"$vm\" on `date` had errors." | tee -a $LOG + echo + cat $ERRLOG + + if [ "$MAIL_TO" != '' ]; then + echo "Sending this mail to $MAIL_TO:" + printf "$msg" | sendmail -t + fi + + else + echo "Deploy to $vm on `date` went fine."| tee -a $LOG + fi +} + +reset_deploy() { + + compile + + echo "Starting deploy_nodes for nodes $@ as background tasks on `date`" + + for i in $@ + do + leap $OPTS local reset $i + # only sleep one time + if $need_to_sleep ; then + echo "Waiting $SLEEP secs for VM to come up..." + sleep $SLEEP + need_to_sleep=false + fi + echo $i + deploy $i & + done +} + + +config="" +all=false + +if ! options=$(getopt -o ac:h -l all,config:,help -- "$@") +then + # something went wrong, getopt will put out an error message for us + usage + exit 1 +fi + +eval set -- "$options" + +while [ $# -gt 0 ] +do + case $1 in + -h|--help) usage; exit 1;; + -c|--config) config=$2; shift ;; + -a|--all) all=true;; + -v|--verbose) VERBOSE=1 ;; + (--) shift; break;; + (-*) echo "$0: error - unrecognized option $1" 1>&2; exit 1;; + (*) break;; + esac + shift +done + + +cmd=$1 +shift +nodelist=$@ + +echo "config: $config" +echo "cmd: $cmd" +echo "nodelist: $nodelist" +echo "all: $all" +#echo "remaining: $@" + +if [ -z $config ] +then + usage + echo "Please provide a config file" + exit 1 +fi + +source $config +cd $ROOTDIR/$PROVIDER + +if ! $all ; then + nodes=$nodelist +else + nodes=$NODES +fi + +echo +echo "Starting $0 on `date`" + +case $cmd in + deploy) deploy "$nodes";; + reset_deploy) reset_deploy "$nodes";; +esac + + |