From 4c2698bf1d198a1d13febe5f654a7411c741b691 Mon Sep 17 00:00:00 2001 From: Razvan Deaconescu Date: Tue, 3 Aug 2010 15:45:23 +0300 Subject: [PATCH] ControlScripts: add client_schedule.sh - script for scheduling clients; runs on test station/container --- ControlScripts/client_schedule.sh | 82 +++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100755 ControlScripts/client_schedule.sh diff --git a/ControlScripts/client_schedule.sh b/ControlScripts/client_schedule.sh new file mode 100755 index 0000000..538dbfe --- /dev/null +++ b/ControlScripts/client_schedule.sh @@ -0,0 +1,82 @@ +#!/bin/bash +# +# 2010 Razvan Deaconescu, razvan.deaconescu@cs.pub.ro +# +# Schedule clients +# The script +# * starts/stops a client +# * manages when client completes + +if [ ! $# -le 3 ]; then + echo "usage: $0 client-type torrent-file periods" + exit 1 +fi + +# Read the global configuration variables +source ../ConfigFiles/globalconfig.txt + +client_type=$1 +torrent_file=$2 + +shift 2 +periods=$@ + +client_pid=0 + +declare start_time +declare stop_time +declare -a suspend_resume + +parse_periods() +{ + local tmp_array=($(echo "$periods" | sed 's/[,()]/ /g')) + start_time=${tmp_array[0]} + local len=${#tmp_array[@]} + + stop_time=${tmp_array[$(($len-1))]} + + for ((i = 1; i < $len-1; i++)); do + suspend_resume[$(($i - 1))]=${tmp_array[$i]} + done +} + +start_client() +{ + echo "starting client ..." +} + +stop_client() +{ + echo "stopping client ..." +} + +suspend_client() +{ + echo "suspending client ..." +} + +resume_client() +{ + echo "resuming client ..." +} + +to_sleep=${start_time} +sleep ${to_sleep} +start_client +old_time=${start_time} + +for ((i = 0; i < ${#suspend_resume[@]}; i += 2)); do + to_sleep=$((${suspend_resume[$i]} - ${old_time})) + sleep ${to_sleep} + suspend_client + old_time=${suspend_resume[$i]} + + to_sleep=$((${suspend_resume[$(($i+1))]} - ${old_time})) + sleep ${to_sleep} + resume_client + old_time=${suspend_resume[$(($i+1))]} +done + +to_sleep=$((${stop_time} - ${old_time})) +sleep ${to_sleep} +stop_client -- 2.20.1