diff options
Diffstat (limited to 'datarouter-prov/src/main/resources/misc/provcmd')
-rw-r--r-- | datarouter-prov/src/main/resources/misc/provcmd | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/datarouter-prov/src/main/resources/misc/provcmd b/datarouter-prov/src/main/resources/misc/provcmd new file mode 100644 index 00000000..63efa543 --- /dev/null +++ b/datarouter-prov/src/main/resources/misc/provcmd @@ -0,0 +1,163 @@ +#!/bin/bash +# +# AT&T - PROPRIETARY +# THIS FILE CONTAINS PROPRIETARY INFORMATION OF +# AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN +# ACCORDANCE WITH APPLICABLE AGREEMENTS. +# +# Copyright (c) 2013 AT&T Knowledge Ventures +# Unpublished and Not for Publication +# All Rights Reserved +# +# provcmd -- A script to interact with a provisioning server to manage the provisioning parameters. +# Set $VERBOSE to a non-empty string to see the curl commands as they are executed. +# +# $Id: provcmd,v 1.6 2014/03/31 13:23:33 eby Exp $ +# + +PATH=/opt/app/datartr/bin:/bin:/usr/bin:$PATH +PROVCMD="$0" +export PATH PROVSRVR PROVCMD NOPROXY + +if [ ! -x /usr/bin/curl ] +then + echo provcmd: curl is required for this tool. + exit 1 +fi +optloop= +while [ -z "$optloop" ] +do + if [ "$1" == '-s' ] + then + shift + PROVSRVR="$1" + shift + elif [ "$1" == '-v' ] + then + shift + VERBOSE=x + elif [ "$1" == '-N' ] + then + shift + NOPROXY='?noproxy=1' + else + optloop=1 + fi +done +if [ -z "$PROVSRVR" ] +then + echo "provcmd: you need to specify the server, either via the -s option" + echo " or by setting and exporting PROVSRVR" + exit 1 +fi + +CMD="$1" +shift +if [ "$CMD" == 'delete' ] +then + if [ $# -gt 0 ] + then + for i + do + [ -n "$VERBOSE" ] && echo curl -4 -k -X DELETE "https://$PROVSRVR/internal/api/$1$NOPROXY" + curl -4 -k -X DELETE "https://$PROVSRVR/internal/api/$1$NOPROXY" + done + exit 0 + fi +elif [ "$CMD" == 'create' ] +then + if [ $# -eq 2 ] + then + # create (with POST), then set the value + [ -n "$VERBOSE" ] && echo curl -4 -k -X POST --data '' "https://$PROVSRVR/internal/api/$1$NOPROXY" + curl -4 -k -X POST --data '' "https://$PROVSRVR/internal/api/$1$NOPROXY" + $PROVCMD set "$1" "$2" + exit 0 + fi +elif [ "$CMD" == 'get' ] +then + if [ $# -eq 1 ] + then + # get + [ -n "$VERBOSE" ] && echo curl -4 -k "https://$PROVSRVR/internal/api/$1$NOPROXY" + curl -4 -k "https://$PROVSRVR/internal/api/$1$NOPROXY" 2>/dev/null | tr '|' '\012' | sort + exit 0 + fi +elif [ "$CMD" == 'set' ] +then + if [ $# -ge 2 ] + then + p="$1" + shift + v="" + for i; do [ -n "$v" ] && v="$v|"; v="$v$i"; done + # set (with PUT) + ue=`urlencode "$v"` + NOPROXY=`echo $NOPROXY | tr '?' '&'` + [ -n "$VERBOSE" ] && echo curl -4 -k -X PUT "https://$PROVSRVR/internal/api/$p?val=$ue$NOPROXY" + curl -4 -k -X PUT "https://$PROVSRVR/internal/api/$p?val=$ue$NOPROXY" + exit 0 + fi +elif [ "$CMD" == 'append' ] +then + if [ $# -ge 2 ] + then + p="$1" + shift + tmp=`curl -4 -k "https://$PROVSRVR/internal/api/$p$NOPROXY" 2>/dev/null` + $PROVCMD set "$p" "$tmp" "$@" + exit 0 + fi +elif [ "$CMD" == 'remove' ] +then + if [ $# -eq 2 ] + then + p="$1" + rm="$2" + $PROVCMD get "$p" | grep -v "^$rm\$" > /tmp/pc$$ + IFS=$'\r\n' + $PROVCMD set "$p" `cat /tmp/pc$$` + rm /tmp/pc$$ + exit 0 + fi +fi + +# Some error somewhere - display usage +cat <<'EOF' +usage: provcmd [ -s server ] delete name1 [ name2 ... ] + provcmd [ -s server ] get name + provcmd [ -s server ] create name value + provcmd [ -s server ] set name value1 [ value2 ... ] + provcmd [ -s server ] append name value1 [ value2 ... ] + provcmd [ -s server ] remove name value + +delete - remove the parameters named name1, name2 ... +get - displays the parameters' value +create - creates a new parameter +set - sets the value of an existing parameter +append - appends the value to a list-based parameter +remove - removes a value from a list based parameter + +server - the provisioning server FQDN (feeds-drtr.web.att.com for production) + +Standard Parameters Names: +------------------------------ +ACTIVE_POD +DELIVERY_INIT_RETRY_INTERVAL +DELIVERY_MAX_AGE +DELIVERY_MAX_RETRY_INTERVAL +DELIVERY_RETRY_RATIO +LOGROLL_INTERVAL +NODES +PROV_ACTIVE_NAME +PROV_AUTH_ADDRESSES +PROV_AUTH_SUBJECTS +PROV_DOMAIN +PROV_MAXFEED_COUNT +PROV_MAXSUB_COUNT +PROV_NAME +PROV_REQUIRE_CERT +PROV_REQUIRE_SECURE +STANDBY_POD +EOF +exit 1 |