diff options
Diffstat (limited to 'invoke_session_oe')
-rwxr-xr-x | invoke_session_oe | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/invoke_session_oe b/invoke_session_oe index 59b7847..8b6fe0c 100755 --- a/invoke_session_oe +++ b/invoke_session_oe @@ -1,8 +1,13 @@ #!/bin/sh # Usage ./invoke_session <gateway> -# Hack for now until lava-test-shell is smart enough to know it's dispatcher ip -gateway=$1 +# If gateway isn't set we will guess it based on the default route +if [ -z "$1" ]; then + gateway=`ip route get 8.8.8.8 | grep via | cut -d ' ' -f3` +else + gateway=$1 +fi + echo "Target's Gateway: $gateway" # Copy invoke session @@ -31,13 +36,46 @@ echo ")" echo "*********************************************************************************************" echo "" echo "" + +cat <<EOF > ~/.bash_logout +stop_hacking +EOF + mkdir -p /run mkdir -p /run/hacking echo $$ > /run/hacking/hacking.pid +TIMESTAMP=`stat -c %Y /run/hacking/hacking.pid` +STARTED=false +TERMINATED=false echo "Hacking session active..." +lava-test-case hacking-session-active --result pass +tail -f /var/log/syslog & +echo $! > /run/hacking/tail.pid while [ -f /run/hacking/hacking.pid ] do + date + echo "====================" + who + echo "====================" + echo "" sleep 10 + LOGGEDIN=`who | grep pts | wc -l` + if ! $STARTED && [ $LOGGEDIN -gt 0 ]; then + STARTED=true + elif ! $STARTED && [ $LOGGEDIN -eq 0 ]; then + NOW=`date +%s` + ELAPSED=`expr $NOW - $TIMESTAMP` + if [ $ELAPSED -gt 3600 ]; then + TERMINATED=true + echo "No user logged in. Terminating session..." + lava-test-case hacking-session-terminated --result fail --measurement ${ELAPSED} --units seconds + stop_hacking + fi + fi done +kill `cat /run/hacking/tail.pid` +rm /run/hacking/tail.pid echo "Hacking session ended..." -echo "<LAVA_TEST_RUNNER>: exiting" +if ! ${TERMINATED}; then + lava-test-case hacking-session-terminated --result pass +fi |