Skip to content

Commit

Permalink
Modularize Block Factory (#8499)
Browse files Browse the repository at this point in the history
* Modularize Block Factory

* Import lakeFS module

* Rename imports
  • Loading branch information
itaigilo authored Jan 16, 2025
1 parent 5cc3f2e commit cf75bce
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 17 deletions.
4 changes: 2 additions & 2 deletions cmd/lakefs/cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"github.com/go-co-op/gocron"
"github.com/spf13/cobra"
"github.com/spf13/viper"
blockfactory "github.com/treeverse/lakefs/modules/block/factory"
"github.com/treeverse/lakefs/pkg/actions"
"github.com/treeverse/lakefs/pkg/api"
"github.com/treeverse/lakefs/pkg/auth"
Expand All @@ -26,7 +27,6 @@ import (
authremote "github.com/treeverse/lakefs/pkg/auth/remoteauthenticator"
"github.com/treeverse/lakefs/pkg/authentication"
"github.com/treeverse/lakefs/pkg/block"
"github.com/treeverse/lakefs/pkg/block/factory"
"github.com/treeverse/lakefs/pkg/catalog"
"github.com/treeverse/lakefs/pkg/config"
"github.com/treeverse/lakefs/pkg/gateway"
Expand Down Expand Up @@ -201,7 +201,7 @@ var runCmd = &cobra.Command{
stats.WithLogger(logger.WithField("service", "stats_collector")))

// init block store
blockStore, err := factory.BuildBlockAdapter(ctx, bufferedCollector, cfg)
blockStore, err := blockfactory.BuildBlockAdapter(ctx, bufferedCollector, cfg)
if err != nil {
logger.WithError(err).Fatal("Failed to create block adapter")
}
Expand Down
1 change: 1 addition & 0 deletions go.work
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ go 1.23

use (
.
./modules/block/factory
./webui
)
19 changes: 19 additions & 0 deletions modules/block/factory/build.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package factory

import (
"context"

"github.com/treeverse/lakefs/pkg/block"
"github.com/treeverse/lakefs/pkg/block/factory"
"github.com/treeverse/lakefs/pkg/block/params"
"github.com/treeverse/lakefs/pkg/stats"
)

func BuildBlockAdapter(ctx context.Context, statsCollector stats.Collector, c params.AdapterConfig) (block.Adapter, error) {
adapter, err := factory.BuildBlockAdapter(ctx, statsCollector, c)
if err != nil {
return nil, err
}

return block.NewMetricsAdapter(adapter), nil
}
5 changes: 5 additions & 0 deletions modules/block/factory/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module github.com/treeverse/lakefs/modules/block/factory

go 1.23

// This module uses the go.work file to get all package dependencies from lakefs
6 changes: 6 additions & 0 deletions modules/block/factory/go.work
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
go 1.23

use (
.
../../..
)
9 changes: 0 additions & 9 deletions pkg/block/factory/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,6 @@ const (
)

func BuildBlockAdapter(ctx context.Context, statsCollector stats.Collector, c params.AdapterConfig) (block.Adapter, error) {
adapter, err := buildBlockAdapter(ctx, statsCollector, c)
if err != nil {
return nil, err
}

return block.NewMetricsAdapter(adapter), nil
}

func buildBlockAdapter(ctx context.Context, statsCollector stats.Collector, c params.AdapterConfig) (block.Adapter, error) {
blockstore := strings.ToLower(c.BlockstoreType())
logging.FromContext(ctx).
WithField("type", blockstore).
Expand Down
4 changes: 2 additions & 2 deletions pkg/catalog/catalog.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import (
"github.com/rs/xid"
"github.com/treeverse/lakefs/pkg/batch"
"github.com/treeverse/lakefs/pkg/block"
"github.com/treeverse/lakefs/pkg/block/factory"
blockfactory "github.com/treeverse/lakefs/pkg/block/factory"
"github.com/treeverse/lakefs/pkg/config"
"github.com/treeverse/lakefs/pkg/graveler"
"github.com/treeverse/lakefs/pkg/graveler/branch"
Expand Down Expand Up @@ -307,7 +307,7 @@ func makeBranchApproximateOwnershipParams(cfg config.ApproximatelyCorrectOwnersh

func New(ctx context.Context, cfg Config) (*Catalog, error) {
ctx, cancelFn := context.WithCancel(ctx)
adapter, err := factory.BuildBlockAdapter(ctx, nil, cfg.Config)
adapter, err := blockfactory.BuildBlockAdapter(ctx, nil, cfg.Config)
if err != nil {
cancelFn()
return nil, fmt.Errorf("build block adapter: %w", err)
Expand Down
8 changes: 4 additions & 4 deletions pkg/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ import (
awsconfig "github.com/aws/aws-sdk-go-v2/config"
"github.com/go-test/deep"
"github.com/spf13/viper"
blockfactory "github.com/treeverse/lakefs/modules/block/factory"
"github.com/treeverse/lakefs/pkg/block"
"github.com/treeverse/lakefs/pkg/block/factory"
"github.com/treeverse/lakefs/pkg/block/gs"
"github.com/treeverse/lakefs/pkg/block/local"
"github.com/treeverse/lakefs/pkg/config"
Expand Down Expand Up @@ -112,7 +112,7 @@ func TestConfig_BuildBlockAdapter(t *testing.T) {
t.Run("local block adapter", func(t *testing.T) {
c, err := newConfigFromFile("testdata/valid_config.yaml")
testutil.Must(t, err)
adapter, err := factory.BuildBlockAdapter(ctx, nil, c)
adapter, err := blockfactory.BuildBlockAdapter(ctx, nil, c)
testutil.Must(t, err)
metricsAdapter, ok := adapter.(*block.MetricsAdapter)
if !ok {
Expand All @@ -127,7 +127,7 @@ func TestConfig_BuildBlockAdapter(t *testing.T) {
c, err := newConfigFromFile("testdata/valid_s3_adapter_config.yaml")
testutil.Must(t, err)

_, err = factory.BuildBlockAdapter(ctx, nil, c)
_, err = blockfactory.BuildBlockAdapter(ctx, nil, c)
var errProfileNotExists awsconfig.SharedConfigProfileNotExistError
if !errors.As(err, &errProfileNotExists) {
t.Fatalf("expected a config.SharedConfigProfileNotExistError, got '%v'", err)
Expand All @@ -137,7 +137,7 @@ func TestConfig_BuildBlockAdapter(t *testing.T) {
t.Run("gs block adapter", func(t *testing.T) {
c, err := newConfigFromFile("testdata/valid_gs_adapter_config.yaml")
testutil.Must(t, err)
adapter, err := factory.BuildBlockAdapter(ctx, nil, c)
adapter, err := blockfactory.BuildBlockAdapter(ctx, nil, c)
testutil.Must(t, err)

metricsAdapter, ok := adapter.(*block.MetricsAdapter)
Expand Down

0 comments on commit cf75bce

Please sign in to comment.