forked from dmwm/deployment
-
Notifications
You must be signed in to change notification settings - Fork 0
/
manage
executable file
·129 lines (104 loc) · 2.7 KB
/
manage
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
#!/bin/sh
##H Usage: manage ACTION [SECURITY-STRING]
##H
##H Available actions:
##H help show this help
##H version get current version of the service
##H status show current service's status
##H sysboot start server from crond if not running
##H restart (re)start the service
##H updateversions update database with ScramArchs/CMSSW releases
##H start (re)start the service
##H stop stop the service
##H
##H For more details please refer to operations page:
##H https://twiki.cern.ch/twiki/bin/view/CMS/ReqMgrSystemDesign
##H [nice, obsolete twiki, leave for reference and example ...]
if [ $(id -un) = cmsweb ]; then
echo "ERROR: please use another account" 1>&2
exit 1
fi
echo_e=-e bsdstart=bsdstart
case $(uname) in
Darwin )
md5sum() { md5 -r ${1+"$@"}; }
echo_e= bsdstart=start
;;
esac
ME=$(basename $(dirname $0))
TOP=$(cd $(dirname $0)/../../.. && pwd)
ROOT=$(cd $(dirname $0)/../.. && pwd)
CFGDIR=$(dirname $0)
LOGDIR=$TOP/logs/$ME
STATEDIR=$TOP/state/$ME
CFGFILE=$CFGDIR/config.py
AUTHDIR=$TOP/current/auth/t0_reqmon
COLOR_OK="\\033[0;32m"
COLOR_WARN="\\033[0;31m"
COLOR_NORMAL="\\033[0;39m"
. $ROOT/apps/$ME/etc/profile.d/init.sh
export PYTHONPATH=$ROOT/auth/$ME:$PYTHONPATH
export WMCORE_ROOT=$T0_REQMON_ROOT/lib/python*/site-packages
if [ -e $AUTHDIR/dmwm-service-cert.pem ] && [ -e $AUTHDIR/dmwm-service-key.pem ]; then
export X509_USER_CERT=$AUTHDIR/dmwm-service-cert.pem
export X509_USER_KEY=$AUTHDIR/dmwm-service-key.pem
fi
# Start service conditionally on crond restart.
sysboot()
{
wmc-httpd -v -d $STATEDIR -l "|rotatelogs $LOGDIR/t0_reqmon-%Y%m%d.log 86400" $CFGFILE
}
# Start the service.
start()
{
echo "starting $ME"
wmc-httpd -r -d $STATEDIR -l "|rotatelogs $LOGDIR/t0_reqmon-%Y%m%d.log 86400" $CFGFILE
}
# Stop the service.
stop()
{
echo "stopping $ME"
wmc-httpd -k -d $STATEDIR $CFGFILE
}
# Check if the server is running.
status()
{
wmc-httpd -s -d $STATEDIR $CFGFILE
}
# Verify the security string.
check()
{
CHECK=$(echo "$1" | md5sum | awk '{print $1}')
if [ $CHECK != 94e261a5a70785552d34a65068819993 ]; then
echo "$0: cannot complete operation, please check documentation." 1>&2
exit 2;
fi
}
# Main routine, perform action requested on command line.
case ${1:-status} in
sysboot )
sysboot
;;
start | restart )
check "$2"
stop
start
;;
status )
status
;;
stop )
check "$2"
stop
;;
help )
perl -ne '/^##H/ && do { s/^##H ?//; print }' < $0
;;
version )
echo "$T0_REQMON_VERSION"
;;
* )
echo "$0: unknown action '$1', please try '$0 help' or documentation." 1>&2
exit 1
;;
esac