From 73e0a6bb0acb74e0c63fbfade0be5b40aca989d9 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Tue, 15 Dec 2015 15:35:20 +0000 Subject: [PATCH 1/3] Inform user about weave containers in state 'restarting' --- weave | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/weave b/weave index 92177ed0..b9ea347c 100755 --- a/weave +++ b/weave @@ -906,29 +906,37 @@ container_weave_addrs() { # functions for interacting with containers ###################################################################### -# Check that a container named $1 with image $2 is not running +# Check that a container for component $1 named $2 with image $3 is not running check_not_running() { - case $(docker inspect --format='{{.State.Running}} {{.Config.Image}}' $1 2>/dev/null) in - "true $2") - echo "$1 is already running." >&2 + case $(docker inspect --format='{{.State.Running}} {{.State.Status}} {{.Config.Image}}' $2 2>/dev/null) in + "true restarting $3") + echo "$2 is restarting; you can stop it with 'weave stop-$1'." >&2 exit 1 ;; - "true $2:"*) - echo "$1 is already running." >&2 + "true restarting $3:"*) + echo "$2 is restarting; you can stop it with 'weave stop-$1'." >&2 exit 1 ;; - "false $2") - docker rm $1 >/dev/null + "true "*" $3") + echo "$2 is already running." >&2 + exit 1 ;; - "false $2:"*) - docker rm $1 >/dev/null + "true "*" $3:"*) + echo "$2 is already running." >&2 + exit 1 + ;; + "false "*" $3") + docker rm $2 >/dev/null + ;; + "false "*" $3:"*) + docker rm $2 >/dev/null ;; true*) - echo "Found another running container named '$1'. Aborting." >&2 + echo "Found another running container named '$2'. Aborting." >&2 exit 1 ;; false*) - echo "Found another container named '$1'. Aborting." >&2 + echo "Found another container named '$2'. Aborting." >&2 exit 1 ;; esac @@ -1843,9 +1851,9 @@ EOF ;; launch) deprecation_warnings "$@" - check_not_running $CONTAINER_NAME $BASE_IMAGE - check_not_running $PROXY_CONTAINER_NAME $BASE_EXEC_IMAGE - check_not_running $PLUGIN_CONTAINER_NAME $BASE_PLUGIN_IMAGE + check_not_running router $CONTAINER_NAME $BASE_IMAGE + check_not_running proxy $PROXY_CONTAINER_NAME $BASE_EXEC_IMAGE + check_not_running plugin $PLUGIN_CONTAINER_NAME $BASE_PLUGIN_IMAGE COMMON_ARGS=$(common_launch_args "$@") launch_router "$@" launch_proxy $COMMON_ARGS @@ -1853,7 +1861,7 @@ EOF ;; launch-router) deprecation_warnings "$@" - check_not_running $CONTAINER_NAME $BASE_IMAGE + check_not_running router $CONTAINER_NAME $BASE_IMAGE launch_router "$@" echo $ROUTER_CONTAINER ;; @@ -1867,12 +1875,12 @@ EOF ;; launch-proxy) deprecation_warnings "$@" - check_not_running $PROXY_CONTAINER_NAME $BASE_EXEC_IMAGE + check_not_running proxy $PROXY_CONTAINER_NAME $BASE_EXEC_IMAGE launch_proxy "$@" echo $PROXY_CONTAINER ;; launch-plugin) - check_not_running $PLUGIN_CONTAINER_NAME $BASE_PLUGIN_IMAGE + check_not_running plugin $PLUGIN_CONTAINER_NAME $BASE_PLUGIN_IMAGE launch_plugin "$@" echo $PLUGIN_CONTAINER ;; From 0c2aa494ae6848fc9c2f7336a78d8bd9a354dd1e Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Tue, 22 Dec 2015 11:48:09 +0000 Subject: [PATCH 2/3] Reduce duplication --- weave | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/weave b/weave index b9ea347c..90a78011 100755 --- a/weave +++ b/weave @@ -908,29 +908,19 @@ container_weave_addrs() { # Check that a container for component $1 named $2 with image $3 is not running check_not_running() { - case $(docker inspect --format='{{.State.Running}} {{.State.Status}} {{.Config.Image}}' $2 2>/dev/null) in + RUN_STATUS=$(docker inspect --format='{{.State.Running}} {{.State.Status}} {{.Config.Image}}' $2 2>/dev/null) || true + case ${RUN_STATUS%:*} in "true restarting $3") echo "$2 is restarting; you can stop it with 'weave stop-$1'." >&2 exit 1 ;; - "true restarting $3:"*) - echo "$2 is restarting; you can stop it with 'weave stop-$1'." >&2 - exit 1 - ;; "true "*" $3") echo "$2 is already running." >&2 exit 1 ;; - "true "*" $3:"*) - echo "$2 is already running." >&2 - exit 1 - ;; "false "*" $3") docker rm $2 >/dev/null ;; - "false "*" $3:"*) - docker rm $2 >/dev/null - ;; true*) echo "Found another running container named '$2'. Aborting." >&2 exit 1 From c19edec36460a6c7d65b860819ab37830c934f57 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Tue, 22 Dec 2015 13:04:06 +0000 Subject: [PATCH 3/3] Add 'weave stop-xxx' instructions for 'already running' case --- weave | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/weave b/weave index 90a78011..b5051125 100755 --- a/weave +++ b/weave @@ -915,7 +915,7 @@ check_not_running() { exit 1 ;; "true "*" $3") - echo "$2 is already running." >&2 + echo "$2 is already running; you can stop it with 'weave stop-$1'." >&2 exit 1 ;; "false "*" $3")