mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-10-07 11:27:50 +00:00
more host string to uri changes
This commit is contained in:
parent
1bedfd6585
commit
a95b09d30d
15 changed files with 65 additions and 17 deletions
|
|
@ -56,6 +56,7 @@ func TestClient_MultiNode(t *testing.T) {
|
|||
s[0].Handler.Executor.ExecuteFn = func(ctx context.Context, index string, query *pql.Query, slices []uint64, opt *pilosa.ExecOptions) ([]interface{}, error) {
|
||||
e := pilosa.NewExecutor()
|
||||
e.Holder = hldr[0].Holder
|
||||
e.Scheme = cluster.Nodes[0].Scheme
|
||||
e.Host = cluster.Nodes[0].Host
|
||||
e.Cluster = cluster
|
||||
return e.Execute(ctx, index, query, slices, opt)
|
||||
|
|
@ -63,6 +64,7 @@ func TestClient_MultiNode(t *testing.T) {
|
|||
s[1].Handler.Executor.ExecuteFn = func(ctx context.Context, index string, query *pql.Query, slices []uint64, opt *pilosa.ExecOptions) ([]interface{}, error) {
|
||||
e := pilosa.NewExecutor()
|
||||
e.Holder = hldr[1].Holder
|
||||
e.Scheme = cluster.Nodes[1].Scheme
|
||||
e.Host = cluster.Nodes[1].Host
|
||||
e.Cluster = cluster
|
||||
return e.Execute(ctx, index, query, slices, opt)
|
||||
|
|
@ -70,6 +72,7 @@ func TestClient_MultiNode(t *testing.T) {
|
|||
s[2].Handler.Executor.ExecuteFn = func(ctx context.Context, index string, query *pql.Query, slices []uint64, opt *pilosa.ExecOptions) ([]interface{}, error) {
|
||||
e := pilosa.NewExecutor()
|
||||
e.Holder = hldr[2].Holder
|
||||
e.Scheme = cluster.Nodes[2].Scheme
|
||||
e.Host = cluster.Nodes[2].Host
|
||||
e.Cluster = cluster
|
||||
return e.Execute(ctx, index, query, slices, opt)
|
||||
|
|
|
|||
10
cluster.go
10
cluster.go
|
|
@ -57,6 +57,16 @@ func (n *Node) SetState(s string) {
|
|||
n.status.State = s
|
||||
}
|
||||
|
||||
// URI returns the pilosa.URI corresponding to this node
|
||||
func (n *Node) URI() (*URI, error) {
|
||||
uri, err := NewURIFromAddress(n.Host)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
uri.SetScheme(n.Scheme)
|
||||
return uri, nil
|
||||
}
|
||||
|
||||
// Nodes represents a list of nodes.
|
||||
type Nodes []*Node
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,11 @@ func TestBackupCommand_Run(t *testing.T) {
|
|||
|
||||
s := test.NewServer()
|
||||
defer s.Close()
|
||||
s.Handler.Host = s.Host()
|
||||
uri, err := pilosa.NewURIFromAddress(s.Host())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
s.Handler.Host = uri
|
||||
s.Handler.Cluster = test.NewCluster(1)
|
||||
s.Handler.Cluster.Nodes[0].Host = s.Host()
|
||||
s.Handler.Holder = hldr.Holder
|
||||
|
|
|
|||
|
|
@ -59,7 +59,11 @@ func TestExportCommand_Run(t *testing.T) {
|
|||
defer hldr.Close()
|
||||
s := test.NewServer()
|
||||
defer s.Close()
|
||||
s.Handler.Host = s.Host()
|
||||
uri, err := pilosa.NewURIFromAddress(s.Host())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
s.Handler.Host = uri
|
||||
s.Handler.Cluster = test.NewCluster(1)
|
||||
s.Handler.Cluster.Nodes[0].Host = s.Host()
|
||||
s.Handler.Holder = hldr.Holder
|
||||
|
|
@ -71,7 +75,7 @@ func TestExportCommand_Run(t *testing.T) {
|
|||
cm.Index = "i"
|
||||
cm.Frame = "f"
|
||||
cm.View = pilosa.ViewStandard
|
||||
err := cm.Run(context.Background())
|
||||
err = cm.Run(context.Background())
|
||||
if err != nil {
|
||||
t.Fatalf("Export Run doesn't work: %s", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,11 @@ func TestImportCommand_Run(t *testing.T) {
|
|||
defer hldr.Close()
|
||||
s := test.NewServer()
|
||||
defer s.Close()
|
||||
s.Handler.Host = s.Host()
|
||||
uri, err := pilosa.NewURIFromAddress(s.Host())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
s.Handler.Host = uri
|
||||
s.Handler.Cluster = test.NewCluster(1)
|
||||
s.Handler.Cluster.Nodes[0].Host = s.Host()
|
||||
s.Handler.Holder = hldr.Holder
|
||||
|
|
@ -101,7 +105,11 @@ func TestImportCommand_RunValue(t *testing.T) {
|
|||
defer hldr.Close()
|
||||
s := test.NewServer()
|
||||
defer s.Close()
|
||||
s.Handler.Host = s.Host()
|
||||
uri, err := pilosa.NewURIFromAddress(s.Host())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
s.Handler.Host = uri
|
||||
s.Handler.Cluster = test.NewCluster(1)
|
||||
s.Handler.Cluster.Nodes[0].Host = s.Host()
|
||||
s.Handler.Holder = hldr.Holder
|
||||
|
|
|
|||
|
|
@ -48,7 +48,11 @@ func TestRestoreCommand_Run(t *testing.T) {
|
|||
|
||||
s := test.NewServer()
|
||||
defer s.Close()
|
||||
s.Handler.Host = s.Host()
|
||||
uri, err := pilosa.NewURIFromAddress(s.Host())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
s.Handler.Host = uri
|
||||
s.Handler.Cluster = test.NewCluster(1)
|
||||
s.Handler.Cluster.Nodes[0].Host = s.Host()
|
||||
s.Handler.Holder = hldr.Holder
|
||||
|
|
|
|||
10
executor.go
10
executor.go
|
|
@ -21,7 +21,6 @@ import (
|
|||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"sort"
|
||||
"time"
|
||||
|
||||
|
|
@ -44,6 +43,7 @@ type Executor struct {
|
|||
Holder *Holder
|
||||
|
||||
// Local hostname & cluster configuration.
|
||||
Scheme string
|
||||
Host string
|
||||
Cluster *Cluster
|
||||
|
||||
|
|
@ -1337,11 +1337,9 @@ func (e *Executor) exec(ctx context.Context, node *Node, index string, q *pql.Qu
|
|||
}
|
||||
|
||||
// Create HTTP request.
|
||||
req, err := http.NewRequest("POST", (&url.URL{
|
||||
Scheme: node.Scheme,
|
||||
Host: node.Host,
|
||||
Path: fmt.Sprintf("/index/%s/query", index),
|
||||
}).String(), bytes.NewReader(buf))
|
||||
u := nodePathToURL(node, fmt.Sprintf("/index/%s/query", index))
|
||||
u.Scheme = e.Scheme
|
||||
req, err := http.NewRequest("POST", (&u).String(), bytes.NewReader(buf))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -832,6 +832,7 @@ func TestExecutor_Execute_Remote_Bitmap(t *testing.T) {
|
|||
// Create secondary server and update second cluster node.
|
||||
s := test.NewServer()
|
||||
defer s.Close()
|
||||
c.Nodes[1].Scheme = "http"
|
||||
c.Nodes[1].Host = s.Host()
|
||||
|
||||
// Mock secondary server's executor to verify arguments and return a bitmap.
|
||||
|
|
|
|||
|
|
@ -1183,7 +1183,7 @@ func TestHandler_Fragment_Nodes(t *testing.T) {
|
|||
h.ServeHTTP(w, r)
|
||||
if w.Code != http.StatusOK {
|
||||
t.Fatalf("unexpected status code: %d", w.Code)
|
||||
} else if w.Body.String() != `[{"host":"host2"},{"host":"host0"}]`+"\n" {
|
||||
} else if w.Body.String() != `[{"scheme":"http","host":"host2"},{"scheme":"http","host":"host0"}]`+"\n" {
|
||||
t.Fatalf("unexpected body: %q", w.Body.String())
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -316,6 +316,7 @@ func TestHolderSyncer_SyncHolder(t *testing.T) {
|
|||
s.Handler.Executor.ExecuteFn = func(ctx context.Context, index string, query *pql.Query, slices []uint64, opt *pilosa.ExecOptions) ([]interface{}, error) {
|
||||
e := pilosa.NewExecutor()
|
||||
e.Holder = hldr1.Holder
|
||||
e.Scheme = cluster.Nodes[1].Scheme
|
||||
e.Host = cluster.Nodes[1].Host
|
||||
e.Cluster = cluster
|
||||
return e.Execute(ctx, index, query, slices, opt)
|
||||
|
|
@ -376,9 +377,13 @@ func TestHolderSyncer_SyncHolder(t *testing.T) {
|
|||
hldr0.Index("y").SetRemoteMaxSlice(3)
|
||||
|
||||
// Set up syncer.
|
||||
uri, err := cluster.Nodes[0].URI()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
syncer := pilosa.HolderSyncer{
|
||||
Holder: hldr0.Holder,
|
||||
Host: cluster.Nodes[0].Host,
|
||||
Host: uri,
|
||||
Cluster: cluster,
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -172,6 +172,7 @@ func (s *Server) Open() error {
|
|||
// Create executor for executing queries.
|
||||
e := NewExecutor()
|
||||
e.Holder = s.Holder
|
||||
e.Scheme = s.Host.Scheme()
|
||||
e.Host = s.Host.HostPort()
|
||||
e.Cluster = s.Cluster
|
||||
e.MaxWritesPerRequest = s.MaxWritesPerRequest
|
||||
|
|
|
|||
|
|
@ -288,8 +288,8 @@ func TestMain_FrameRestore(t *testing.T) {
|
|||
|
||||
// Update cluster config.
|
||||
m0.Server.Cluster.Nodes = []*pilosa.Node{
|
||||
{Host: m0.Server.Host.HostPort()},
|
||||
{Host: m1.Server.Host.HostPort()},
|
||||
{Scheme: "http", Host: m0.Server.Host.HostPort()},
|
||||
{Scheme: "http", Host: m1.Server.Host.HostPort()},
|
||||
}
|
||||
m1.Server.Cluster.Nodes = m0.Server.Cluster.Nodes
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ func NewCluster(n int) *pilosa.Cluster {
|
|||
|
||||
for i := 0; i < n; i++ {
|
||||
c.Nodes = append(c.Nodes, &pilosa.Node{
|
||||
Scheme: "http",
|
||||
Host: fmt.Sprintf("host%d", i),
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ func NewExecutor(holder *pilosa.Holder, cluster *pilosa.Cluster) *Executor {
|
|||
e := &Executor{Executor: pilosa.NewExecutor()}
|
||||
e.Holder = holder
|
||||
e.Cluster = cluster
|
||||
e.Scheme = cluster.Nodes[0].Scheme
|
||||
e.Host = cluster.Nodes[0].Host
|
||||
return e
|
||||
}
|
||||
|
|
|
|||
10
uri.go
10
uri.go
|
|
@ -72,6 +72,10 @@ func (u *URI) Scheme() string {
|
|||
return u.scheme
|
||||
}
|
||||
|
||||
func (u *URI) SetScheme(scheme string) {
|
||||
u.scheme = scheme
|
||||
}
|
||||
|
||||
// Host returns the host of this URI.
|
||||
func (u *URI) Host() string {
|
||||
return u.host
|
||||
|
|
@ -99,7 +103,11 @@ func (u *URI) Normalize() string {
|
|||
|
||||
// HostPort returns the address suitable for passing to `net.Listener.Listen`
|
||||
func (u *URI) HostPort() string {
|
||||
return fmt.Sprintf("%s:%d", u.host, u.port)
|
||||
if u == nil {
|
||||
return ""
|
||||
}
|
||||
s := fmt.Sprintf("%s:%d", u.host, u.port)
|
||||
return s
|
||||
}
|
||||
|
||||
// Equals returns true if the checked URI is equivalent to this URI.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue