Skip to content

Commit

Permalink
Merge pull request #4874 from weaviate/reser-raft-class-name
Browse files Browse the repository at this point in the history
raft: reserve raft as a class name
  • Loading branch information
moogacs committed May 8, 2024
2 parents a47564b + d1982a2 commit 18e100e
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 1 deletion.
2 changes: 1 addition & 1 deletion adapters/handlers/rest/configure_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ func MakeAppState(ctx context.Context, options *swag.CommandLineOptionsGroup) *s
dataPath := appState.ServerConfig.Config.Persistence.DataPath

rConfig := rStore.Config{
WorkDir: filepath.Join(dataPath, "raft"),
WorkDir: filepath.Join(dataPath, config.DefaultRaftDir),
NodeID: nodeName,
Host: addrs[0],
RaftPort: appState.ServerConfig.Config.Raft.Port,
Expand Down
1 change: 1 addition & 0 deletions usecases/config/environment.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ const (
DefaultRaftGRPCMaxSize = 1024 * 1024 * 1024
DefaultRaftBootstrapTimeout = 90
DefaultRaftBootstrapExpect = 1
DefaultRaftDir = "raft"
)

// FromEnv takes a *Config as it will respect initial config that has been
Expand Down
23 changes: 23 additions & 0 deletions usecases/schema/class_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,29 @@ func Test_AddClass(t *testing.T) {
assert.EqualError(t, err, "'' is not a valid class name")
})

t.Run("with reserved class name", func(t *testing.T) {
handler, _ := newTestHandler(t, &fakeDB{})
class := models.Class{Class: config.DefaultRaftDir}
_, _, err := handler.AddClass(ctx, nil, &class)
assert.EqualError(t, err, fmt.Sprintf("parse class name: class name `%s` is reserved", config.DefaultRaftDir))

class = models.Class{Class: "rAFT"}
_, _, err = handler.AddClass(ctx, nil, &class)
assert.EqualError(t, err, fmt.Sprintf("parse class name: class name `%s` is reserved", config.DefaultRaftDir))

class = models.Class{Class: "rAfT"}
_, _, err = handler.AddClass(ctx, nil, &class)
assert.EqualError(t, err, fmt.Sprintf("parse class name: class name `%s` is reserved", config.DefaultRaftDir))

class = models.Class{Class: "RaFT"}
_, _, err = handler.AddClass(ctx, nil, &class)
assert.EqualError(t, err, fmt.Sprintf("parse class name: class name `%s` is reserved", config.DefaultRaftDir))

class = models.Class{Class: "RAFT"}
_, _, err = handler.AddClass(ctx, nil, &class)
assert.EqualError(t, err, fmt.Sprintf("parse class name: class name `%s` is reserved", config.DefaultRaftDir))
})

t.Run("with default params", func(t *testing.T) {
handler, fakeMetaHandler := newTestHandler(t, &fakeDB{})
class := models.Class{
Expand Down
6 changes: 6 additions & 0 deletions usecases/schema/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@ package schema
import (
"fmt"
"reflect"
"strings"

"github.com/pkg/errors"
"github.com/weaviate/weaviate/entities/models"
"github.com/weaviate/weaviate/entities/schema"
schemaConfig "github.com/weaviate/weaviate/entities/schema/config"
"github.com/weaviate/weaviate/entities/vectorindex"
"github.com/weaviate/weaviate/usecases/config"
shardingConfig "github.com/weaviate/weaviate/usecases/sharding/config"
)

Expand All @@ -42,6 +44,10 @@ func (m *Parser) ParseClass(class *models.Class) error {
return fmt.Errorf("class cannot be nil")
}

if strings.EqualFold(class.Class, config.DefaultRaftDir) {
return fmt.Errorf("parse class name: %w", fmt.Errorf("class name `raft` is reserved"))
}

if err := m.parseShardingConfig(class); err != nil {
return fmt.Errorf("parse sharding config: %w", err)
}
Expand Down

0 comments on commit 18e100e

Please sign in to comment.