OSDN Git Service

Bridge driver's building in
[fulcon/Fulcon.git] / src / subcmd / net-info
1 #!/bin/bash
2
3 # Copyright (C) 2015 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 FULCONDIR=/var/lib/fulcon
9
10 usage()
11 {
12         echo "usage: net-info NAME"
13 }
14
15 lsdir() {
16   ls -f --ind=none $1 | sed '/^\.\{1,2\}$/d'
17 }
18
19 if [ $# -ne 1 ]; then
20         usage
21         exit -1
22 fi
23
24 if [ x"$1" == x"net-info" ]; then
25         CNAME=""
26 else
27         CNAME=$1
28 fi
29
30 net-fulcon-info()
31 {
32         LISTS=`fulcon list | awk '{printf "%s:%s:%s\n",$1,$2,$3}'`
33         for i in `lsdir $FULCONDIR/container`
34         do
35                 NAME=$i
36                 if [ ! -d $FULCONDIR/container/$NAME/net ]; then
37                         continue
38                 fi
39                 if [ x"$LISTS" != x"" ]; then
40                         for k in `echo $LISTS`
41                         do
42                                 NM=`echo $k | awk -F : '{print $1}'`
43                                 ST=`echo $k | awk -F : '{print $2}'`
44                                 if [ x"$NM" == x"$NAME" ]; then
45                                         STAT=$ST
46                                         break
47                                 fi
48                         done
49                 fi
50                 if [ x"$STAT" == x"RUNNING" ]; then
51                         if [ x"$NAME" != x"" ]; then
52                                 fulcon-ip $NAME | \
53                                   awk '{printf "%s\teth0\t\t%s\n","'$NAME'",$1}'
54                         fi
55                 fi
56                 if [ -d $FULCONDIR/container/$NAME/net ]; then
57                         for j in `lsdir $FULCONDIR/container/$NAME/net`
58                         do
59                                 cat $FULCONDIR/container/$NAME/net/$j | \
60                                   awk '{printf "%s\tvg%s_%s\t%s\n","'$NAME'","'$NAME'",$4,$3}'
61                         done
62                 fi
63         done
64 }
65
66 if [ x"$CNAME" == x"" ]; then
67         net-fulcon-info | sort
68 else
69         net-fulcon-info | awk '{if($1=="'$CNAME'")print $0}' | sort
70 fi
71
72 exit 0