From 159da1b5e510edd528cbf2396742cee3a0e27887 Mon Sep 17 00:00:00 2001 From: Philip O'Toole Date: Wed, 1 Mar 2017 23:18:20 -0800 Subject: [PATCH] Check if join allowed before determining addresses --- cmd/rqlited/main.go | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/cmd/rqlited/main.go b/cmd/rqlited/main.go index 23494b98..fc8f8205 100644 --- a/cmd/rqlited/main.go +++ b/cmd/rqlited/main.go @@ -193,10 +193,20 @@ func main() { log.Fatalf("failed to parse Raft open timeout %s: %s", raftOpenTimeout, err.Error()) } - // Determine join addresses. - joins, err := determineJoinAddresses() + // Determine join addresses, if necessary. + ja, err := store.JoinAllowed(dataPath) if err != nil { - log.Fatalf("unable to determine join addresses: %s", err.Error()) + log.Fatalf("unable to determine if join permitted: %s", err.Error()) + } + + var joins []string + if ja { + joins, err = determineJoinAddresses() + if err != nil { + log.Fatalf("unable to determine join addresses: %s", err.Error()) + } + } else { + log.Println("node is already member of cluster, skipping determining join addresses") } // Now, open it. @@ -214,19 +224,16 @@ func main() { // Execute any requested join operation. if len(joins) > 0 { log.Println("join addresses are:", joins) - if str.JoinRequired() { - advAddr := raftAddr - if raftAdv != "" { - advAddr = raftAdv - } - if j, err := cluster.Join(joins, advAddr, noVerify); err != nil { - log.Fatalf("failed to join cluster at %s: %s", joins, err.Error()) - } else { - log.Println("successfully joined cluster at", j) - } + advAddr := raftAddr + if raftAdv != "" { + advAddr = raftAdv + } + if j, err := cluster.Join(joins, advAddr, noVerify); err != nil { + log.Fatalf("failed to join cluster at %s: %s", joins, err.Error()) } else { - log.Println("node is already member of cluster, ignoring any join requests") + log.Println("successfully joined cluster at", j) } + } else { log.Println("no join addresses available") }