blob: 22071e2d70f9540139237e75e50ffca8661ad167 [file] [log] [blame]
CASSANDRA_DIR='${HOME}/apache-cassandra-1.1.4'
ZK_DIR='${HOME}/zookeeper-3.4.5'
ONOS_DIR='${HOME}/ONOS'
ZK_LIB='/var/lib/zookeeper'
CASSANDRA_LIB='/var/lib/cassandra'
if [ x$CLUSTER == "x" ]; then
echo "CLUSTER is not set. Exitting."
exit
fi
if [ x$ONOS_CLUSTER_BASENAME == "x" ]; then
echo "ONOS_CLUSTER_BASENAME is not set. Exitting"
exit
fi
if [ x$ONOS_CLUSTER_NR_NODES == "x" ]; then
echo "ONOS_CLUSTER_NR_NODES is not set. Exitting"
exit
fi
export basename=$ONOS_CLUSTER_BASENAME
export nr_nodes=$ONOS_CLUSTER_NR_NODES
checkcluster () {
dsh -g $basename 'uname -a'
}
zk () {
case "$1" in
start)
echo "Starting ZK.."
# dsh -g $basename "$ZK_DIR/bin/zkServer.sh start"
dsh -g $basename 'cd ONOS; ./start-zk.sh start'
while [ 1 ]; do
# nup=`dsh -g $basename "$ZK_DIR/bin/zkServer.sh status" | grep "Mode" | egrep "leader|follower" | wc -l`
nup=`dsh -g $basename "cd ONOS; ./start-zk.sh status" | grep "Mode" | egrep "leader|follower|standalone" | wc -l`
echo "check status"
if [ $nup == $nr_nodes ]; then
echo "everybody's up: $nup up of of $nr_nodes"
echo "ZK started"
break;
fi
echo "waiting for everybody's up: $nup up of of $nr_nodes"
sleep 1
done
;;
stop)
echo "Stopping ZK.."
dsh -g $basename "$ZK_DIR/bin/zkServer.sh stop"
;;
status)
echo "Checking ZK Status"
dsh -g $basename "$ZK_DIR/bin/zkServer.sh status"
;;
esac
}
cassandra () {
case "$1" in
start)
echo "Starting Cassandra.."
echo " start cassandra at the seed node"
dsh -w ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh start"
sleep 1
echo " start cassandra in rest nodes"
dsh -g ${basename} -x ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh start"
while [ 1 ]; do
echo $$
dsh -w ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh status" > .cassandra_check.$$
cat .cassandra_check.$$
nup=`cat .cassandra_check.$$ | grep Normal |grep Up| wc -l`
if [ $nup == $nr_nodes ]; then
echo "everybody's up: $nup up of of $nr_nodes"
echo "Cassandra started"
break;
fi
echo "waiting for everybody's up: $nup up of of $nr_nodes"
sleep 1
done
;;
bootup)
echo "Removing old Cassandra data and logs"
dsh -g ${basename} "rm -rf /var/lib/cassandra/*"
dsh -g ${basename} "rm -rf /var/log/cassandra/*"
echo "Starting Cassandra nodes one by one..."
for (( c=1; c<=$nr_nodes; c++ ))
do
echo "Starting node ${basename}${c}"
dsh -g ${basename} -w ${basename}${c} "cd $ONOS_DIR; ./start-cassandra.sh start"
#Wait until it's up
while [ 1 ]; do
echo $$
dsh -w ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh status" > .cassandra_check.$$
cat .cassandra_check.$$
nup=`cat .cassandra_check.$$ | grep Normal |grep Up| wc -l`
if [ $nup == $c ]; then
echo "New node up: $nup up of of $nr_nodes"
break;
fi
echo "Waiting for new node to come up: $nup up of of $nr_nodes"
sleep 5
done
done
;;
stop)
echo "Stopping Cassandra.."
dsh -g ${basename} "cd $ONOS_DIR; ./start-cassandra.sh stop"
;;
cleandb)
echo "Removing all data in db"
dsh -w ${basename}1 "cd $ONOS_DIR; ./scripts/cleanup-cassandra.sh"
;;
checkdb)
echo "Check DB Status"
dsh -w ${basename}1 "cd $ONOS_DIR; ./scripts/check-db-status.sh"
;;
status)
echo "Checking Cassandra Status"
dsh -w ${basename}1 "cd $ONOS_DIR; ./start-cassandra.sh status"
;;
esac
}
onos () {
case "$1" in
start)
if [ x$2 == "x" -o x$2 == "xall" ]; then
echo "Starting ONOS on all nodes"
dsh -w ${basename}1 "cd $ONOS_DIR; ./start-onos.sh start"
sleep 3
dsh -g ${basename} -x ${basename}1 "cd $ONOS_DIR; ./start-onos.sh start"
dsh -g ${basename} "cd $ONOS_DIR; ./start-rest.sh start"
else
echo "Starting ONOS on ${basename}$2"
dsh -w ${basename}$2 "cd $ONOS_DIR; ./start-onos.sh start"
fi
;;
stop)
if [ x$2 == "x" -o x$2 == "xall" ]; then
echo "Stop ONOS on all nodes"
dsh -g ${basename} "cd $ONOS_DIR; ./start-onos.sh stop"
else
echo "Stop ONOS on ${basename}$2"
dsh -w ${basename}$2 "cd $ONOS_DIR; ./start-onos.sh stop"
fi
;;
status)
echo "Checking ONOS Status"
dsh -g ${basename} "cd $ONOS_DIR; ./start-onos.sh status"
;;
esac
}
switch () {
case "$1" in
local)
if [ x$2 == "x" -o x$2 == "xall" ]; then
echo "set all switches point to local controller"
dsh -g ${basename} "$ONOS_DIR/scripts/ctrl-local.sh"
else
dsh -w ${basename}$2 "$ONOS_DIR/scripts/ctrl-local.sh"
fi
;;
all)
if [ x$2 == "x" -o x$2 == "xall" ]; then
echo "set all non-core switches point to all non-core controllers"
dsh -g ${basename} -x ${basename}1 "$ONOS_DIR/scripts/ctrl-add-ext.sh"
else
dsh -w ${basename}$2 "$ONOS_DIR/scripts/ctrl-add-ext.sh"
fi
;;
none)
if [ x$2 == "x" -o x$2 == "xall" ]; then
echo "all non-core switches loose controller"
dsh -g ${basename} -x ${basename}1 "$ONOS_DIR/scripts/ctrl-none.sh"
else
dsh -w ${basename}$2 "$ONOS_DIR/scripts/ctrl-none.sh"
fi
;;
esac
}