diff options
author | Paul Okstad <pokstad@gitlab.com> | 2020-11-10 11:08:09 +0300 |
---|---|---|
committer | Paul Okstad <pokstad@gitlab.com> | 2020-11-11 00:18:22 +0300 |
commit | 3588c9cb9fbffad39af63547210578c455c9840d (patch) | |
tree | 67faa15ae735d263e5988571657259d53ea1c20b | |
parent | db0b171b4a310bfb12cfb54c0470296ed77c0cd8 (diff) |
Inject config into object pool
23 files changed, 78 insertions, 63 deletions
diff --git a/internal/git/objectpool/clone_test.go b/internal/git/objectpool/clone_test.go index cb10fd01d..53abcbbab 100644 --- a/internal/git/objectpool/clone_test.go +++ b/internal/git/objectpool/clone_test.go @@ -16,7 +16,7 @@ func TestClone(t *testing.T) { testRepo, _, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := NewObjectPool(config.NewLocator(config.Config), testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) err = pool.clone(ctx, testRepo) @@ -34,7 +34,7 @@ func TestCloneExistingPool(t *testing.T) { testRepo, _, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := NewObjectPool(config.NewLocator(config.Config), testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) err = pool.clone(ctx, testRepo) diff --git a/internal/git/objectpool/fetch.go b/internal/git/objectpool/fetch.go index 0e4a30c4c..4ac559962 100644 --- a/internal/git/objectpool/fetch.go +++ b/internal/git/objectpool/fetch.go @@ -17,7 +17,6 @@ import ( "gitlab.com/gitlab-org/gitaly/internal/git" "gitlab.com/gitlab-org/gitaly/internal/git/repository" "gitlab.com/gitlab-org/gitaly/internal/git/updateref" - "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/internal/helper" "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" ) @@ -39,7 +38,11 @@ func (o *ObjectPool) FetchFromOrigin(ctx context.Context, origin *gitalypb.Repos return err } - getRemotes, err := git.SafeCmd(ctx, o, nil, git.SubCmd{Name: "remote"}) + opts := []git.CmdOpt{ + git.WithRefTxHook(ctx, helper.ProtoRepoFromRepo(o), o.cfg), + } + + getRemotes, err := git.SafeCmd(ctx, o, nil, git.SubCmd{Name: "remote"}, opts...) if err != nil { return err } @@ -61,7 +64,7 @@ func (o *ObjectPool) FetchFromOrigin(ctx context.Context, origin *gitalypb.Repos setOriginCmd, err = git.SafeCmd(ctx, o, nil, git.SubCmd{ Name: "remote", Args: []string{"set-url", sourceRemote, originPath}, - }, git.WithRefTxHook(ctx, helper.ProtoRepoFromRepo(o), config.Config)) + }, opts...) if err != nil { return err } @@ -69,7 +72,7 @@ func (o *ObjectPool) FetchFromOrigin(ctx context.Context, origin *gitalypb.Repos setOriginCmd, err = git.SafeCmd(ctx, o, nil, git.SubCmd{ Name: "remote", Args: []string{"add", sourceRemote, originPath}, - }, git.WithRefTxHook(ctx, helper.ProtoRepoFromRepo(o), config.Config)) + }, opts...) if err != nil { return err } @@ -84,11 +87,14 @@ func (o *ObjectPool) FetchFromOrigin(ctx context.Context, origin *gitalypb.Repos } refSpec := fmt.Sprintf("+refs/*:%s/*", sourceRefNamespace) - fetchCmd, err := git.SafeCmd(ctx, o, nil, git.SubCmd{ - Name: "fetch", - Flags: []git.Option{git.Flag{Name: "--quiet"}}, - Args: []string{sourceRemote, refSpec}, - }) + fetchCmd, err := git.SafeCmd(ctx, o, nil, + git.SubCmd{ + Name: "fetch", + Flags: []git.Option{git.Flag{Name: "--quiet"}}, + Args: []string{sourceRemote, refSpec}, + }, + opts..., + ) if err != nil { return err } diff --git a/internal/git/objectpool/fetch_test.go b/internal/git/objectpool/fetch_test.go index 4998d2b3a..187ec42dc 100644 --- a/internal/git/objectpool/fetch_test.go +++ b/internal/git/objectpool/fetch_test.go @@ -18,7 +18,7 @@ func TestFetchFromOriginDangling(t *testing.T) { source, _, cleanup := testhelper.NewTestRepo(t) defer cleanup() - pool, err := NewObjectPool(config.NewLocator(config.Config), source.StorageName, testhelper.NewTestObjectPoolName(t)) + pool, err := NewObjectPool(config.Config, source.StorageName, testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) ctx, cancel := testhelper.Context() @@ -90,7 +90,7 @@ func TestFetchFromOriginDeltaIslands(t *testing.T) { source, sourcePath, cleanup := testhelper.NewTestRepo(t) defer cleanup() - pool, err := NewObjectPool(config.NewLocator(config.Config), source.StorageName, testhelper.NewTestObjectPoolName(t)) + pool, err := NewObjectPool(config.Config, source.StorageName, testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) ctx, cancel := testhelper.Context() @@ -116,7 +116,7 @@ func TestFetchFromOriginBitmapHashCache(t *testing.T) { source, _, cleanup := testhelper.NewTestRepo(t) defer cleanup() - pool, err := NewObjectPool(config.NewLocator(config.Config), source.StorageName, testhelper.NewTestObjectPoolName(t)) + pool, err := NewObjectPool(config.Config, source.StorageName, testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) ctx, cancel := testhelper.Context() @@ -145,7 +145,7 @@ func TestFetchFromOriginRefUpdates(t *testing.T) { source, sourcePath, cleanup := testhelper.NewTestRepo(t) defer cleanup() - pool, err := NewObjectPool(config.NewLocator(config.Config), source.StorageName, testhelper.NewTestObjectPoolName(t)) + pool, err := NewObjectPool(config.Config, source.StorageName, testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) poolPath := pool.FullPath() diff --git a/internal/git/objectpool/pool.go b/internal/git/objectpool/pool.go index 9cef00394..835490538 100644 --- a/internal/git/objectpool/pool.go +++ b/internal/git/objectpool/pool.go @@ -13,6 +13,7 @@ import ( "strings" "gitlab.com/gitlab-org/gitaly/internal/git" + "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/internal/helper" "gitlab.com/gitlab-org/gitaly/internal/storage" "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" @@ -32,6 +33,7 @@ const ErrInvalidPoolDir errString = "invalid object pool directory" // live in a pool in a distinct repository which is used as an alternate object // store for other repositories. type ObjectPool struct { + cfg config.Cfg locator storage.Locator storageName string storagePath string @@ -42,7 +44,7 @@ type ObjectPool struct { // NewObjectPool will initialize the object with the required data on the storage // shard. Relative path is validated to match the expected naming and directory // structure. If the shard cannot be found, this function returns an error. -func NewObjectPool(locator storage.Locator, storageName, relativePath string) (pool *ObjectPool, err error) { +func NewObjectPool(cfg config.Cfg, storageName, relativePath string) (pool *ObjectPool, err error) { storagePath, err := helper.GetStorageByName(storageName) if err != nil { return nil, err @@ -53,7 +55,7 @@ func NewObjectPool(locator storage.Locator, storageName, relativePath string) (p return nil, ErrInvalidPoolDir } - return &ObjectPool{locator: locator, storageName: storageName, storagePath: storagePath, relativePath: relativePath}, nil + return &ObjectPool{cfg: cfg, locator: config.NewLocator(cfg), storageName: storageName, storagePath: storagePath, relativePath: relativePath}, nil } // GetGitAlternateObjectDirectories for object pools are empty, given pools are @@ -140,7 +142,9 @@ func (o *ObjectPool) Init(ctx context.Context) (err error) { } // FromRepo returns an instance of ObjectPool that the repository points to -func FromRepo(locator storage.Locator, repo *gitalypb.Repository) (*ObjectPool, error) { +func FromRepo(cfg config.Cfg, repo *gitalypb.Repository) (*ObjectPool, error) { + locator := config.NewLocator(cfg) + dir, err := getAlternateObjectDir(locator, repo) if err != nil { return nil, err @@ -160,7 +164,7 @@ func FromRepo(locator storage.Locator, repo *gitalypb.Repository) (*ObjectPool, return nil, err } - return NewObjectPool(locator, repo.GetStorageName(), filepath.Dir(altPathRelativeToStorage)) + return NewObjectPool(cfg, repo.GetStorageName(), filepath.Dir(altPathRelativeToStorage)) } var ( diff --git a/internal/git/objectpool/pool_test.go b/internal/git/objectpool/pool_test.go index 2a2dd2c54..e6da8db91 100644 --- a/internal/git/objectpool/pool_test.go +++ b/internal/git/objectpool/pool_test.go @@ -14,10 +14,10 @@ import ( ) func TestNewObjectPool(t *testing.T) { - _, err := NewObjectPool(nil, "default", testhelper.NewTestObjectPoolName(t)) + _, err := NewObjectPool(config.Config, "default", testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) - _, err = NewObjectPool(nil, "mepmep", testhelper.NewTestObjectPoolName(t)) + _, err = NewObjectPool(config.Config, "mepmep", testhelper.NewTestObjectPoolName(t)) require.Error(t, err, "creating pool in storage that does not exist should fail") } @@ -27,9 +27,8 @@ func TestNewFromRepoSuccess(t *testing.T) { defer cleanup() relativePoolPath := testhelper.NewTestObjectPoolName(t) - locator := config.NewLocator(config.Config) - pool, err := NewObjectPool(locator, testRepo.GetStorageName(), relativePoolPath) + pool, err := NewObjectPool(config.Config, testRepo.GetStorageName(), relativePoolPath) require.NoError(t, err) defer pool.Remove(ctx) @@ -37,7 +36,7 @@ func TestNewFromRepoSuccess(t *testing.T) { require.NoError(t, pool.Create(ctx, testRepo)) require.NoError(t, pool.Link(ctx, testRepo)) - poolFromRepo, err := FromRepo(locator, testRepo) + poolFromRepo, err := FromRepo(config.Config, testRepo) require.NoError(t, err) require.Equal(t, relativePoolPath, poolFromRepo.relativePath) require.Equal(t, pool.storageName, poolFromRepo.storageName) @@ -47,10 +46,8 @@ func TestNewFromRepoNoObjectPool(t *testing.T) { testRepo, testRepoPath, cleanup := testhelper.NewTestRepo(t) defer cleanup() - locator := config.NewLocator(config.Config) - // no alternates file - poolFromRepo, err := FromRepo(locator, testRepo) + poolFromRepo, err := FromRepo(config.Config, testRepo) require.Equal(t, ErrAlternateObjectDirNotExist, err) require.Nil(t, poolFromRepo) @@ -83,7 +80,7 @@ func TestNewFromRepoNoObjectPool(t *testing.T) { t.Run(tc.desc, func(t *testing.T) { alternateFilePath := filepath.Join(testRepoPath, "objects", "info", "alternates") require.NoError(t, ioutil.WriteFile(alternateFilePath, tc.fileContent, 0644)) - poolFromRepo, err := FromRepo(locator, testRepo) + poolFromRepo, err := FromRepo(config.Config, testRepo) require.Equal(t, tc.expectedErr, err) require.Nil(t, poolFromRepo) @@ -101,7 +98,7 @@ func TestCreate(t *testing.T) { masterSha := testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "show-ref", "master") - pool, err := NewObjectPool(config.NewLocator(config.Config), testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) err = pool.Create(ctx, testRepo) @@ -134,7 +131,7 @@ func TestCreateSubDirsExist(t *testing.T) { testRepo, _, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := NewObjectPool(config.NewLocator(config.Config), testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) defer pool.Remove(ctx) require.NoError(t, err) @@ -155,7 +152,7 @@ func TestRemove(t *testing.T) { testRepo, _, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := NewObjectPool(config.NewLocator(config.Config), testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) err = pool.Create(ctx, testRepo) diff --git a/internal/git/objectpool/proto.go b/internal/git/objectpool/proto.go index 1e69f5a50..f033e1217 100644 --- a/internal/git/objectpool/proto.go +++ b/internal/git/objectpool/proto.go @@ -1,13 +1,13 @@ package objectpool import ( - "gitlab.com/gitlab-org/gitaly/internal/storage" + "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" ) // FromProto returns an object pool object from a git repository object -func FromProto(locator storage.Locator, o *gitalypb.ObjectPool) (*ObjectPool, error) { - return NewObjectPool(locator, o.GetRepository().GetStorageName(), o.GetRepository().GetRelativePath()) +func FromProto(cfg config.Cfg, o *gitalypb.ObjectPool) (*ObjectPool, error) { + return NewObjectPool(cfg, o.GetRepository().GetStorageName(), o.GetRepository().GetRelativePath()) } // ToProto returns a new struct that is the protobuf definition of the ObjectPool diff --git a/internal/git/objectpool/testhelper_test.go b/internal/git/objectpool/testhelper_test.go index 21eef190a..20dd12e23 100644 --- a/internal/git/objectpool/testhelper_test.go +++ b/internal/git/objectpool/testhelper_test.go @@ -16,7 +16,7 @@ func TestMain(m *testing.M) { } func NewTestObjectPool(ctx context.Context, t *testing.T, storageName string) (*ObjectPool, func()) { - pool, err := NewObjectPool(config.NewLocator(config.Config), storageName, testhelper.NewTestObjectPoolName(t)) + pool, err := NewObjectPool(config.Config, storageName, testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) return pool, func() { require.NoError(t, pool.Remove(ctx)) diff --git a/internal/gitaly/service/objectpool/alternates_test.go b/internal/gitaly/service/objectpool/alternates_test.go index f9ff064e2..a281ce3e6 100644 --- a/internal/gitaly/service/objectpool/alternates_test.go +++ b/internal/gitaly/service/objectpool/alternates_test.go @@ -9,6 +9,7 @@ import ( "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/internal/git" "gitlab.com/gitlab-org/gitaly/internal/git/objectpool" + "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" gconfig "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" @@ -28,7 +29,7 @@ func TestDisconnectGitAlternates(t *testing.T) { testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := objectpool.NewObjectPool(locator, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) defer pool.Remove(ctx) diff --git a/internal/gitaly/service/objectpool/create.go b/internal/gitaly/service/objectpool/create.go index 407e56287..7cd4f8686 100644 --- a/internal/gitaly/service/objectpool/create.go +++ b/internal/gitaly/service/objectpool/create.go @@ -4,6 +4,7 @@ import ( "context" "gitlab.com/gitlab-org/gitaly/internal/git/objectpool" + "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/internal/helper" "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" "google.golang.org/grpc/codes" @@ -67,7 +68,7 @@ func (s *server) poolForRequest(req poolRequest) (*objectpool.ObjectPool, error) return nil, errMissingPool } - pool, err := objectpool.NewObjectPool(s.locator, poolRepo.GetStorageName(), poolRepo.GetRelativePath()) + pool, err := objectpool.NewObjectPool(config.Config, poolRepo.GetStorageName(), poolRepo.GetRelativePath()) if err != nil { if err == objectpool.ErrInvalidPoolDir { return nil, errInvalidPoolDir diff --git a/internal/gitaly/service/objectpool/create_test.go b/internal/gitaly/service/objectpool/create_test.go index 69bfeb0f1..848520fb0 100644 --- a/internal/gitaly/service/objectpool/create_test.go +++ b/internal/gitaly/service/objectpool/create_test.go @@ -29,7 +29,7 @@ func TestCreate(t *testing.T) { testRepo, _, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := objectpool.NewObjectPool(locator, "default", testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, "default", testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) poolReq := &gitalypb.CreateObjectPoolRequest{ @@ -77,7 +77,7 @@ func TestUnsuccessfulCreate(t *testing.T) { defer cleanupFn() validPoolPath := testhelper.NewTestObjectPoolName(t) - pool, err := objectpool.NewObjectPool(locator, "default", validPoolPath) + pool, err := objectpool.NewObjectPool(config.Config, "default", validPoolPath) require.NoError(t, err) defer pool.Remove(ctx) @@ -177,7 +177,7 @@ func TestDelete(t *testing.T) { defer cleanupFn() validPoolPath := testhelper.NewTestObjectPoolName(t) - pool, err := objectpool.NewObjectPool(locator, "default", validPoolPath) + pool, err := objectpool.NewObjectPool(config.Config, "default", validPoolPath) require.NoError(t, err) require.NoError(t, pool.Create(ctx, testRepo)) diff --git a/internal/gitaly/service/objectpool/fetch_into_object_pool.go b/internal/gitaly/service/objectpool/fetch_into_object_pool.go index e289dccd8..6c309447b 100644 --- a/internal/gitaly/service/objectpool/fetch_into_object_pool.go +++ b/internal/gitaly/service/objectpool/fetch_into_object_pool.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/internal/git/objectpool" "gitlab.com/gitlab-org/gitaly/internal/git/stats" + "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/internal/helper" "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" ) @@ -16,7 +17,7 @@ func (s *server) FetchIntoObjectPool(ctx context.Context, req *gitalypb.FetchInt return nil, helper.ErrInvalidArgument(err) } - objectPool, err := objectpool.FromProto(s.locator, req.GetObjectPool()) + objectPool, err := objectpool.FromProto(config.Config, req.GetObjectPool()) if err != nil { return nil, helper.ErrInvalidArgument(fmt.Errorf("object pool invalid: %v", err)) } diff --git a/internal/gitaly/service/objectpool/fetch_into_object_pool_test.go b/internal/gitaly/service/objectpool/fetch_into_object_pool_test.go index b3503381e..f1da33c6c 100644 --- a/internal/gitaly/service/objectpool/fetch_into_object_pool_test.go +++ b/internal/gitaly/service/objectpool/fetch_into_object_pool_test.go @@ -12,6 +12,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/internal/git/objectpool" + "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" gconfig "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" @@ -35,7 +36,7 @@ func TestFetchIntoObjectPool_Success(t *testing.T) { repoCommit := testhelper.CreateCommit(t, testRepoPath, t.Name(), &testhelper.CreateCommitOpts{Message: t.Name()}) - pool, err := objectpool.NewObjectPool(locator, "default", testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, "default", testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) defer pool.Remove(ctx) @@ -89,7 +90,7 @@ func TestFetchIntoObjectPool_CollectLogStatistics(t *testing.T) { testRepo, _, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := objectpool.NewObjectPool(locator, "default", testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, "default", testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) defer pool.Remove(ctx) @@ -127,7 +128,7 @@ func TestFetchIntoObjectPool_Failure(t *testing.T) { testRepo, _, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := objectpool.NewObjectPool(locator, "default", testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, "default", testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) defer pool.Remove(ctx) diff --git a/internal/gitaly/service/objectpool/get.go b/internal/gitaly/service/objectpool/get.go index c409ee869..06788e52b 100644 --- a/internal/gitaly/service/objectpool/get.go +++ b/internal/gitaly/service/objectpool/get.go @@ -6,6 +6,7 @@ import ( "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus/ctxlogrus" "gitlab.com/gitlab-org/gitaly/internal/git/objectpool" + "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/internal/helper" "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" ) @@ -15,7 +16,7 @@ func (s *server) GetObjectPool(ctx context.Context, in *gitalypb.GetObjectPoolRe return nil, helper.ErrInternal(errors.New("repository is empty")) } - objectPool, err := objectpool.FromRepo(s.locator, in.GetRepository()) + objectPool, err := objectpool.FromRepo(config.Config, in.GetRepository()) if err != nil { ctxlogrus.Extract(ctx). diff --git a/internal/gitaly/service/objectpool/get_test.go b/internal/gitaly/service/objectpool/get_test.go index 7294daa53..11dfffeea 100644 --- a/internal/gitaly/service/objectpool/get_test.go +++ b/internal/gitaly/service/objectpool/get_test.go @@ -8,6 +8,7 @@ import ( "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/internal/git/objectpool" + "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" gconfig "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" @@ -26,7 +27,7 @@ func TestGetObjectPoolSuccess(t *testing.T) { relativePoolPath := testhelper.NewTestObjectPoolName(t) - pool, err := objectpool.NewObjectPool(locator, testRepo.GetStorageName(), relativePoolPath) + pool, err := objectpool.NewObjectPool(config.Config, testRepo.GetStorageName(), relativePoolPath) require.NoError(t, err) poolCtx, cancel := testhelper.Context() diff --git a/internal/gitaly/service/objectpool/link_test.go b/internal/gitaly/service/objectpool/link_test.go index 1a71288bb..a5f0fa7db 100644 --- a/internal/gitaly/service/objectpool/link_test.go +++ b/internal/gitaly/service/objectpool/link_test.go @@ -9,6 +9,7 @@ import ( "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/internal/git/log" "gitlab.com/gitlab-org/gitaly/internal/git/objectpool" + "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" gconfig "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/internal/storage" "gitlab.com/gitlab-org/gitaly/internal/testhelper" @@ -30,7 +31,7 @@ func TestLink(t *testing.T) { testRepo, _, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := objectpool.NewObjectPool(locator, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) require.NoError(t, pool.Remove(ctx), "make sure pool does not exist at start of test") @@ -104,7 +105,7 @@ func TestLinkIdempotent(t *testing.T) { testRepo, _, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := objectpool.NewObjectPool(locator, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) defer pool.Remove(ctx) require.NoError(t, pool.Create(ctx, testRepo)) @@ -135,7 +136,7 @@ func TestLinkNoClobber(t *testing.T) { testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := objectpool.NewObjectPool(locator, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) defer pool.Remove(ctx) @@ -175,7 +176,7 @@ func TestLinkNoPool(t *testing.T) { testRepo, _, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := objectpool.NewObjectPool(locator, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) // intentionally do not call pool.Create defer pool.Remove(ctx) @@ -211,7 +212,7 @@ func TestUnlink(t *testing.T) { deletedRepo, deletedRepoPath, removeDeletedRepo := testhelper.NewTestRepo(t) defer removeDeletedRepo() - pool, err := objectpool.NewObjectPool(locator, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) defer pool.Remove(ctx) @@ -222,7 +223,7 @@ func TestUnlink(t *testing.T) { removeDeletedRepo() testhelper.AssertPathNotExists(t, deletedRepoPath) - pool2, err := objectpool.NewObjectPool(locator, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool2, err := objectpool.NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) require.NoError(t, pool2.Create(ctx, testRepo), "create pool 2") defer pool2.Remove(ctx) @@ -321,7 +322,7 @@ func TestUnlinkIdempotent(t *testing.T) { testRepo, _, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := objectpool.NewObjectPool(locator, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) defer pool.Remove(ctx) require.NoError(t, pool.Create(ctx, testRepo)) diff --git a/internal/gitaly/service/objectpool/reduplicate_test.go b/internal/gitaly/service/objectpool/reduplicate_test.go index c5b197126..b3e018e65 100644 --- a/internal/gitaly/service/objectpool/reduplicate_test.go +++ b/internal/gitaly/service/objectpool/reduplicate_test.go @@ -7,6 +7,7 @@ import ( "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/internal/git" "gitlab.com/gitlab-org/gitaly/internal/git/objectpool" + "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" gconfig "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" @@ -26,7 +27,7 @@ func TestReduplicate(t *testing.T) { testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := objectpool.NewObjectPool(locator, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) defer pool.Remove(ctx) require.NoError(t, pool.Create(ctx, testRepo)) diff --git a/internal/gitaly/service/repository/clone_from_pool.go b/internal/gitaly/service/repository/clone_from_pool.go index 6f07fb0f2..2e7186a3d 100644 --- a/internal/gitaly/service/repository/clone_from_pool.go +++ b/internal/gitaly/service/repository/clone_from_pool.go @@ -32,7 +32,7 @@ func (s *server) CloneFromPool(ctx context.Context, req *gitalypb.CloneFromPoolR return nil, helper.ErrInternalf("fetch http remote: %v", err) } - objectPool, err := objectpool.FromProto(s.locator, req.GetPool()) + objectPool, err := objectpool.FromProto(s.cfg, req.GetPool()) if err != nil { return nil, helper.ErrInternalf("get object pool from request: %v", err) } @@ -54,7 +54,7 @@ func (s *server) validateCloneFromPoolRequestRepositoryState(req *gitalypb.Clone return errors.New("target reopsitory already exists") } - objectPool, err := objectpool.FromProto(s.locator, req.GetPool()) + objectPool, err := objectpool.FromProto(s.cfg, req.GetPool()) if err != nil { return fmt.Errorf("getting object pool from repository: %v", err) } diff --git a/internal/gitaly/service/repository/clone_from_pool_internal.go b/internal/gitaly/service/repository/clone_from_pool_internal.go index f3bd6bfc4..7f9dbdad1 100644 --- a/internal/gitaly/service/repository/clone_from_pool_internal.go +++ b/internal/gitaly/service/repository/clone_from_pool_internal.go @@ -46,7 +46,7 @@ func (s *server) CloneFromPoolInternal(ctx context.Context, req *gitalypb.CloneF return nil, helper.ErrInternalf("fetch internal remote failed") } - objectPool, err := objectpool.FromProto(s.locator, req.GetPool()) + objectPool, err := objectpool.FromProto(s.cfg, req.GetPool()) if err != nil { return nil, helper.ErrInternalf("get object pool from request: %v", err) } @@ -68,7 +68,7 @@ func (s *server) validateCloneFromPoolInternalRequestRepositoryState(req *gitaly return errors.New("target reopsitory already exists") } - objectPool, err := objectpool.FromProto(s.locator, req.GetPool()) + objectPool, err := objectpool.FromProto(s.cfg, req.GetPool()) if err != nil { return fmt.Errorf("getting object pool from repository: %v", err) } diff --git a/internal/gitaly/service/repository/clone_from_pool_internal_test.go b/internal/gitaly/service/repository/clone_from_pool_internal_test.go index 719f8b6b2..942d4feb6 100644 --- a/internal/gitaly/service/repository/clone_from_pool_internal_test.go +++ b/internal/gitaly/service/repository/clone_from_pool_internal_test.go @@ -22,7 +22,7 @@ func NewTestObjectPool(t *testing.T) (*objectpool.ObjectPool, *gitalypb.Reposito relativePath := testhelper.NewTestObjectPoolName(t) repo := testhelper.CreateRepo(t, storagePath, relativePath) - pool, err := objectpool.NewObjectPool(config.NewLocator(config.Config), repo.GetStorageName(), relativePath) + pool, err := objectpool.NewObjectPool(config.Config, repo.GetStorageName(), relativePath) require.NoError(t, err) return pool, repo diff --git a/internal/gitaly/service/repository/testdata/gitlab-shell/config.yml b/internal/gitaly/service/repository/testdata/gitlab-shell/config.yml index d7abadea0..bcfe53ab6 100644 --- a/internal/gitaly/service/repository/testdata/gitlab-shell/config.yml +++ b/internal/gitaly/service/repository/testdata/gitlab-shell/config.yml @@ -1,4 +1,4 @@ -gitlab_url: http://127.0.0.1:53058 +gitlab_url: http://127.0.0.1:51981 http_settings: user: "" password: "" diff --git a/internal/gitaly/service/smarthttp/inforefs_test.go b/internal/gitaly/service/smarthttp/inforefs_test.go index 692f7f132..d97f84c71 100644 --- a/internal/gitaly/service/smarthttp/inforefs_test.go +++ b/internal/gitaly/service/smarthttp/inforefs_test.go @@ -193,7 +193,7 @@ func TestObjectPoolRefAdvertisementHiding(t *testing.T) { ctx, cancel := testhelper.Context() defer cancel() - pool, err := objectpool.NewObjectPool(config.NewLocator(config.Config), repo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, repo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) require.NoError(t, pool.Create(ctx, repo)) diff --git a/internal/gitaly/service/ssh/receive_pack_test.go b/internal/gitaly/service/ssh/receive_pack_test.go index 3dc204975..f0ebd39e5 100644 --- a/internal/gitaly/service/ssh/receive_pack_test.go +++ b/internal/gitaly/service/ssh/receive_pack_test.go @@ -177,7 +177,7 @@ func TestObjectPoolRefAdvertisementHidingSSH(t *testing.T) { repo, _, cleanupFn := testhelper.NewTestRepo(t) defer cleanupFn() - pool, err := objectpool.NewObjectPool(config.NewLocator(config.Config), repo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + pool, err := objectpool.NewObjectPool(config.Config, repo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) require.NoError(t, err) require.NoError(t, pool.Create(ctx, repo)) diff --git a/internal/praefect/replicator_test.go b/internal/praefect/replicator_test.go index 6eb2132ca..fb9da9222 100644 --- a/internal/praefect/replicator_test.go +++ b/internal/praefect/replicator_test.go @@ -96,7 +96,7 @@ func TestReplMgr_ProcessBacklog(t *testing.T) { // create object pool on the source objectPoolPath := testhelper.NewTestObjectPoolName(t) - pool, err := objectpool.NewObjectPool(gitaly_config.NewLocator(gitaly_config.Config), testRepo.GetStorageName(), objectPoolPath) + pool, err := objectpool.NewObjectPool(gitaly_config.Config, testRepo.GetStorageName(), objectPoolPath) require.NoError(t, err) poolCtx, cancel := testhelper.Context() |