#!/bin/bash
export PATH="$PATH:bin:onos/bin"

# Creates ONOS cluster using ONOS docker images
ONOS_IMAGE=onosproject/onos:1.13.1
SSH_KEY=$(cut -d\  -f2 ~/.ssh/id_rsa.pub)

for i in {1..3}; do
    echo "Setting up onos-$i..."
    docker container run --detach --name onos-$i --hostname onos-$i --restart always $ONOS_IMAGE
    docker exec -i onos-$i /bin/bash -c "mkdir config; cat > config/cluster.json" < $(dirname $0)/cluster.json
    docker exec -it onos-$i bin/onos-user-key sdn $SSH_KEY  >/dev/null 2>&1
    docker exec -it onos-$i bin/onos-user-password onos rocks >/dev/null 2>&1
done

function waitForStart {
    sleep 5
    for i in {1..3}; do
        echo "Waiting for onos-$i startup..."
        ip=$(docker container inspect onos-$i | grep \"IPAddress | cut -d: -f2 | sort -u | tr -d '", ')
        for t in {1..60}; do
            curl --fail -sS http://$ip:8181/onos/v1/applications --user onos:rocks 1>/dev/null 2>&1 && break;
            sleep 1;
        done
        onos $ip summary >/dev/null 2>&1
    done
}

OC1=$(docker container inspect onos-1 | grep \"IPAddress | cut -d: -f2 | sort -u | tr -d '", ')
OC2=$(docker container inspect onos-2 | grep \"IPAddress | cut -d: -f2 | sort -u | tr -d '", ')
OC3=$(docker container inspect onos-3 | grep \"IPAddress | cut -d: -f2 | sort -u | tr -d '", ')
ONOS_INSTANCES="$OC1 $OC2 $OC3"

waitForStart

echo "Activating OpenFlow and ProxyARP applications..."
onos $OC1 app activate org.onosproject.openflow proxyarp layout
onos $OC1

