blob: 75d0bffa01716feb3c6a0c8a81befbe50a73ac6e [file] [log] [blame]
#!/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
#
# 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.
# ============LICENSE_END=========================================================
#
# ECOMP is a trademark and service mark of AT&T Intellectual Property.
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