aboutsummaryrefslogtreecommitdiffstats
path: root/QTIP.sh
blob: dcefb29f1d470403987a9c2c7fea5272dcafca97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#! /bin/bash

#DIR1= $PWD



function Call_Test {

	case "$1" in
        	 dhrystone)
                 mkdir $PWD/results/dhrystone
        	 ansible-playbook -s $PWD/benchmarks/playbooks/dhrystone.yaml --extra-vars "Dest_dir=$PWD/results" -v
         	 
          	 ;;

            	 ramspeed)
                 mkdir $PWD/results/ramspeed
     	     	 ansible-playbook -s $PWD/benchmarks/playbooks/ramspeedbench.yaml --extra-vars "Dest_dir=$PWD/results" -v 
         	 ;;

                 cachebench)
                 mkdir $PWD/results/cachebench
         	 ansible-playbook -s $PWD/benchmarks/playbooks/cachebench.yaml   --extra-vars "Dest_dir=$PWD/results" -v
          	 ;;

         	 whetstone)
                 mkdir $PWD/results/whetstone
         	 ansible-playbook -s $PWD/benchmarks/playbooks/whetstone.yaml  --extra-vars "Dest_dir=$PWD/results"  -v
          	 ;;

          	 *)
         	 echo "Please pass a correct  argument to test. use -h for more details"
         	 ;;
       esac

} 

mkdir $PWD/results
case "$1" in
          -h)
           printf "To run test.sh, 2 arguments are required\n"
           printf "First argument: The Test case to run\nOptions:\nFirst: For a comparison between a baremetal machine and a VM\nSecond: For a comparison between two baremetal machines\n\nSecond argument: The Benchmark to run\nOptions:\ndhrystone\nwhetstone\nramspeed\ncachebench\n"
           ;;
          First)
             
             echo "Enter the IP of the machine to be teststed for comparison to the VM"
             read ipvar
             echo "Enter the password of this machine"
             read -s  passwordvar
             expect  $PWD/data/ssh_exch.exp $ipvar $passwordvarp
             heat stack-create exp2 -f $PWD/Test-cases/SampleHeat.yaml
            
             VAR1=$( heat stack-show exp2 | grep "stack_status_reason" | awk '{print $6;}')
             echo $VAR1
             while [  "$VAR1" != completed ]
             do
             echo VM is coming up
             VAR1=$( heat stack-show exp2 | grep "stack_status_reason" | awk '{print $6;}')
            #echo $VAR1
             done
             echo VM Created

            if [ "$VAR1" == "completed" ]; then
              VAR=$( heat stack-show exp2 | grep "output_value" | awk '{print $4;}'| cut -d '"' -f2)
   
              echo IP of VM is:
              echo $VAR

              sed -i '/demo1/a '$VAR'' /etc/ansible/hosts
              sed -i '/demo1/a '$ipvar'' /etc/ansible/hosts
              

             
              echo Waiting for ping
              while !  ping -c1  $VAR &> /dev/null; do
             	 echo Waiting for ping
              done   
     
              echo Ping detected
              expect $PWD/data/ssh_exch.exp $VAR 
              Call_Test $2

              echo cleaning environment
              sleep 10
              $PWD/clean.sh
            

               fi	      

             ;;
             Second)
             echo Second test to be written below
             echo "Enter the IP of the first machine to be benchmarked for comparison"
             read ipvar
             echo "Enter the password of this machine"
             read -s  passwordvar
             expect  $PWD/data/ssh_exch.exp $ipvar $passwordvar
             sed -i '/demo1/a '$ipvar'' /etc/ansible/hosts
             echo "Enter the IP of the second machine to be benchmarked for comparison"
             read ipvar
             echo "Enter the password of this machine"
             read -s  passwordvar
             expect  $PWD/data/ssh_exch.exp $ipvar $passwordvar
             sed -i '/demo1/a '$ipvar'' /etc/ansible/hosts
             Call_Test $2
             echo cleaning environment
             sleep 10
             $PWD/clean.sh
             ;;
            
             *)
             echo Incorrect Arguments passed to the script. Run script with -h for more helo
              
esac