From a027337be2b010da7a6461747926edcc39db7d78 Mon Sep 17 00:00:00 2001 From: David Wragg Date: Fri, 15 May 2015 11:44:50 +0100 Subject: [PATCH] Tidy up IPAM setup --- weaver/main.go | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/weaver/main.go b/weaver/main.go index 85e5e8b8..5ef63a22 100644 --- a/weaver/main.go +++ b/weaver/main.go @@ -129,23 +129,26 @@ func main() { router := weave.NewRouter(config, name, nickName) log.Println("Our name is", router.Ourself) + var allocator *ipam.Allocator - if httpAddr != "" { - if iprangeCIDR != "" { - allocator = createAllocator(router, apiPath, iprangeCIDR, determineQuorum(peerCount, peers)) - } else { - if peerCount > 0 { - log.Fatal("-initpeercount flag specified without -iprange") - } - } - } - if httpAddr == "" || iprangeCIDR == "" { + if iprangeCIDR != "" { + allocator = createAllocator(router, apiPath, iprangeCIDR, determineQuorum(peerCount, peers)) + } else if peerCount > 0 { + log.Fatal("-initpeercount flag specified without -iprange") + } else { router.NewGossip("IPallocation", &ipam.DummyAllocator{}) } router.Start() initiateConnections(router, peers) - go handleHTTP(router, httpAddr, allocator) + + // The weave script always waits for a status call to succeed, + // so there is no point in doing "weave launch -httpaddr ''". + // This is here to support stand-alone use of weaver. + if httpAddr != "" { + go handleHTTP(router, httpAddr, allocator) + } + SignalHandlerLoop(router) }