[DMAAP-48] Initial code import
[dmaap/datarouter.git] / datarouter-prov / src / main / resources / misc / provcmd
diff --git a/datarouter-prov/src/main/resources/misc/provcmd b/datarouter-prov/src/main/resources/misc/provcmd
new file mode 100644 (file)
index 0000000..63efa54
--- /dev/null
@@ -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