Merge "Add Unit Tests for GroupServlet"
[dmaap/datarouter.git] / datarouter-prov / src / main / resources / misc / provcmd
index 63efa54..e3654eb 100644 (file)
@@ -1,19 +1,39 @@
 #!/bin/bash
+# ============LICENSE_START=======================================================
+# org.onap.dmaap
+# ================================================================================
+# Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# 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
 #
-#                        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.
+#      http://www.apache.org/licenses/LICENSE-2.0
 #
-#          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 $
+# 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.
+# ============LICENSE_END=========================================================
 #
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+
+urlencode() {
+    local data
+    if [[ $# != 1 ]]; then
+        echo "Usage: $0 string-to-urlencode"
+        return 1
+    fi
+    data="$(curl -s -o /dev/null -w %url_effective --get --data-urlencode "$1" "")"
+    if [[ $? != 3 ]]; then
+        echo "Unexpected error" 1>&2
+        return 2
+    fi
+    echo "${data##/?}"
+    return 0
+}
+export urlencode
 
 PATH=/opt/app/datartr/bin:/bin:/usr/bin:$PATH
 PROVCMD="$0"
@@ -21,105 +41,105 @@ export PATH PROVSRVR PROVCMD NOPROXY
 
 if [ ! -x /usr/bin/curl ]
 then
-       echo provcmd: curl is required for this tool.
-       exit 1
+    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
+    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
+    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
+    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
+    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
+    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
+    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
+    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
+    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