Factor out CIDR arg parsing
This commit is contained in:
1 parent
c1089e8447
commit
772e298340
1 file changed
+27
-29
@@ -138,6 +138,16 @@ validate_cidr() {
|
||||
fi
|
||||
}
|
||||
|
||||
collect_cidr_args() {
|
||||
CIDR_ARGS=""
|
||||
CIDR_COUNT=0
|
||||
while is_cidr "$1"; do
|
||||
CIDR_ARGS="$CIDR_ARGS $1"
|
||||
CIDR_COUNT=$(($CIDR_COUNT + 1))
|
||||
shift 1
|
||||
done
|
||||
}
|
||||
|
||||
run_iptables() {
|
||||
# -w is recent addition to iptables
|
||||
if [ -z "$CHECKED_IPTABLES_W" ] ; then
|
||||
@@ -660,18 +670,15 @@ case "$COMMAND" in
|
||||
DNS_ARGS=$(exec_remote dns-args "$@")
|
||||
[ "$1" = "--with-dns" ] && shift 1
|
||||
fi
|
||||
CIDRS=""
|
||||
while is_cidr "$1"; do
|
||||
CIDRS="$CIDRS $1"
|
||||
shift 1
|
||||
done
|
||||
collect_cidr_args "$@"
|
||||
shift $CIDR_COUNT
|
||||
CONTAINER=$(docker run $DNS_ARGS -d "$@")
|
||||
if [ "$LOCAL" = "--local" ]; then
|
||||
create_bridge
|
||||
with_container_netns $CONTAINER attach $CIDRS >/dev/null
|
||||
tell_dns PUT $CONTAINER_ID $CIDRS
|
||||
with_container_netns $CONTAINER attach $CIDR_ARGS >/dev/null
|
||||
tell_dns PUT $CONTAINER_ID $CIDR_ARGS
|
||||
else
|
||||
exec_remote attach $CIDRS $CONTAINER
|
||||
exec_remote attach $CIDR_ARGS $CONTAINER
|
||||
fi
|
||||
echo $CONTAINER
|
||||
;;
|
||||
@@ -681,40 +688,31 @@ case "$COMMAND" in
|
||||
;;
|
||||
start)
|
||||
[ $# -gt 1 ] || usage
|
||||
CIDRS=""
|
||||
while is_cidr "$1"; do
|
||||
CIDRS="$CIDRS $1"
|
||||
shift 1
|
||||
done
|
||||
collect_cidr_args "$@"
|
||||
shift $CIDR_COUNT
|
||||
CONTAINER_ID="$1"
|
||||
create_bridge
|
||||
CONTAINER=$(docker start $CONTAINER_ID)
|
||||
with_container_netns $CONTAINER_ID attach $CIDRS >/dev/null
|
||||
tell_dns PUT $CONTAINER_ID $CIDRS
|
||||
with_container_netns $CONTAINER_ID attach $CIDR_ARGS >/dev/null
|
||||
tell_dns PUT $CONTAINER_ID $CIDR_ARGS
|
||||
echo $CONTAINER
|
||||
;;
|
||||
attach)
|
||||
[ $# -gt 1 ] || usage
|
||||
CIDRS=""
|
||||
while is_cidr "$1"; do
|
||||
CIDRS="$CIDRS $1"
|
||||
shift 1
|
||||
done
|
||||
collect_cidr_args "$@"
|
||||
shift $CIDR_COUNT
|
||||
CONTAINER_ID="$1"
|
||||
create_bridge
|
||||
with_container_netns $CONTAINER_ID attach $CIDRS >/dev/null
|
||||
tell_dns PUT $CONTAINER_ID $CIDRS
|
||||
with_container_netns $CONTAINER_ID attach $CIDR_ARGS >/dev/null
|
||||
tell_dns PUT $CONTAINER_ID $CIDR_ARGS
|
||||
;;
|
||||
detach)
|
||||
[ $# -gt 1 ] || usage
|
||||
CIDRS=""
|
||||
while is_cidr "$1"; do
|
||||
CIDRS="$CIDRS $1"
|
||||
shift 1
|
||||
done
|
||||
collect_cidr_args "$@"
|
||||
shift $CIDR_COUNT
|
||||
CONTAINER_ID="$1"
|
||||
with_container_netns $CONTAINER_ID detach $CIDRS >/dev/null
|
||||
tell_dns DELETE $CONTAINER_ID $CIDRS
|
||||
with_container_netns $CONTAINER_ID detach $CIDR_ARGS >/dev/null
|
||||
tell_dns DELETE $CONTAINER_ID $CIDR_ARGS
|
||||
;;
|
||||
expose)
|
||||
[ $# -eq 1 ] || usage
|
||||
|
||||
Reference in new issue
Block a user