diff --git a/holder.go b/holder.go index 899c25944..0a1af820b 100644 --- a/holder.go +++ b/holder.go @@ -52,7 +52,7 @@ type Holder struct { // Key/ID translation translateFile *TranslateFile - NewPrimaryTranslateStore func(interface{}) (TranslateStore, error) + NewPrimaryTranslateStore func(interface{}) TranslateStore // opened channel is closed once Open() completes. opened chan struct{} @@ -590,10 +590,7 @@ func (h *Holder) setPrimaryTranslateStore(node *Node) { if node != nil { nodeID = node.ID } - ts, err := h.NewPrimaryTranslateStore(node) - if err != nil { - h.Logger.Printf("setPrimaryTranslateStore: %s", err) - } + ts := h.NewPrimaryTranslateStore(node) h.translateFile.SetPrimaryStore(nodeID, ts) } diff --git a/http/translator.go b/http/translator.go index f5e9f3ed3..f83bde113 100644 --- a/http/translator.go +++ b/http/translator.go @@ -11,7 +11,6 @@ import ( "strconv" "github.com/pilosa/pilosa" - "github.com/pkg/errors" ) // Ensure implementation implements inteface. @@ -26,12 +25,12 @@ type translateStore struct { // NewTranslateStore returns a new instance of TranslateStore based on node. // DEPRECATED: Providing a string url to this function is being deprecated. Instead, // provide a *pilosa.Node. -func NewTranslateStore(node interface{}) (pilosa.TranslateStore, error) { +func NewTranslateStore(node interface{}) pilosa.TranslateStore { var n *pilosa.Node switch v := node.(type) { case string: if uri, err := pilosa.NewURIFromAddress(v); err != nil { - return nil, errors.Wrap(err, "creating uri") + panic("bad uri for translatestore in deprecated api") } else { n = &pilosa.Node{ ID: v, @@ -41,9 +40,9 @@ func NewTranslateStore(node interface{}) (pilosa.TranslateStore, error) { case *pilosa.Node: n = v default: - return nil, errors.New("*pilosa.Node is the only type supported by NewTranslateStore().") + panic("*pilosa.Node is the only type supported by NewTranslateStore().") } - return &translateStore{node: n}, nil + return &translateStore{node: n} } // TranslateColumnsToUint64 is not currently implemented. diff --git a/http/translator_test.go b/http/translator_test.go index 496d85cc9..ce96b3c2c 100644 --- a/http/translator_test.go +++ b/http/translator_test.go @@ -42,7 +42,7 @@ func TestTranslateStore_Reader(t *testing.T) { } // Connect to server and stream all available data. - store, _ := http.NewTranslateStore(primary.URL()) + store := http.NewTranslateStore(primary.URL()) // Wait to ensure writes make it to translate store time.Sleep(500 * time.Millisecond) @@ -96,7 +96,7 @@ func TestTranslateStore_Reader(t *testing.T) { // Connect to server and begin streaming. ctx, cancel := context.WithCancel(context.Background()) - store, _ := http.NewTranslateStore(primary.URL()) + store := http.NewTranslateStore(primary.URL()) if _, err := store.Reader(ctx, 0); err != nil { t.Fatal(err) } @@ -124,11 +124,8 @@ func TestTranslateStore_Reader(t *testing.T) { primary := test.MustRunCluster(t, 1, []server.CommandOption{opts})[0] defer primary.Close() - ts, err := http.NewTranslateStore(primary.URL()) - if err != nil { - t.Fatalf("unexpected error: %s", err) - } - _, err = ts.Reader(context.Background(), 0) + ts := http.NewTranslateStore(primary.URL()) + _, err := ts.Reader(context.Background(), 0) if err != pilosa.ErrNotImplemented { t.Fatalf("unexpected error: %s", err) } diff --git a/server.go b/server.go index 77593292c..3815f1bf4 100644 --- a/server.go +++ b/server.go @@ -168,7 +168,7 @@ func OptServerPrimaryTranslateStore(store TranslateStore) ServerOption { } } -func OptServerPrimaryTranslateStoreFunc(tf func(interface{}) (TranslateStore, error)) ServerOption { +func OptServerPrimaryTranslateStoreFunc(tf func(interface{}) TranslateStore) ServerOption { return func(s *Server) error { s.holder.NewPrimaryTranslateStore = tf @@ -237,7 +237,9 @@ func OptServerClusterHasher(h Hasher) ServerOption { func OptServerTranslateFileMapSize(mapSize int) ServerOption { return func(s *Server) error { - s.holder.translateFile = NewTranslateFile(OptTranslateFileMapSize(mapSize)) + s.holder.translateFile = NewTranslateFile( + OptTranslateFileMapSize(mapSize), + OptTranslateFileLogger(s.logger)) return nil } } diff --git a/server/handler_test.go b/server/handler_test.go index aac2447f1..9e76d77b9 100644 --- a/server/handler_test.go +++ b/server/handler_test.go @@ -696,7 +696,7 @@ func TestClusterTranslator(t *testing.T) { cluster[0] = test.NewCommandNode(true) cluster[0].Config.Gossip.Port = "0" cluster[0].Start() - httpTranslateStore, _ := http.NewTranslateStore(cluster[0].URL()) + httpTranslateStore := http.NewTranslateStore(cluster[0].URL()) cluster[1] = test.NewCommandNode(false, server.OptCommandServerOptions( pilosa.OptServerPrimaryTranslateStore(httpTranslateStore), diff --git a/translate.go b/translate.go index b875c415d..86ed6c914 100644 --- a/translate.go +++ b/translate.go @@ -1118,7 +1118,7 @@ var nopTStore TranslateStore = nopTranslateStore{} // newNopTranslateStore returns a translate store which does nothing. It returns a global // object to avoid unnecessary allocations. -func newNopTranslateStore(interface{}) (TranslateStore, error) { return nopTStore, nil } +func newNopTranslateStore(interface{}) TranslateStore { return nopTStore } // nopTranslateStore represents a no-op implementation of the TranslateStore interface. type nopTranslateStore struct{}