blob: e3a5b684fa3964e180a28b597fe278c1a569aca0 [file] [log] [blame]
Masayoshi Kobayashif0057de2013-06-20 16:55:22 -07001CASSANDRA_DIR='${HOME}/apache-cassandra-1.1.4'
2ZK_DIR='${HOME}/zookeeper-3.4.5'
3ONOS_DIR='${HOME}/ONOS'
Masayoshi Kobayashif358ff52013-03-22 00:31:59 +00004ZK_LIB='/var/lib/zookeeper'
5CASSANDRA_LIB='/var/lib/cassandra'
6
7if [ x$CLUSTER == "x" ]; then
8 echo "CLUSTER is not set. Exitting."
9 exit
10fi
11if [ x$ONOS_CLUSTER_BASENAME == "x" ]; then
12 echo "ONOS_CLUSTER_BASENAME is not set. Exitting"
13 exit
14fi
15if [ x$ONOS_CLUSTER_NR_NODES == "x" ]; then
16 echo "ONOS_CLUSTER_NR_NODES is not set. Exitting"
17 exit
18fi
19
20export basename=$ONOS_CLUSTER_BASENAME
21export nr_nodes=$ONOS_CLUSTER_NR_NODES
22
23checkcluster () {
24 dsh -g $basename 'uname -a'
25}
26
27zk () {
28 case "$1" in
29 start)
30 echo "Starting ZK.."
31 dsh -g $basename "$ZK_DIR/bin/zkServer.sh start"
32 while [ 1 ]; do
33 nup=`dsh -g $basename "$ZK_DIR/bin/zkServer.sh status" | grep "Mode" | egrep "leader|follower" | wc -l`
34 if [ $nup == $nr_nodes ]; then
35 echo "everybody's up: $nup up of of $nr_nodes"
36 echo "ZK started"
37 break;
38 fi
39 echo "waiting for everybody's up: $nup up of of $nr_nodes"
40 sleep 1
41 done
42 ;;
43 stop)
44 echo "Stopping ZK.."
45 dsh -g $basename "$ZK_DIR/bin/zkServer.sh stop"
46 ;;
47 status)
48 echo "Checking ZK Status"
49 dsh -g $basename "$ZK_DIR/bin/zkServer.sh status"
50 ;;
51 esac
52}
53
54cassandra () {
55 case "$1" in
56 start)
57 echo "Starting Cassandra.."
58 echo " start cassandra at the seed node"
59 dsh -w ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh start"
60 sleep 1
61 echo " start cassandra in rest nodes"
62 dsh -g ${basename} -x ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh start"
63 while [ 1 ]; do
64 echo $$
65 dsh -w ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh status" > .cassandra_check.$$
66 cat .cassandra_check.$$
67 nup=`cat .cassandra_check.$$ | grep Normal |grep Up| wc -l`
68 if [ $nup == $nr_nodes ]; then
69 echo "everybody's up: $nup up of of $nr_nodes"
70 echo "Cassandra started"
71 break;
72 fi
73 echo "waiting for everybody's up: $nup up of of $nr_nodes"
74 sleep 1
75 done
76 ;;
Masayoshi Kobayashif238c9e2013-06-10 01:41:13 +000077 bootup)
78 echo "Removing old Cassandra data and logs"
79 dsh -g ${basename} "rm -rf /var/lib/cassandra/*"
80 dsh -g ${basename} "rm -rf /var/log/cassandra/*"
81
82 echo "Starting Cassandra nodes one by one..."
83 for (( c=1; c<=$nr_nodes; c++ ))
84 do
85 echo "Starting node ${basename}${c}"
86 dsh -g ${basename} -w ${basename}${c} "cd $ONOS_DIR; ./start-cassandra.sh start"
87
88 #Wait until it's up
89 while [ 1 ]; do
90 echo $$
91 dsh -w ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh status" > .cassandra_check.$$
92 cat .cassandra_check.$$
93 nup=`cat .cassandra_check.$$ | grep Normal |grep Up| wc -l`
94 if [ $nup == $c ]; then
95 echo "New node up: $nup up of of $nr_nodes"
96 break;
97 fi
98 echo "Waiting for new node to come up: $nup up of of $nr_nodes"
99 sleep 5
100 done
101 done
102 ;;
Masayoshi Kobayashif358ff52013-03-22 00:31:59 +0000103 stop)
104 echo "Stopping Cassandra.."
105 dsh -g ${basename} "cd $ONOS_DIR; ./start-cassandra.sh stop"
106 ;;
107 cleandb)
108 echo "Removing all data in db"
109 dsh -w ${basename}1 "cd $ONOS_DIR; ./scripts/cleanup-cassandra.sh"
110 ;;
Masayoshi Kobayashibd3d00e2013-04-03 22:59:57 +0000111 checkdb)
112 echo "Check DB Status"
113 dsh -w ${basename}1 "cd $ONOS_DIR; ./scripts/check-db-status.sh"
114 ;;
Masayoshi Kobayashif358ff52013-03-22 00:31:59 +0000115 status)
116 echo "Checking Cassandra Status"
117 dsh -w ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh status"
118 ;;
119 esac
120}
121
122onos () {
123 case "$1" in
124 start)
Masayoshi Kobayashi0ab03da2013-03-26 00:43:02 +0000125 if [ x$2 == "x" -o x$2 == "xall" ]; then
126 echo "Starting ONOS on all nodes"
127 dsh -g ${basename} "cd $ONOS_DIR; ./start-onos.sh start"
Masayoshi Kobayashi4a1542b2013-04-02 22:34:13 +0000128 dsh -g ${basename} "cd $ONOS_DIR; ./start-rest.sh start"
Masayoshi Kobayashi0ab03da2013-03-26 00:43:02 +0000129 else
130 echo "Starting ONOS on ${basename}$2"
131 dsh -w ${basename}$2 "cd $ONOS_DIR; ./start-onos.sh start"
132 fi
Masayoshi Kobayashif358ff52013-03-22 00:31:59 +0000133 ;;
134 stop)
Masayoshi Kobayashi0ab03da2013-03-26 00:43:02 +0000135 if [ x$2 == "x" -o x$2 == "xall" ]; then
136 echo "Stop ONOS on all nodes"
137 dsh -g ${basename} "cd $ONOS_DIR; ./start-onos.sh stop"
138 else
139 echo "Stop ONOS on ${basename}$2"
140 dsh -w ${basename}$2 "cd $ONOS_DIR; ./start-onos.sh stop"
141 fi
Masayoshi Kobayashif358ff52013-03-22 00:31:59 +0000142 ;;
143 status)
144 echo "Checking ONOS Status"
145 dsh -g ${basename} "cd $ONOS_DIR; ./start-onos.sh status"
146 ;;
147 esac
148}
Masayoshi Kobayashi0ab03da2013-03-26 00:43:02 +0000149switch () {
150 case "$1" in
151 local)
152 if [ x$2 == "x" -o x$2 == "xall" ]; then
153 echo "set all switches point to local controller"
154 dsh -g ${basename} "$ONOS_DIR/scripts/ctrl-local.sh"
155 else
156 dsh -w ${basename}$2 "$ONOS_DIR/scripts/ctrl-local.sh"
157 fi
158 ;;
159 all)
160 if [ x$2 == "x" -o x$2 == "xall" ]; then
161 echo "set all non-core switches point to all non-core controllers"
Masayoshi Kobayashi4a1542b2013-04-02 22:34:13 +0000162 dsh -g ${basename} -x ${basename}1 "$ONOS_DIR/scripts/ctrl-add-ext.sh"
Masayoshi Kobayashi0ab03da2013-03-26 00:43:02 +0000163 else
Masayoshi Kobayashi4a1542b2013-04-02 22:34:13 +0000164 dsh -w ${basename}$2 "$ONOS_DIR/scripts/ctrl-add-ext.sh"
Masayoshi Kobayashi0ab03da2013-03-26 00:43:02 +0000165 fi
166 ;;
167 none)
168 if [ x$2 == "x" -o x$2 == "xall" ]; then
169 echo "all non-core switches loose controller"
170 dsh -g ${basename} -x ${basename}1 "$ONOS_DIR/scripts/ctrl-none.sh"
171 else
172 dsh -w ${basename}$2 "$ONOS_DIR/scripts/ctrl-none.sh"
173 fi
174 ;;
175 esac
176}