| #!/bin/bash |
| # ----------------------------------------------------------------------------- |
| # Applies the settings in the specified cell file or lists current cell |
| # definition if no cell file is given. |
| # ----------------------------------------------------------------------------- |
| |
| # Sets the primary instance to the specified instance number. |
| function setPrimaryInstance { |
| export OCI=$(env | egrep "OC[0-9]+" | sort | egrep OC${1:-1} | cut -d= -f2) |
| echo $OCI |
| } |
| |
| cell=$1 |
| case "$cell" in |
| "borrow") |
| aux="/tmp/cell-$$" |
| curl -sS -X POST "http://$CELL_WARDEN:4321/?duration=${2:-0}&user=${3:-$(id -un)}" \ |
| -d "$(cat ~/.ssh/id_rsa.pub)" > $aux |
| . $aux |
| rm -f $aux |
| export ONOS_INSTANCES=$(env | grep 'OC[0-9]*=' | sort | cut -d= -f2) |
| setPrimaryInstance 1 >/dev/null |
| onos-verify-cell |
| ;; |
| "return") |
| curl -sS -X DELETE "http://$CELL_WARDEN:4321/?user=${2:-$(id -un)}" |
| unset ONOS_CELL ONOS_NIC ONOS_IP ONOS_APPS ONOS_BOOT_FEATURES |
| unset OCI OCN OCT ONOS_INSTANCES ONOS_FEATURES |
| unset $(env | sed -n 's:\(^OC[0-9]\{1,\}\)=.*:\1 :g p') |
| ;; |
| |
| "status") |
| curl -sS "http://$CELL_WARDEN:4321/" | sort |
| ;; |
| |
| "") |
| env | egrep "ONOS_CELL" |
| env | egrep "OCI" |
| env | egrep "OC[0-9]+" | sort |
| env | egrep "OC[NT]" |
| env | egrep "ONOS_" | egrep -v 'ONOS_ROOT|ONOS_CELL|ONOS_INSTANCES' | sort |
| ;; |
| |
| *) |
| [ ! -f $ONOS_ROOT/tools/test/cells/$1 ] && \ |
| echo "No such cell: $1" >&2 && return 1 |
| unset ONOS_CELL ONOS_NIC ONOS_IP ONOS_APPS ONOS_BOOT_FEATURES |
| unset OCI OCN OCT ONOS_INSTANCES ONOS_FEATURES |
| unset $(env | sed -n 's:\(^OC[0-9]\{1,\}\)=.*:\1 :g p') |
| export ONOS_USER=${ONOS_USER:-sdn} |
| export ONOS_GROUP=${ONOS_GROUP:-sdn} |
| export ONOS_WEB_USER=onos |
| export ONOS_WEB_PASS=rocks |
| export ONOS_CELL=$1 |
| . $ONOS_ROOT/tools/test/cells/$1 |
| export ONOS_INSTANCES=$(env | grep 'OC[0-9]*=' | sort | cut -d= -f2) |
| setPrimaryInstance 1 >/dev/null |
| onos-cell |
| esac |