| #!/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 |