diff --git a/prog/weaveutil/addrs.go b/prog/weaveutil/addrs.go index 8c18ee20..e48a9aa5 100644 --- a/prog/weaveutil/addrs.go +++ b/prog/weaveutil/addrs.go @@ -77,3 +77,16 @@ func printNetDevs(cid string, netDevs []weavenet.Dev) { fmt.Println() } } + +func bridgeIP(args []string) error { + if len(args) < 1 { + cmdUsage("bridge-ip", "") + } + bridgeName := args[0] + ip, err := weavenet.FindBridgeIP(bridgeName, nil) + if err != nil { + return err + } + fmt.Printf("%v", ip) + return nil +} diff --git a/prog/weaveutil/main.go b/prog/weaveutil/main.go index b4dabc65..8322a013 100644 --- a/prog/weaveutil/main.go +++ b/prog/weaveutil/main.go @@ -35,6 +35,7 @@ func init() { "cni-net": cniNet, "cni-ipam": cniIPAM, "expose-nat": exposeNAT, + "bridge-ip": bridgeIP, } } diff --git a/weave b/weave index 37fb4ef2..db642a08 100755 --- a/weave +++ b/weave @@ -825,8 +825,7 @@ destroy_bridge() { } docker_bridge_ip() { - DOCKER_BRIDGE_IP=$(ip -4 addr show dev $DOCKER_BRIDGE | grep -m1 -o 'inet [.0-9]*') || return 1 - DOCKER_BRIDGE_IP=${DOCKER_BRIDGE_IP#inet } + DOCKER_BRIDGE_IP=$(util_op bridge-ip $DOCKER_BRIDGE) } do_or_die() {