blob: 25425215036acb921b6357c8e8f6dcd1ec6dfaba (
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
|
#!/bin/bash
function run_tempest {
local message=$1
local tempest_regex=$2
sudo -H -u tempest tox -eall -- $tempest_regex --concurrency=$TEMPEST_CONCURRENCY
exitcode=$?
if [[ $exitcode -ne 0 ]]; then
die $LINENO "$message failure"
fi
}
function populate_start_script {
SCREEN_NAME=${SCREEN_NAME:-stack}
DEST=${DEST:-/opt/stack}
SERVICE_DIR=${SERVICE_DIR:-${DEST}/status}
ENABLED_SERVICES=${ENABLED_SERVICES:-n-cpu,g-api,c-vol}
LIBVIRT_GROUP=${LIBVIRT_GROUP:-libvirtd}
TIMESTAMP_FORMAT=${TIMESTAMP_FORMAT:-"%F-%H%M%S"}
LOGDAYS=${LOGDAYS:-7}
CURRENT_LOG_TIME=$(date "+$TIMESTAMP_FORMAT")
#creates script for starting process without screen and copies it to all
# nodes
#
# args:
# $1 - service name to start
# $2 - command to execute
# $3 - group to run under
cat > /tmp/start_process.sh <<EOF
set -x
service=\$1
command=\$2
sg=\$3
ENABLED_SERVICES=$ENABLED_SERVICES
SCREEN_NAME=$SCREEN_NAME
DEST=$DEST
SERVICE_DIR=$SERVICE_DIR
LOGDIR=$DEST/logs
TIMESTAMP_FORMAT=$TIMESTAMP_FORMAT
LOGDAYS=$LOGDAYS
CURRENT_LOG_TIME=\$(date "+$TIMESTAMP_FORMAT")
REAL_LOG_FILE="\$LOGDIR/\$service.log.\$CURRENT_LOG_TIME"
if [[ -n "\$LOGDIR" ]]; then
exec 1>&"\$REAL_LOG_FILE" 2>&1
ln -sf "\$REAL_LOG_FILE" \$LOGDIR/\$service.log
export PYTHONUNBUFFERED=1
fi
if [[ -n "\$sg" ]]; then
setsid sg \$sg -c "\$command" & echo \$! >\$SERVICE_DIR/\$SCREEN_NAME/\$service.pid
else
setsid \$command & echo \$! >\$SERVICE_DIR/\$SCREEN_NAME/\$service.pid
fi
exit 0
EOF
chmod +x /tmp/start_process.sh
$ANSIBLE subnodes --sudo -f 5 -i "$WORKSPACE/inventory" -m copy -a "src=/tmp/start_process.sh dest=/tmp/start_process.sh owner=$STACK_USER group=$STACK_USER mode=0777"
$ANSIBLE subnodes --sudo -f 5 -i "$WORKSPACE/inventory" -m shell -a "ls -la /tmp/start_process.sh"
}
function stop {
local target=$1
local service=$2
$ANSIBLE $target --sudo -f 5 -i "$WORKSPACE/inventory" -m shell -a "
executable=/bin/bash
BASE\=$BASE
source $BASE/new/devstack/functions-common
ENABLED_SERVICES\=$ENABLED_SERVICES
SCREEN_NAME\=$SCREEN_NAME
SERVICE_DIR\=$SERVICE_DIR
stop_process $service
"
}
|