make weave attach|expose|detach|hide show IP addresses

The output contains one IP address for each addr (i.e. [ip:]<cidr> |
net:<cidr> | net:default) supplied on the command line; or, if none
was specified, a single address from the default IPAM subnet.

We don't want `weave run` to output the addresses, since it is meant
to (only) output the container id. Hence we redirect the `attach`
output to stderr in that case.

Closes #954.
This commit is contained in:
Matthias Radestock committed 2015-06-22 11:26:33 +01:00
1 parent 5fbda6b094
commit 257774a093
1 file changed
+13 -1
+13 -1
View File
@@ -143,7 +143,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 --or-die $CONTAINER
exec_remote attach $CIDR_ARGS --or-die $CONTAINER >/dev/null
echo $CONTAINER
exit 0
elif [ "$1" != "--local" ] ; then
@@ -850,6 +850,14 @@ ipam_cidrs_or_die() {
fi
}
show_addrs() {
addrs=
for cidr in "$@" ; do
addrs="$addrs ${cidr%/*}"
done
echo $addrs
}
######################################################################
# weave proxy helpers
######################################################################
@@ -1170,6 +1178,7 @@ case "$COMMAND" in
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
show_addrs $ALL_CIDRS
;;
detach)
collect_cidr_args "$@"
@@ -1182,6 +1191,7 @@ case "$COMMAND" in
for CIDR in $IPAM_CIDRS ; do
call_weave DELETE /ip/$CONTAINER/${CIDR%/*}
done
show_addrs $ALL_CIDRS
;;
dns-add)
collect_ip_args "$@"
@@ -1229,6 +1239,7 @@ case "$COMMAND" in
fi
fi
done
show_addrs $ALL_CIDRS
;;
hide)
collect_cidr_args "$@"
@@ -1246,6 +1257,7 @@ case "$COMMAND" in
for CIDR in $IPAM_CIDRS ; do
call_weave DELETE /ip/weave:expose/${CIDR%/*}
done
show_addrs $ALL_CIDRS
;;
stop)
[ $# -eq 0 ] || usage