From 8229c0617c84565c9fbc57df82829503a6634226 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Wed, 5 Nov 2014 12:33:05 +0000 Subject: [PATCH 1/6] Fix small error in curl arguments --- weave | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/weave b/weave index f0d8e2fa..6ce0db35 100755 --- a/weave +++ b/weave @@ -280,7 +280,7 @@ http_call() { fi port="$3" url="$4" - shift 3 + shift 4 if command_exists curl ; then curl -s -X $http_verb "$@" http://$DOCKERIP:$port$url else From 7b302f5ef02518b0a51398b6fccacf9653bd9719 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Wed, 5 Nov 2014 12:33:17 +0000 Subject: [PATCH 2/6] Add tail -1 to work round Docker logging to wrong place --- weave | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/weave b/weave index 6ce0db35..08371fc9 100755 --- a/weave +++ b/weave @@ -359,7 +359,7 @@ case "$COMMAND" in shift 1 check_not_running $DNS_CONTAINER_NAME $DNS_IMAGE create_bridge - CONTAINER=$(docker run -d --name=$DNS_CONTAINER_NAME -v /var/run/docker.sock:/var/run/docker.sock $DNS_IMAGE "$@") + CONTAINER=$(docker run -d --name=$DNS_CONTAINER_NAME -v /var/run/docker.sock:/var/run/docker.sock $DNS_IMAGE "$@" | tail -n 1) with_container_netns $CONTAINER attach $CIDR >/dev/null echo $CONTAINER ;; From d85071ce4f47bf9045aba4d1485e2ee945f6d1ba Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Wed, 5 Nov 2014 12:43:54 +0000 Subject: [PATCH 3/6] Run weavedns with --privilege to work on more locked-down platforms --- weave | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/weave b/weave index 08371fc9..c50a1d6b 100755 --- a/weave +++ b/weave @@ -359,7 +359,7 @@ case "$COMMAND" in shift 1 check_not_running $DNS_CONTAINER_NAME $DNS_IMAGE create_bridge - CONTAINER=$(docker run -d --name=$DNS_CONTAINER_NAME -v /var/run/docker.sock:/var/run/docker.sock $DNS_IMAGE "$@" | tail -n 1) + CONTAINER=$(docker run --privileged -d --name=$DNS_CONTAINER_NAME -v /var/run/docker.sock:/var/run/docker.sock $DNS_IMAGE "$@" | tail -n 1) with_container_netns $CONTAINER attach $CIDR >/dev/null echo $CONTAINER ;; From a0a5921148147fa5cf2d16c8f977c6b2ebfd652d Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Wed, 5 Nov 2014 12:44:39 +0000 Subject: [PATCH 4/6] Check for error return from AddEventListener --- nameserver/updater.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nameserver/updater.go b/nameserver/updater.go index 9d73090b..f528b193 100644 --- a/nameserver/updater.go +++ b/nameserver/updater.go @@ -11,7 +11,10 @@ func StartUpdater(apiPath string, zone Zone) error { } events := make(chan *docker.APIEvents) - client.AddEventListener(events) + err = client.AddEventListener(events) + if err != nil { + Error.Fatalf("Unable to connect to Docker API on %s: %s", apiPath, err) + } Info.Printf("Using Docker API on %s", apiPath) From 5d8045f5eee26b326d19db26ecb777380e0e6056 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Wed, 5 Nov 2014 16:57:24 +0000 Subject: [PATCH 5/6] Factor out error check --- nameserver/updater.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/nameserver/updater.go b/nameserver/updater.go index f528b193..a07c2c75 100644 --- a/nameserver/updater.go +++ b/nameserver/updater.go @@ -4,17 +4,19 @@ import ( "github.com/fsouza/go-dockerclient" ) -func StartUpdater(apiPath string, zone Zone) error { - client, err := docker.NewClient(apiPath) +func checkError(err error, apiPath string) { if err != nil { Error.Fatalf("Unable to connect to Docker API on %s: %s", apiPath, err) } +} + +func StartUpdater(apiPath string, zone Zone) error { + client, err := docker.NewClient(apiPath) + checkError(err, apiPath) events := make(chan *docker.APIEvents) err = client.AddEventListener(events) - if err != nil { - Error.Fatalf("Unable to connect to Docker API on %s: %s", apiPath, err) - } + checkError(err, apiPath) Info.Printf("Using Docker API on %s", apiPath) From 91b6719924d398deb2f0856242a0e092308b4b27 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Wed, 5 Nov 2014 16:57:59 +0000 Subject: [PATCH 6/6] Fetch docker version, to check things are working --- nameserver/updater.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nameserver/updater.go b/nameserver/updater.go index a07c2c75..d94d52b3 100644 --- a/nameserver/updater.go +++ b/nameserver/updater.go @@ -14,11 +14,14 @@ func StartUpdater(apiPath string, zone Zone) error { client, err := docker.NewClient(apiPath) checkError(err, apiPath) + env, err := client.Version() + checkError(err, apiPath) + events := make(chan *docker.APIEvents) err = client.AddEventListener(events) checkError(err, apiPath) - Info.Printf("Using Docker API on %s", apiPath) + Info.Printf("Using Docker API on %s: %v", apiPath, env) go func() { for event := range events {