OSDN Git Service

Elimination of port which is at the time of a container stop in Open vSwitch
[fulcon/Fulcon.git] / src / lib / lib-stop
1 #!/bin/bash
2
3 # Copyright (C) 2015-2016 NIWA Hideyuki
4
5 FULCONDRIVER=`fulcon driver-name`
6 BRIDGEDRIVER=`fulcon bridge-name`
7 PATH=/usr/lib/fulcon/driver/$BRIDGEDRIVER:/usr/lib/fulcon/driver/$FULCONDRIVER:/usr/lib/fulcon/lib:$PATH
8
9 FULCONDIR="/var/lib/fulcon"
10
11 usage()
12 {
13         echo "usage: lib-stop [ -f ] NAME"
14 }
15
16 # check options
17 OPT_FLG=""
18 FLG_F=0
19
20 while getopts f OPT
21 do
22   case $OPT in
23     "f" ) FLG_F=1; OPT_FLG=" " ;;
24     \?  ) usage; exit -1;;
25   esac
26 done
27
28 shift `expr $OPTIND - 1`
29
30 if [ $# -eq 1 ]; then
31         NAME=$1
32 else
33         usage
34         exit -1
35 fi
36
37 fulcon-list-running | awk 'BEGIN{r=1}{if($1=="'$NAME'")r=0}END{exit(r);}'
38 if [ $? -ne 0 ]; then
39         echo "error: can't find running" $NAME
40         exit -1
41 fi
42
43 fulcon-stop $NAME >& /dev/null
44
45 NETIF=`ls $FULCONDIR/container/$NAME/net`
46 if [ x"$NETIF" != x"" ]; then
47         for i in $NETIF
48         do
49                 NETBR=`br-brif-list | \
50                   awk '{for(i=2;i<=NF;i++)if($i=="'$i'")print $1}'`
51                 br-delif $NETBR $i
52         done
53 fi
54
55 EMPTYBR=`br-emptylist`
56 if [ x"$EMPTYBR" != x"" ]; then
57         for i in $EMPTYBR
58         do
59                 ip link set down $i
60                 br-delbr $i
61         done
62 fi
63
64 echo "stopped" $NAME
65 exit 0
66
67