Introduce ipam_cidrs_or_die, and call it where we don't want the

container to survive an ipam failure.
This commit is contained in:
Bryan Boreham committed 2015-06-16 15:27:49 +01:00
1 parent 32d3909023
commit ee4daf02b5
1 file changed
+17 -6
+17 -6
View File
@@ -142,7 +142,7 @@ if [ "$1" = "run" ] ; then
collect_cidr_args "$@"
shift $CIDR_ARG_COUNT
CONTAINER=$(docker $DOCKER_CLIENT_ARGS run $DNS_ARGS -d "$@")
exec_remote attach $CIDR_ARGS $CONTAINER
exec_remote attach $CIDR_ARGS --or-die $CONTAINER
echo $CONTAINER
exit 0
elif [ "$1" != "--local" ] ; then
@@ -824,6 +824,13 @@ ipam_cidrs() {
done
}
ipam_cidrs_or_die() {
if ! ipam_cidrs "$@" ; then
docker kill $1 >/dev/null 2>&1 || true
exit 1
fi
}
######################################################################
# weave proxy helpers
######################################################################
@@ -1026,7 +1033,7 @@ case "$COMMAND" in
-p $DOCKER_BRIDGE_IP:53:53/udp \
-v /var/run/docker.sock:/var/run/docker.sock \
$WEAVEDNS_DOCKER_ARGS $DNS_IMAGE -iface $CONTAINER_IFNAME -httpiface "$DNS_HTTP_IFNAME" "$@")
ipam_cidrs $DNS_CONTAINER $CIDR_ARGS
ipam_cidrs_or_die $DNS_CONTAINER $CIDR_ARGS
with_container_netns_or_die $DNS_CONTAINER attach $ALL_CIDRS
populate_dns
echo $DNS_CONTAINER
@@ -1103,7 +1110,7 @@ case "$COMMAND" in
shift $CIDR_ARG_COUNT
CONTAINER=$(docker run $DNS_ARGS -d "$@")
create_bridge
ipam_cidrs $CONTAINER $CIDR_ARGS
ipam_cidrs_or_die $CONTAINER $CIDR_ARGS
with_container_netns_or_die $CONTAINER attach $ALL_CIDRS
when_dns_running with_container_fqdn $CONTAINER put_dns_fqdn $ALL_CIDRS
echo $CONTAINER
@@ -1123,7 +1130,7 @@ case "$COMMAND" in
RES=$(docker start $1)
CONTAINER=$(container_id $1)
create_bridge
ipam_cidrs $CONTAINER $CIDR_ARGS
ipam_cidrs_or_die $CONTAINER $CIDR_ARGS
with_container_netns_or_die $CONTAINER attach $ALL_CIDRS
when_dns_running with_container_fqdn $CONTAINER put_dns_fqdn $ALL_CIDRS
echo $RES
@@ -1131,11 +1138,15 @@ case "$COMMAND" in
attach)
collect_cidr_args "$@"
shift $CIDR_ARG_COUNT
if [ "$1" = "--or-die" ]; then
ATTACH_TYPE="_or_die"
shift
fi
[ $# -eq 1 ] || usage
CONTAINER=$(container_id $1)
create_bridge
ipam_cidrs $CONTAINER $CIDR_ARGS
with_container_netns $CONTAINER attach $ALL_CIDRS >/dev/null
ipam_cidrs$ATTACH_TYPE $CONTAINER $CIDR_ARGS
with_container_netns$ATTACH_TYPE $CONTAINER attach $ALL_CIDRS >/dev/null
when_dns_running with_container_fqdn $CONTAINER put_dns_fqdn $ALL_CIDRS
;;
detach)