Skip to content
This repository has been archived by the owner on Jun 20, 2024. It is now read-only.

Commit

Permalink
Add test case for restoring iptables rules after weaver restart
Browse files Browse the repository at this point in the history
  • Loading branch information
brb committed Jan 6, 2018
1 parent 921ffef commit 1d67e2f
Showing 1 changed file with 24 additions and 8 deletions.
32 changes: 24 additions & 8 deletions test/191_create_bridge_2_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,19 @@

. "$(dirname "$0")/config.sh"

C1=10.32.0.1
C2=10.32.0.2
C1=10.32.0.2
C2=10.32.0.3

kill_weaver() {
run_on $HOST1 sudo ip link set weave down
WEAVER_PID=$(container_pid $HOST1 weave)
run_on $HOST1 sudo kill -9 $WEAVER_PID
sleep 3
}

start_suite "Re-create bridge after restart"

# Should create a bridge of the "bridge" type
# Should create a bridge of the "bridge" type.
WEAVE_NO_FASTDP=1 weave_on $HOST1 launch
WEAVE_NO_FASTDP=1 weave_on $HOST2 launch $HOST1

Expand All @@ -23,21 +24,36 @@ assert_raises "exec_on $HOST1 c1 $PING $C2"

kill_weaver # should re-create the bridge

sleep 3

assert_raises "exec_on $HOST1 c1 $PING $C2"

# Should create a bridge of the "bridged_fastdp" type
weave_on $HOST1 reset
weave_on $HOST1 launch $HOST2
weave_on $HOST1 attach $C1/24 c1

assert_raises "exec_on $HOST1 c1 $PING $C2"

kill_weaver # should re-create the bridge

sleep 3

assert_raises "exec_on $HOST1 c1 $PING $C2"

# test restore of iptables

weave_on $HOST1 reset
# `--expect-npc` to trigger creation of WEAVE-NPC iptables chain.
weave_on $HOST1 launch --expect-npc
# To create POSTROUTING rules.
weave_on $HOST1 expose

IPT_BEFORE=$(mktemp)
IPT_AFTER=$(mktemp)
run_on $HOST1 "sudo iptables-save | grep -i weave | grep -v '\[.*:.*\]' > $IPT_BEFORE"

run_on $HOST1 sudo iptables -t filter -D FORWARD -o weave -j WEAVE-NPC
run_on $HOST1 sudo iptables -t nat -D POSTROUTING -j WEAVE
kill_weaver # should re-create the bridge and iptables friends

# Rudimentary check that weave related iptables rules has been restored
run_on $HOST1 "sudo iptables-save | grep -i weave | grep -v '\[.*:.*\]' > $IPT_AFTER"
assert_raises "run_on $HOST1 diff $IPT_BEFORE $IPT_AFTER"

end_suite

0 comments on commit 1d67e2f

Please sign in to comment.