blob: e3654eb9567fc9d6998285487e90c1298d3acd77 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
#!/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.
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"
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
|