diff options
Diffstat (limited to 'framework/src/onos/tools/dev/bin/onos-app')
-rwxr-xr-x | framework/src/onos/tools/dev/bin/onos-app | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/framework/src/onos/tools/dev/bin/onos-app b/framework/src/onos/tools/dev/bin/onos-app new file mode 100755 index 00000000..d6fe562b --- /dev/null +++ b/framework/src/onos/tools/dev/bin/onos-app @@ -0,0 +1,72 @@ +#!/bin/bash +# ----------------------------------------------------------------------------- +# Tool to manage ONOS applications using REST API. +# ----------------------------------------------------------------------------- + +node=${1:-$OCI} +cmd=${2:-list} +app=${3} + +export URL=http://$node:8181/onos/v1/applications +export HDR="-HContent-Type:application/octet-stream" +export curl="curl -sS --user $ONOS_WEB_USER:$ONOS_WEB_PASS" + +# Prints usage help +function usage { + echo "usage: onos-app <node-ip> list" >&2 + echo " onos-app <node-ip> {install|install!} <app-file>" >&2 + echo " onos-app <node-ip> {reinstall|reinstall!} [<app-name>] <app-file>" >&2 + echo " onos-app <node-ip> {activate|deactivate|uninstall} <app-name>" >&2 + exit 1 +} + +# Extract app name from the specified *.oar file +function appName { + aux=/tmp/aux$$.jar + cp $1 $aux + pushd /tmp >/dev/null + jar xf $aux app.xml && grep name= app.xml | cut -d\" -f2 + rm -f $aux /tmp/app.xml + popd >/dev/null +} + +[ -z $node -o "$node" = "-h" -o "$node" = "--help" -o "$node" = "-?" ] && usage + +case $cmd in + list) $curl -X GET $URL;; + install!|install) + [ $cmd = "install!" ] && activate="?activate=true" + [ $# -lt 3 -o ! -f $app ] && usage + $curl -X POST $HDR $URL$activate --data-binary @$app + ;; + + reinstall!|reinstall) + [ $cmd = "reinstall!" ] && activate="?activate=true" + [ $# -lt 4 -a ! -f "$3" ] && usage + [ $# -eq 4 -a ! -f "$4" ] && usage + oar=$4 + [ $# -lt 4 ] && oar=$3 && app=$(appName $oar) + $curl -X DELETE $URL/$app + $curl -X POST $HDR $URL$activate --data-binary @$oar + ;; + + uninstall) + [ $# -lt 3 ] && usage + $curl -X DELETE $URL/$app + ;; + activate) + [ $# -lt 3 ] && usage + $curl -X POST $URL/$app/active + ;; + deactivate) + [ $# -lt 3 ] && usage + $curl -X DELETE $URL/$app/active + ;; + + *) usage;; +esac + + +status=$? +echo # new line for prompt +exit $status |