blob: b42ead107e484f4b51542f5f1a15a68c874efe72 [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 Kobayashi972b8462013-06-21 15:46:38 -07004
Masayoshi Kobayashif358ff52013-03-22 00:31:59 +00005ZK_LIB='/var/lib/zookeeper'
6CASSANDRA_LIB='/var/lib/cassandra'
7
8if [ x$CLUSTER == "x" ]; then
9 echo "CLUSTER is not set. Exitting."
10 exit
11fi
12if [ x$ONOS_CLUSTER_BASENAME == "x" ]; then
13 echo "ONOS_CLUSTER_BASENAME is not set. Exitting"
14 exit
15fi
16if [ x$ONOS_CLUSTER_NR_NODES == "x" ]; then
17 echo "ONOS_CLUSTER_NR_NODES is not set. Exitting"
18 exit
19fi
20
21export basename=$ONOS_CLUSTER_BASENAME
22export nr_nodes=$ONOS_CLUSTER_NR_NODES
23
24checkcluster () {
25 dsh -g $basename 'uname -a'
26}
27
28zk () {
29 case "$1" in
30 start)
31 echo "Starting ZK.."
Masayoshi Kobayashi99730902013-06-27 23:23:20 -070032# dsh -g $basename "$ZK_DIR/bin/zkServer.sh start"
33 dsh -g $basename 'cd ONOS; ./start-zk.sh start'
Masayoshi Kobayashif358ff52013-03-22 00:31:59 +000034 while [ 1 ]; do
Masayoshi Kobayashi99730902013-06-27 23:23:20 -070035# nup=`dsh -g $basename "$ZK_DIR/bin/zkServer.sh status" | grep "Mode" | egrep "leader|follower" | wc -l`
36 nup=`dsh -g $basename "cd ONOS; ./start-zk.sh status" | grep "Mode" | egrep "leader|follower|standalone" | wc -l`
Masayoshi Kobayashif358ff52013-03-22 00:31:59 +000037 if [ $nup == $nr_nodes ]; then
38 echo "everybody's up: $nup up of of $nr_nodes"
39 echo "ZK started"
40 break;
41 fi
42 echo "waiting for everybody's up: $nup up of of $nr_nodes"
43 sleep 1
44 done
45 ;;
46 stop)
47 echo "Stopping ZK.."
48 dsh -g $basename "$ZK_DIR/bin/zkServer.sh stop"
49 ;;
50 status)
51 echo "Checking ZK Status"
52 dsh -g $basename "$ZK_DIR/bin/zkServer.sh status"
53 ;;
54 esac
55}
56
57cassandra () {
58 case "$1" in
59 start)
60 echo "Starting Cassandra.."
61 echo " start cassandra at the seed node"
62 dsh -w ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh start"
63 sleep 1
64 echo " start cassandra in rest nodes"
65 dsh -g ${basename} -x ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh start"
66 while [ 1 ]; do
67 echo $$
68 dsh -w ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh status" > .cassandra_check.$$
69 cat .cassandra_check.$$
70 nup=`cat .cassandra_check.$$ | grep Normal |grep Up| wc -l`
71 if [ $nup == $nr_nodes ]; then
72 echo "everybody's up: $nup up of of $nr_nodes"
73 echo "Cassandra started"
74 break;
75 fi
76 echo "waiting for everybody's up: $nup up of of $nr_nodes"
77 sleep 1
78 done
79 ;;
Masayoshi Kobayashif238c9e2013-06-10 01:41:13 +000080 bootup)
81 echo "Removing old Cassandra data and logs"
82 dsh -g ${basename} "rm -rf /var/lib/cassandra/*"
83 dsh -g ${basename} "rm -rf /var/log/cassandra/*"
84
85 echo "Starting Cassandra nodes one by one..."
86 for (( c=1; c<=$nr_nodes; c++ ))
87 do
88 echo "Starting node ${basename}${c}"
89 dsh -g ${basename} -w ${basename}${c} "cd $ONOS_DIR; ./start-cassandra.sh start"
90
91 #Wait until it's up
92 while [ 1 ]; do
93 echo $$
94 dsh -w ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh status" > .cassandra_check.$$
95 cat .cassandra_check.$$
96 nup=`cat .cassandra_check.$$ | grep Normal |grep Up| wc -l`
97 if [ $nup == $c ]; then
98 echo "New node up: $nup up of of $nr_nodes"
99 break;
100 fi
101 echo "Waiting for new node to come up: $nup up of of $nr_nodes"
102 sleep 5
103 done
104 done
105 ;;
Masayoshi Kobayashif358ff52013-03-22 00:31:59 +0000106 stop)
107 echo "Stopping Cassandra.."
108 dsh -g ${basename} "cd $ONOS_DIR; ./start-cassandra.sh stop"
109 ;;
110 cleandb)
111 echo "Removing all data in db"
112 dsh -w ${basename}1 "cd $ONOS_DIR; ./scripts/cleanup-cassandra.sh"
113 ;;
Masayoshi Kobayashibd3d00e2013-04-03 22:59:57 +0000114 checkdb)
115 echo "Check DB Status"
116 dsh -w ${basename}1 "cd $ONOS_DIR; ./scripts/check-db-status.sh"
117 ;;
Masayoshi Kobayashif358ff52013-03-22 00:31:59 +0000118 status)
119 echo "Checking Cassandra Status"
120 dsh -w ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh status"
121 ;;
122 esac
123}
124
125onos () {
126 case "$1" in
127 start)
Masayoshi Kobayashi0ab03da2013-03-26 00:43:02 +0000128 if [ x$2 == "x" -o x$2 == "xall" ]; then
129 echo "Starting ONOS on all nodes"
Masayoshi Kobayashi99730902013-06-27 23:23:20 -0700130 dsh -w ${basename}1 "cd $ONOS_DIR; ./start-onos.sh start"
131 sleep 3
132 dsh -g ${basename} -x ${basename}1 "cd $ONOS_DIR; ./start-onos.sh start"
Masayoshi Kobayashi4a1542b2013-04-02 22:34:13 +0000133 dsh -g ${basename} "cd $ONOS_DIR; ./start-rest.sh start"
Masayoshi Kobayashi0ab03da2013-03-26 00:43:02 +0000134 else
135 echo "Starting ONOS on ${basename}$2"
136 dsh -w ${basename}$2 "cd $ONOS_DIR; ./start-onos.sh start"
137 fi
Masayoshi Kobayashif358ff52013-03-22 00:31:59 +0000138 ;;
139 stop)
Masayoshi Kobayashi0ab03da2013-03-26 00:43:02 +0000140 if [ x$2 == "x" -o x$2 == "xall" ]; then
141 echo "Stop ONOS on all nodes"
142 dsh -g ${basename} "cd $ONOS_DIR; ./start-onos.sh stop"
143 else
144 echo "Stop ONOS on ${basename}$2"
145 dsh -w ${basename}$2 "cd $ONOS_DIR; ./start-onos.sh stop"
146 fi
Masayoshi Kobayashif358ff52013-03-22 00:31:59 +0000147 ;;
148 status)
149 echo "Checking ONOS Status"
150 dsh -g ${basename} "cd $ONOS_DIR; ./start-onos.sh status"
151 ;;
152 esac
153}
Masayoshi Kobayashi0ab03da2013-03-26 00:43:02 +0000154switch () {
155 case "$1" in
156 local)
157 if [ x$2 == "x" -o x$2 == "xall" ]; then
158 echo "set all switches point to local controller"
159 dsh -g ${basename} "$ONOS_DIR/scripts/ctrl-local.sh"
160 else
161 dsh -w ${basename}$2 "$ONOS_DIR/scripts/ctrl-local.sh"
162 fi
163 ;;
164 all)
165 if [ x$2 == "x" -o x$2 == "xall" ]; then
166 echo "set all non-core switches point to all non-core controllers"
Masayoshi Kobayashi4a1542b2013-04-02 22:34:13 +0000167 dsh -g ${basename} -x ${basename}1 "$ONOS_DIR/scripts/ctrl-add-ext.sh"
Masayoshi Kobayashi0ab03da2013-03-26 00:43:02 +0000168 else
Masayoshi Kobayashi4a1542b2013-04-02 22:34:13 +0000169 dsh -w ${basename}$2 "$ONOS_DIR/scripts/ctrl-add-ext.sh"
Masayoshi Kobayashi0ab03da2013-03-26 00:43:02 +0000170 fi
171 ;;
172 none)
173 if [ x$2 == "x" -o x$2 == "xall" ]; then
174 echo "all non-core switches loose controller"
175 dsh -g ${basename} -x ${basename}1 "$ONOS_DIR/scripts/ctrl-none.sh"
176 else
177 dsh -w ${basename}$2 "$ONOS_DIR/scripts/ctrl-none.sh"
178 fi
179 ;;
180 esac
181}