-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtopo_cleanup.sh
executable file
·74 lines (62 loc) · 2.01 KB
/
topo_cleanup.sh
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
#!/bin/bash
# Cleanup topology defined in config file
# usage: $0 <config> [<docker-image>]
# <config> - file with topology description
# <docker-image> - (OPTIONAL) docker image used for containers. If not specified, default image will be used.
STEPS=3
#VERBOSE="1"
# check config file
echo "==========================================="
echo "# TOPO($1).STOP [1/${STEPS}] : Checking input"
echo "==========================================="
# config
CHECK=`ls "$1"`
if [ ! "${CHECK}" ] ; then
echo "Topology config '$1' : Not found!"
echo "Usage: $0 <config-file> [<docker-image>]"
echo " <config-file> - file with topology description"
echo " <docker-image> - (OPTIONAL) docker image used for containers. If not specified, default image will be used."
exit 1
else
echo "Topology config '$1' : OK"
fi
. $1
if [ "$2" ] ; then
PRODUCTION_IMG="$2"
fi
echo -e "\n==========================================="
echo "# TOPO($1).STOP [2/${STEPS}] : Stoping containers"
echo "==========================================="
CONTAINERS=`docker ps | grep ${PRODUCTION_IMG} | awk '{print $NF}'`
#echo "CONTAINERS to delete:[$CONTAINERS]"
for CONTAINER in $CONTAINERS
do
docker stop ${CONTAINER}
done
#for NODE in $NODES
#do
# docker stop ${NODE} # >/dev/null 2>&1
#done
if [ "${VERBOSE}" ]; then
echo ""
docker ps
fi
echo -e "\n==========================================="
echo "# TOPO($1).STOP [3/${STEPS}] : Removing networks"
echo "==========================================="
NETWORKS=`docker network ls | grep ${NAME_PREFIX} | awk '{print $2}'`
#echo "NETWORKS to delete:[$NETWORKS]"
if [ "${NETWORKS}" ]; then
docker network rm ${NETWORKS}
fi
#for (( i=1; i<${#NETWORK_NAME[@]}; i++ ))
#do
# docker network rm ${NETWORK_NAME[$i]} # >/dev/null 2>&1
#done
if [ "${VERBOSE}" ]; then
echo ""
docker network ls
fi
echo -e "\n==========================================="
echo "# TOPO($1).STOP : DONE"
echo "==========================================="