From 4868585d6e30c5a9d9d6d15ba22eb4edbe0d1393 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Thu, 18 Sep 2014 17:18:54 +0100 Subject: [PATCH] Add detach command --- weaver/weave | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/weaver/weave b/weaver/weave index 371f3cec..b9b2d69c 100755 --- a/weaver/weave +++ b/weaver/weave @@ -6,6 +6,7 @@ usage() { echo "weave launch / [-passwd ] ..." echo "weave run / ..." echo "weave attach / " + echo "weave detach " echo "weave expose /" echo "weave hide /" echo "weave status" @@ -102,7 +103,7 @@ stop_masquerading() { } # the following borrows from https://github.com/jpetazzo/pipework -configure_container_networking() { +find_container_pid() { DOCKERPID=$(docker inspect --format='{{ .State.Pid }}' $1) [ "$DOCKERPID" = 0 ] && { echo "Container $1 not running." >&2 @@ -112,6 +113,11 @@ configure_container_networking() { echo "Container $1 unknown to Docker." >&2 exit 1 } + return 0 +} + +configure_container_networking() { + find_container_pid $1 NSPID=$DOCKERPID [ ! -d /var/run/netns ] && mkdir -p /var/run/netns @@ -154,6 +160,15 @@ configure_container_networking() { return $EXITCODE } +takedown_container_networking() { + find_container_pid $1 + NSPID=$DOCKERPID + + LOCAL_IFNAME="v${CONTAINER_IFNAME}pl${NSPID}" + + ip link del $LOCAL_IFNAME type veth || true +} + case "$COMMAND" in launch) [ $# -gt 0 ] || usage @@ -236,6 +251,12 @@ case "$COMMAND" in shift 1 configure_container_networking $CONTAINER $IPADDR $CONTAINER_IFNAME ;; + detach) + [ $# -gt 0 ] || usage + CONTAINER=$1 + shift 1 + takedown_container_networking $CONTAINER + ;; expose) [ $# -gt 0 ] || usage IPADDR=$1