onos-netcfg
1.11 KB
#!/bin/bash
# -----------------------------------------------------------------------------
# ONOS network configuration uploader.
# -----------------------------------------------------------------------------
[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
. $ONOS_ROOT/tools/build/envDefaults
. $ONOS_ROOT/tools/test/bin/find-node.sh
fail="--fail"
[ "$1" == "-v" ] && shift && fail=""
node=$(find_node $1)
file="${2:-$ONOS_ROOT/tools/test/topos/oe-linear-3.json}"
url="${3}"
method="POST"
[ $(echo $file | awk '{print tolower($0)}') == "delete" ] && method="DELETE"
if [ $method == "POST" ]; then
# Validate JSON
cat $file | python -m json.tool >> /dev/null
if [ "$?" -ne "0" ]; then
echo "Not valid JSON File" && exit 1
fi
curl $fail -sSL --user $ONOS_WEB_USER:$ONOS_WEB_PASS \
-X POST -H 'Content-Type:application/json' \
http://$node:8181/onos/v1/network/configuration/${url} -d@$file
elif [ $method == "DELETE" ]; then
curl $fail -sSL --user $ONOS_WEB_USER:$ONOS_WEB_PASS \
-X DELETE http://$node:8181/onos/v1/network/configuration/${url}
fi