initial listner

This commit is contained in:
Todd Gruben 2021-01-18 10:34:18 -06:00
parent d6d51705fa
commit de7d69234e
3 changed files with 38 additions and 10 deletions

View file

@ -19,6 +19,7 @@ import (
"context"
"fmt"
"log"
"net"
"path"
"strings"
"time"
@ -45,6 +46,9 @@ type Options struct {
ClusterURL string `toml:"cluster-url"`
ClusterName string `toml:"cluster-name"`
HeartbeatTTL int64 `toml:"heartbeat-ttl"`
LPeerSocket []*net.TCPListener
LClientSocket []*net.TCPListener
}
var (
@ -124,6 +128,19 @@ func parseOptions(opt Options) *embed.Config {
cfg.LPUrls = types.MustNewURLs([]string{opt.LPeerURL})
cfg.APUrls = types.MustNewURLs([]string{opt.APeerURL})
lps := make([]*net.TCPListener, len(opt.LPeerSocket))
copy(lps, opt.LPeerSocket)
cfg.LPeerSocket = lps
lcs := make([]*net.TCPListener, len(opt.LPeerSocket))
copy(lcs, opt.LClientSocket)
cfg.LClientSocket = lcs
cfg.Logger = "zap"
cfg.ZapLoggerBuilder = func(*embed.Config) error {
return nil
}
if opt.InitCluster != "" {
cfg.InitialCluster = opt.InitCluster
cfg.ClusterState = embed.ClusterStateFlagNew

View file

@ -604,6 +604,10 @@ func (m *Command) Close() error {
}
}
// prevent the closed sockets from being re-injected into etcd.
m.Config.DisCo.LPeerSocket = nil
m.Config.DisCo.LClientSocket = nil
err := eg.Wait()
_ = testhook.Closed(pilosa.NewAuditor(), m, nil)
return errors.Wrap(err, "closing everything")

View file

@ -17,6 +17,7 @@ package test
import (
"fmt"
"io/ioutil"
"net"
"strings"
"time"
@ -39,8 +40,12 @@ func GenPortsConfig(ports []Ports) []*server.Config {
name := fmt.Sprintf("server%d", i)
var lClientURL, lPeerURL string
lClientURL = fmt.Sprintf("http://localhost:%d", ports[i].Client)
lPeerURL = fmt.Sprintf("http://localhost:%d", ports[i].Peer)
name := fmt.Sprintf("server%d", i)
lsnC, portC := port.MustGetBoundTCPListener()
lClientURL := fmt.Sprintf("http://localhost:%d", portC)
lsnP, portP := port.MustGetBoundTCPListener()
lPeerURL := fmt.Sprintf("http://localhost:%d", portP)
discoDir := ""
if d, err := ioutil.TempDir("/tmp", "disco."); err == nil {
discoDir = d
@ -52,14 +57,16 @@ func GenPortsConfig(ports []Ports) []*server.Config {
},
BindGRPC: port.ColonZeroString(ports[i].Grpc),
DisCo: etcd.Options{
Name: name,
Dir: discoDir,
ClusterName: "bartholemuuuuu",
LClientURL: lClientURL,
AClientURL: lClientURL,
LPeerURL: lPeerURL,
APeerURL: lPeerURL,
HeartbeatTTL: 5 * int64(time.Second),
Name: name,
Dir: discoDir,
ClusterName: "bartholemuuuuu",
LClientURL: lClientURL,
AClientURL: lClientURL,
LPeerURL: lPeerURL,
APeerURL: lPeerURL,
HeartbeatTTL: 5 * int64(time.Second),
LPeerSocket: []*net.TCPListener{lsnP},
LClientSocket: []*net.TCPListener{lsnC},
},
}