| #!/bin/bash |
| |
| # |
| # Copyright 2015-present Open Networking Foundation |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| # ----------------------------------------------------------------------------- |
| # Tool to manage ONOS component configurations using REST API. |
| # ----------------------------------------------------------------------------- |
| |
| ONOS_WEB_USER=${ONOS_WEB_USER:-onos} # ONOS WEB User defaults to 'onos' |
| ONOS_WEB_PASS=${ONOS_WEB_PASS:-rocks} # ONOS WEB Password defaults to 'rocks' |
| |
| . $(dirname $0)/_find-node |
| . $(dirname $0)/_check-json |
| |
| fail="--fail" |
| [ "$1" == "-v" ] && shift && fail="" |
| |
| node=$(find_node $1) |
| cmd=${2:-list} |
| component=${3} |
| file=${4} |
| |
| export URL=http://$node:8181/onos/v1/configuration/${component} |
| export curl="curl ${fail} -sS --user $ONOS_WEB_USER:$ONOS_WEB_PASS --noproxy ${node} " |
| |
| usage() { |
| echo "Usage: onos-cfg node [list|post|delete] component [JSON file if posting or deleting]" |
| } |
| |
| if [ "$node" == "" -o "$component" == "" ]; then |
| usage && exit 1 |
| fi |
| |
| case $cmd in |
| list) |
| ${curl} -X GET ${URL} && echo;; |
| post|delete) |
| checkJson "$file" |
| $curl -X $cmd -H 'Content-Type:application/json' \ |
| ${URL} -d@$file && echo;; |
| *) usage && exit 1;; |
| esac |
| |
| |
| |
| |
| |
| |