blob: 63efa543114a8ca74df947300d3727ca55b89c2b (
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
|
#!/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
|