etcdserver: try to listen on ports before initializing etcd server
parent
dbdeceda7b
commit
dd09042632
|
@ -20,6 +20,7 @@ import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -172,6 +173,41 @@ func startEtcd() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err.Error())
|
log.Fatal(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lpurls, err := flags.URLsFromFlags(fs, "listen-peer-urls", "peer-bind-addr", peerTLSInfo)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
plns := make([]net.Listener, 0)
|
||||||
|
for _, u := range lpurls {
|
||||||
|
l, err := transport.NewListener(u.Host, peerTLSInfo)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
urlStr := u.String()
|
||||||
|
log.Print("etcd: listening for peers on ", urlStr)
|
||||||
|
plns = append(plns, l)
|
||||||
|
}
|
||||||
|
|
||||||
|
lcurls, err := flags.URLsFromFlags(fs, "listen-client-urls", "bind-addr", clientTLSInfo)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
clns := make([]net.Listener, 0)
|
||||||
|
for _, u := range lcurls {
|
||||||
|
l, err := transport.NewListener(u.Host, clientTLSInfo)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
urlStr := u.String()
|
||||||
|
log.Print("etcd: listening for client requests on ", urlStr)
|
||||||
|
clns = append(clns, l)
|
||||||
|
}
|
||||||
|
|
||||||
cfg := &etcdserver.ServerConfig{
|
cfg := &etcdserver.ServerConfig{
|
||||||
Name: *name,
|
Name: *name,
|
||||||
ClientURLs: acurls,
|
ClientURLs: acurls,
|
||||||
|
@ -190,43 +226,17 @@ func startEtcd() {
|
||||||
Info: corsInfo,
|
Info: corsInfo,
|
||||||
}
|
}
|
||||||
ph := etcdhttp.NewPeerHandler(s)
|
ph := etcdhttp.NewPeerHandler(s)
|
||||||
|
|
||||||
lpurls, err := flags.URLsFromFlags(fs, "listen-peer-urls", "peer-bind-addr", peerTLSInfo)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, u := range lpurls {
|
|
||||||
l, err := transport.NewListener(u.Host, peerTLSInfo)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Start the peer server in a goroutine
|
// Start the peer server in a goroutine
|
||||||
urlStr := u.String()
|
for _, l := range plns {
|
||||||
go func() {
|
go func(l net.Listener) {
|
||||||
log.Print("etcd: listening for peers on ", urlStr)
|
|
||||||
log.Fatal(http.Serve(l, ph))
|
log.Fatal(http.Serve(l, ph))
|
||||||
}()
|
}(l)
|
||||||
}
|
}
|
||||||
|
|
||||||
lcurls, err := flags.URLsFromFlags(fs, "listen-client-urls", "bind-addr", clientTLSInfo)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
// Start a client server goroutine for each listen address
|
// Start a client server goroutine for each listen address
|
||||||
for _, u := range lcurls {
|
for _, l := range clns {
|
||||||
l, err := transport.NewListener(u.Host, clientTLSInfo)
|
go func(l net.Listener) {
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
urlStr := u.String()
|
|
||||||
go func() {
|
|
||||||
log.Print("etcd: listening for client requests on ", urlStr)
|
|
||||||
log.Fatal(http.Serve(l, ch))
|
log.Fatal(http.Serve(l, ch))
|
||||||
}()
|
}(l)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue