diff --git a/proxy/proxy.go b/proxy/proxy.go index 6bce75f2..a87fc90c 100644 --- a/proxy/proxy.go +++ b/proxy/proxy.go @@ -70,7 +70,7 @@ func isCreateContainer(r *http.Request) bool { } func isStartContainer(r *http.Request) bool { - ok, err := regexp.MatchString("^/v[0-9\\.]*/containers/[^/]*/start$", r.URL.Path) + ok, err := regexp.MatchString("^/v[0-9\\.]*/containers/[^/]*/(re)?start$", r.URL.Path) return err == nil && ok } diff --git a/test/640_proxy_restart_reattaches_test.sh b/test/640_proxy_restart_reattaches_test.sh new file mode 100755 index 00000000..01017764 --- /dev/null +++ b/test/640_proxy_restart_reattaches_test.sh @@ -0,0 +1,20 @@ +#! /bin/bash + +. ./config.sh + +C1=10.2.0.78 +C2=10.2.0.34 +NAME=seetwo.weave.local + +start_suite "Proxy restart reattaches networking to containers" + +weave_on $HOST1 launch-dns 10.2.254.1/24 +weave_on $HOST1 launch-proxy --with-dns +docker_proxy_on $HOST1 run -e WEAVE_CIDR=$C2/24 -dt --name=c2 -h $NAME gliderlabs/alpine /bin/sh +docker_proxy_on $HOST1 run -e WEAVE_CIDR=$C1/24 -dt --name=c1 aanand/docker-dnsutils /bin/sh + +docker_proxy_on $HOST1 restart c2 +assert_raises "exec_on $HOST1 c2 ip link show ethwe | grep 'state UP'" +assert_dns_record $HOST1 c1 $NAME $C2 + +end_suite