Warn user if weave network is in use on stop or reset

This commit is contained in:
Bryan Boreham committed 2015-12-17 10:05:36 +00:00
1 parent 357f67255e
commit ecf4a82b99
2 files changed
+23 -4

No files matched your search

+15 -4
View File
@@ -29,6 +29,7 @@ func main() {
logLevel string
meshNetworkName string
noMulticastRoute bool
removeNetwork bool
)
flag.BoolVar(&justVersion, "version", false, "print version and exit")
@@ -38,6 +39,7 @@ func main() {
flag.StringVar(&meshAddress, "meshsocket", "/run/docker/plugins/weavemesh.sock", "socket on which to listen in mesh mode")
flag.StringVar(&meshNetworkName, "mesh-network-name", "weave", "network name to create in mesh mode")
flag.BoolVar(&noMulticastRoute, "no-multicast-route", false, "do not add a multicast route to network endpoints")
flag.BoolVar(&removeNetwork, "remove-network", false, "remove mesh network and exit")
flag.Parse()
@@ -48,16 +50,25 @@ func main() {
SetLogLevel(logLevel)
Log.Println("Weave plugin", version, "Command line options:", os.Args[1:])
// API 1.21 is the first version that supports docker network commands
dockerClient, err := docker.NewVersionedClientFromEnv("1.21")
if err != nil {
Log.Fatalf("unable to connect to docker: %s", err)
} else {
Log.Info(dockerClient.Info())
}
if removeNetwork {
if _, err = dockerClient.Client.NetworkInfo(meshNetworkName); err == nil {
err = dockerClient.Client.RemoveNetwork(meshNetworkName)
if err != nil {
Log.Fatalf("unable to remove network: %s", err)
}
}
os.Exit(0)
}
Log.Println("Weave plugin", version, "Command line options:", os.Args[1:])
Log.Info(dockerClient.Info())
var globalListener, meshListener net.Listener
endChan := make(chan error, 1)
if address != "" {
+8
View File
@@ -1712,7 +1712,14 @@ launch_plugin() {
$PLUGIN_IMAGE "$@")
}
remove_plugin_network() {
docker run --rm --net=host \
-v /var/run/docker.sock:/var/run/docker.sock \
$PLUGIN_IMAGE --remove-network
}
stop_plugin() {
remove_plugin_network
stop $PLUGIN_CONTAINER_NAME "Plugin"
}
@@ -2146,6 +2153,7 @@ EOF
;;
reset)
[ $# -eq 0 ] || usage
remove_plugin_network || echo "WARNING: docker may hang in this state; re-launch weave and remove attached containers before shutting down" >&2
warn_if_stopping_proxy_in_env
call_weave DELETE /peer >/dev/null 2>&1 || true
for NAME in $PLUGIN_CONTAINER_NAME $CONTAINER_NAME $PROXY_CONTAINER_NAME ; do