Merge branch '1.1'
This commit is contained in:
commit
2ffe9b53f7
2 files changed
+44
-17
No files matched your search
Executable
+31
@@ -0,0 +1,31 @@
|
||||
#! /bin/bash
|
||||
|
||||
. ./config.sh
|
||||
|
||||
C1=10.2.1.43
|
||||
C2=10.2.1.44
|
||||
C3=10.2.1.45
|
||||
|
||||
start_suite "re-using IP addresses (arp cache updating)"
|
||||
|
||||
weave_on $HOST1 launch
|
||||
|
||||
check() {
|
||||
assert_raises "exec_on $HOST1 c1 $PING $C2"
|
||||
}
|
||||
|
||||
start_container $HOST1 $C1/24 --name=c1
|
||||
|
||||
start_container $HOST1 $C2/24 --name=c2
|
||||
check
|
||||
|
||||
docker_on $HOST1 stop c2
|
||||
start_container $HOST1 $C2/24 --name=c3
|
||||
check
|
||||
|
||||
docker_on $HOST1 stop c3
|
||||
start_container $HOST1 $C3/24 --name=c4
|
||||
weave_on $HOST1 attach $C2/24 c4
|
||||
check
|
||||
|
||||
end_suite
|
||||
@@ -521,31 +521,27 @@ launch() {
|
||||
}
|
||||
|
||||
attach() {
|
||||
if netnsenter ip link show $CONTAINER_IFNAME >/dev/null 2>&1 ; then
|
||||
for ADDR in "$@" ; do
|
||||
# container already has the expected network interface, so assume we set it up already;
|
||||
# just add the IP address.
|
||||
if netnsenter ip addr show dev $CONTAINER_IFNAME | grep -F $ADDR >/dev/null ; then
|
||||
# address was there already
|
||||
continue
|
||||
fi
|
||||
netnsenter ip addr add $ADDR dev $CONTAINER_IFNAME || return 1
|
||||
done
|
||||
|
||||
return 0
|
||||
if ! netnsenter ip link show $CONTAINER_IFNAME >/dev/null 2>&1 ; then
|
||||
connect_container_to_bridge || return 1
|
||||
fi
|
||||
|
||||
connect_container_to_bridge || return 1
|
||||
|
||||
NEW_ADDRS=
|
||||
for ADDR in "$@" ; do
|
||||
if netnsenter ip addr show dev $CONTAINER_IFNAME | grep -F $ADDR >/dev/null ; then
|
||||
# address was there already
|
||||
continue
|
||||
fi
|
||||
netnsenter ip addr add $ADDR dev $CONTAINER_IFNAME || return 1
|
||||
NEW_ADDRS="$NEW_ADDRS $ADDR"
|
||||
done
|
||||
|
||||
netnsenter ip link set $CONTAINER_IFNAME up || return 1
|
||||
|
||||
for ADDR in "$@" ; do
|
||||
arp_update $CONTAINER_IFNAME $ADDR "netnsenter"
|
||||
done
|
||||
if [ -n "$NEW_ADDRS" ] ; then
|
||||
for ADDR in "$NEW_ADDRS" ; do
|
||||
arp_update $CONTAINER_IFNAME $ADDR "netnsenter"
|
||||
done
|
||||
fi
|
||||
|
||||
# Route multicast packets across the weave network.
|
||||
# This must come last in 'attach'. If you change this, change weavewait to match.
|
||||
|
||||
Reference in new issue
Block a user