#!/bin/bash
# ###########################################################################
# Name:        tos-pr-failure-planetlabII
# Description: Takeover Suggestion evaluation
# Revision:    $Id$
# ###########################################################################


. ./planetlab-config
export SSH_USER=$PLANETLAB_USER
export SSH_KEY=$PLANETLAB_KEY
export SERVICE_DIRECTORY="bin"
export SERVICE_PRE_PROGRAM="sudo"

# export SSH_USER="dreibh"
# export SSH_KEY="/home/dreibh/.ssh/test-key"
# export SERVICE_DIRECTORY="src/rsplib2/rsplib"
# export SERVICE_PRE_PROGRAM=""
export OPT_CSP="-cspserver=132.252.151.151:2960 -cspinterval=5000"

export PRNodeList="`cat PL-Great-USA.hosts`"
export PENodeList="`cat PL-Great-USA.hosts`"
export PUNodeList="`cat PL-Great-USA.hosts`"
export AttackerNodeList="`cat PL-Great-USA.hosts`"

export PortBase=1888

. ./attack-scenario3 init
export Measurement=tos-pr-failure-planetlabII
export Duration=300
export PRs=5
export PEs=25
export PUs=75
export PR1UptimeOverride=0
export PRAllUptime=0
export PRAllDowntime=100
export UsePEMasterPR="true"
export UsePUMasterPR="false"
export AttackInterval=1
export Policy="LeastUsed"
export LoadDegOverride=0
export MaxBadPEReports=3
export EKATransmissionInterval=500
export EKATimeoutInterval=1000
export MaxHRRate=-1
export MaxEURate=-1
export UseTakeoverSuggestion="false"
export Capacity=1000000
export ReregInterval=30000
export JobInterval=60.0
export JobSize=10000000
export Attackers=0
export AttackType="registration"
export AttackIdentifier=0
export AttackReportUnreachableProbability=0.0


if [ ! -e "$Measurement" ] ; then
   mkdir "$Measurement"
fi
rm -rf "$Measurement/Results"
if [ ! -e "$Measurement/Results" ] ; then
   mkdir "$Measurement/Results"
fi
echo "--resultsdirectory=$Measurement/Results" >$Measurement/summary.input


for Run in 0 1 2 3 4 5  6 7 8 9 A B C D  E F G H I ; do
   for Policy in RoundRobin LeastUsed Random ; do
      for PRAllUptime in 60 200 350 500 750 1000 ; do 
         for UseTakeoverSuggestion in "true" "false" ; do
            for ReregInterval in 2000 ; do

               ID=$Duration-$Policy-$PRAllUptime-$UseTakeoverSuggestion-$ReregInterval-$EKATransmissionInterval
               if [ $Run != "0" ] ; then
                  ID=Run$Run-$ID
               fi
               VARIABLES="Run Duration Policy Capacity JobSize JobInterval PRAllUptime UseTakeoverSuggestion ReregInterval EKATransmissionInterval"
               VALUES="$Run $Duration \"$Policy\" $Capacity $JobSize $JobInterval $PRAllUptime $UseTakeoverSuggestion $ReregInterval $EKATransmissionInterval"


               echo ID=$ID
               if [ ! -e "$Measurement/$ID" ] ; then
                  mkdir "$Measurement/$ID"
               fi


               cd "$Measurement/$ID"
               if [ ! -e status.txt ] ; then
                  ../../attack-scenario3 && touch status.txt
               else
                  echo "Skipping $ID -> already complete."
               fi
               cd ../..


               SCALARS="`find $Measurement/$ID -name "*.sca.bz2"`"
               for sca in $SCALARS ; do
                  echo "--values=\"$VALUES\"" >>$Measurement/summary.input
                  echo "--input=$sca" >>$Measurement/summary.input
               done
            done
         done
      done
   done
done


cat $Measurement/summary.input | ../createsummary "$VARIABLES" -batch
