aboutsummaryrefslogtreecommitdiffstats
path: root/yardstick/benchmark/scenarios/availability/ha_tools/fault_lxc_process_kill.bash
blob: b0b86ab65782571cd6df6dfbad1ba4adcc1fa378 (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
#!/bin/sh

##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

# Stop process by process name

set -e

NOVA_API_PROCESS_1="nova-api-os-compute"
NOVA_API_PROCESS_2="nova-api-metadata"
NOVA_API_LXC_FILTER_1="nova_api_os_compute"
NOVA_API_LXC_FILTER_2="nova_api_metadata"

process_name=$1

lxc_filter=$(echo "${process_name}" | sed 's/-/_/g')

if [ "${lxc_filter}" = "glance_api" ]; then
    lxc_filter="glance"
fi

if [ "${process_name}" = "nova-api" ]; then
    container_1=$(lxc-ls -1 --filter="${NOVA_API_LXC_FILTER_1}")
    container_2=$(lxc-ls -1 --filter="${NOVA_API_LXC_FILTER_2}")

    pids_1=$(lxc-attach -n "${container_1}" -- pgrep -f "/openstack/.*/${NOVA_API_PROCESS_1}")
    for pid in ${pids_1};
        do
            lxc-attach -n "${container_1}" -- kill -9 "${pid}"
        done

    pids_2=$(lxc-attach -n "${container_2}" -- pgrep -f "/openstack/.*/${NOVA_API_PROCESS_2}")
    for pid in ${pids_2};
        do
            lxc-attach -n "${container_2}" -- kill -9 "${pid}"
        done
else
    container=$(lxc-ls -1 --filter="${lxc_filter}")

    if [ "${process_name}" = "haproxy" ]; then
        for pid in $(pgrep -cf "/usr/.*/${process_name}");
            do
                kill -9 "${pid}"
            done
    elif [ "${process_name}" = "keystone" ]; then
        pids=$(lxc-attach -n "${container}" -- ps aux | grep "keystone" | grep -iv heartbeat | grep -iv monitor | grep -v grep | grep -v /bin/sh | awk '{print $2}')
        for pid in ${pids};
            do
                lxc-attach -n "${container}" -- kill -9 "${pid}"
            done
    else
        pids=$(lxc-attach -n "${container}" -- pgrep -f "/openstack/.*/${process_name}")
        for pid in ${pids};
            do
                lxc-attach -n "${container}" -- kill -9 "${pid}"
            done
    fi
fi