#!/bin/bash
# ###########################################################################
# Name:        wp2-cookies-localI
# Description: Cookie-based failover
# 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=$USER
export SSH_KEY=/home/$SSH_USER/.ssh/test-key
export SERVICE_DIRECTORY="src/rsplib2/rsplib"
export SERVICE_PRE_PROGRAM=""
export OPT_CSP="-cspserver=127.0.0.1:2960 -cspinterval=1000"

export PRNodeList="localhost"
export PENodeList="localhost"
export PUNodeList="localhost"
export AttackerNodeList="localhost"

export PortBase=1333

. ./attack-scenario4 init
export Measurement=wp2-cookies-localI
export Duration=900
export PRs=1
export PEs=10
export PUs=30
export PR1UptimeOverride=0
export PEAllUptime=0
export PEAllDowntime=0
export PRAllUptime=0
export PRAllDowntime=30
export UsePEMasterPR="true"
export UsePUMasterPR="false"
export AttackInterval=1
export Policy="LeastUsed"
export LoadDegOverride=0
export EKATransmissionInterval=1000
export EKATimeoutInterval=1000
export MaxBadPEReports=3
export MaxHRRate=-1
export MaxEURate=-1
export UseTakeoverSuggestion="false"
export Capacity=1000000
export ReregInterval=30000
export SKATransmissionInterval=1000
export SKATimeoutInterval=1000
export CookieMaxCalculations=5000000
export CookieMaxTime=604800
export CleanShutdownProbability=0.0
export JobInterval=50.0   # U=60%, r=3, jsToSC=10
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 ; do
   for Policy in LeastUsed Random ; do   #  LeastUsed RoundRobin
      for PEAllUptime in 10 100 ; do
         for CookieMaxCalculations in 1000000 10000000 100000000 ; do


            ID=$Duration-$Policy-$PEAllUptime-$CleanShutdownProbability-$MaxBadPEReports-$EKATransmissionInterval-$SKATransmissionInterval-$CookieMaxCalculations
            if [ $Run != "0" ] ; then
               ID=Run$Run-$ID
            fi
            VARIABLES="Run Duration Policy Capacity JobSize JobInterval PEAllUptime CleanShutdownProbability MaxBadPEReports EKATransmissionInterval SKATransmissionInterval CookieMaxCalculations"
            VALUES="$Run $Duration \"$Policy\" $Capacity $JobSize $JobInterval $PEAllUptime $CleanShutdownProbability $MaxBadPEReports $EKATransmissionInterval $SKATransmissionInterval $CookieMaxCalculations"


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


            cd "$Measurement/$ID"
            if [ ! -e status.txt ] ; then
               ../../attack-scenario4 && 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


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