#! /bin/bash | |
controller=`hostname` | |
switches=`ifconfig -a | grep sw |grep -v eth | awk '{print $1}'` | |
function host2ip (){ | |
ip=`grep $1 /etc/hosts |grep -v "ip6"| awk '{print $1}'` | |
echo $ip | |
} | |
url="" | |
for c in $controller; do | |
url="$url tcp:`host2ip $c`:6633" | |
done | |
for s in $switches; do | |
dpid=`sudo ovs-ofctl show $s |grep dpid | awk '{split($4,x,":"); print x[2]}'` | |
if [ "x$dpid" == "x$1" ]; then | |
if [ x$2 == "xup" ]; then | |
sudo ovs-vsctl set-controller $s $url | |
echo "$s up" | |
elif [ x$2 == "xdown" ]; then | |
sudo ovs-vsctl set-controller $s | |
echo "$s down" | |
else | |
echo -n "$s controller: " | |
sudo ovs-vsctl get-controller $s | |
fi | |
fi | |
done |