import repository from arizona
[raven.git] / publish / digdug / build / digdugdemo / usr / local / digdugdemo / experiment.sh
1 #! /bin/bash
2
3 source ./conf.sh
4
5 digdug subscribe $DIGDUGSERVER
6 digdug setchannel digdugdemo
7 digdug setstate uninitialized
8
9 # number of 10-second units to simulate setup and work
10 SETUP_UNITS=3
11 WORK_UNITS=3
12
13 # Wait for the server to tell us it's time to set ourselves up
14 # We use --newversion, because this is the one place where we'll let the server initiate
15 # a new version of the experiment.  
16
17 digdug waitfor --newversion prepare
18 if [ $? -ne 0 ] ; then exit; fi
19
20 digdug setstate preparing
21
22 for (( i=1; i<=$SETUP_UNITS; i++ )); do
23   # We'll simulate 2 minutes worth of setup work, by sleeping 5 second
24   # inside a loop of 12 iterations. 
25
26   echo "Simulating setup work $i/$SETUP_UNITS"
27   sleep 10
28
29   # Bail out if the version of the experiment changed 
30   digdug verifyversion
31   if [ $? -ne 0 ] ; then exit; fi
32 done
33
34
35 # tell the server we're ready to start our job
36 digdug setstate ready
37
38 # wait for the server to tell us to run 
39 digdug waitfor run
40 if [ $? -ne 0 ] ; then exit; fi
41 digdug setstate running
42
43 for (( i=1; i<=$WORK_UNITS; i++ )); do
44   # We'll simulate 2 minutes of experiment, by sleeping 10 seconds
45   # inside a loop of 12 iterations
46
47   echo "Simulating experiment work $i/$WORK_UNITS"
48   sleep 10
49
50   # Bail out if the version changed
51   digdug verifyversion
52   if [ $? -ne 0 ] ; then exit; fi
53 done
54
55 # tell the server we're complete
56 digdug setstate complete
57
58 echo "Experiment complete. Waiting for cleanup event or version change."
59
60 digdug waitfor cleanup
61