refact(target): Add context to RepositoryFactory constructor
`errors.New` requires a context, so I've made that available from the Controller, and updated all `NewDeprecated` functions to `New` while I was at it
This commit is contained in:
1 parent
bf263fbd7d
commit
bf1486f75e
16 files changed
+51
-46
No files matched your search
@@ -478,7 +478,7 @@ func (b *Server) CreateInitialTarget(ctx context.Context) (target.Target, error)
|
||||
}
|
||||
}()
|
||||
|
||||
targetRepo, err := target.NewRepository(rw, rw, kmsCache)
|
||||
targetRepo, err := target.NewRepository(ctx, rw, rw, kmsCache)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error creating target repository: %w", err)
|
||||
}
|
||||
|
||||
@@ -334,7 +334,7 @@ func New(ctx context.Context, conf *Config) (*Controller, error) {
|
||||
return password.NewRepository(dbase, dbase, c.kms)
|
||||
}
|
||||
c.TargetRepoFn = func(o ...target.Option) (*target.Repository, error) {
|
||||
return target.NewRepository(dbase, dbase, c.kms, o...)
|
||||
return target.NewRepository(ctx, dbase, dbase, c.kms, o...)
|
||||
}
|
||||
c.SessionRepoFn = func(opt ...session.Option) (*session.Repository, error) {
|
||||
return session.NewRepository(ctx, dbase, dbase, c.kms, opt...)
|
||||
|
||||
@@ -77,7 +77,7 @@ func testService(t *testing.T, ctx context.Context, conn *db.DB, kms *kms.Kms, w
|
||||
rw := db.New(conn)
|
||||
sche := scheduler.TestScheduler(t, conn, wrapper)
|
||||
repoFn := func(o ...target.Option) (*target.Repository, error) {
|
||||
return target.NewRepository(rw, rw, kms, o...)
|
||||
return target.NewRepository(ctx, rw, rw, kms, o...)
|
||||
}
|
||||
iamRepoFn := func() (*iam.Repository, error) {
|
||||
return iam.TestRepo(t, conn, wrapper), nil
|
||||
@@ -710,8 +710,9 @@ func TestUpdate(t *testing.T) {
|
||||
_ = iam.TestUserRole(t, conn, r.GetPublicId(), at.GetIamUserId())
|
||||
_ = iam.TestRoleGrant(t, conn, r.GetPublicId(), "id=*;type=*;actions=*")
|
||||
|
||||
ctx := context.Background()
|
||||
repoFn := func(o ...target.Option) (*target.Repository, error) {
|
||||
return target.NewRepository(rw, rw, kms)
|
||||
return target.NewRepository(ctx, rw, rw, kms)
|
||||
}
|
||||
repo, err := repoFn()
|
||||
require.NoError(t, err, "Couldn't create new target repo.")
|
||||
@@ -729,7 +730,6 @@ func TestUpdate(t *testing.T) {
|
||||
{Id: hs[1].GetPublicId(), HostCatalogId: hs[1].GetCatalogId()},
|
||||
}
|
||||
|
||||
ctx := context.Background()
|
||||
ttar, err := target.New(ctx, tcp.Subtype, proj.GetPublicId(),
|
||||
target.WithName("default"),
|
||||
target.WithDescription("default"),
|
||||
@@ -1134,13 +1134,13 @@ func TestUpdate_BadVersion(t *testing.T) {
|
||||
_ = iam.TestUserRole(t, conn, r.GetPublicId(), at.GetIamUserId())
|
||||
_ = iam.TestRoleGrant(t, conn, r.GetPublicId(), "id=*;type=*;actions=*")
|
||||
|
||||
ctx := context.Background()
|
||||
repoFn := func(o ...target.Option) (*target.Repository, error) {
|
||||
return target.NewRepository(rw, rw, kms)
|
||||
return target.NewRepository(ctx, rw, rw, kms)
|
||||
}
|
||||
repo, err := repoFn()
|
||||
require.NoError(t, err, "Couldn't create new target repo.")
|
||||
|
||||
ctx := context.Background()
|
||||
ttar, err := target.New(ctx, tcp.Subtype, proj.GetPublicId(), target.WithName("default"), target.WithDescription("default"))
|
||||
tar := ttar.(*tcp.Target)
|
||||
tar.DefaultPort = 2
|
||||
@@ -2740,7 +2740,7 @@ func TestAuthorizeSession(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
repoFn := func(o ...target.Option) (*target.Repository, error) {
|
||||
return target.NewRepository(rw, rw, kms)
|
||||
return target.NewRepository(ctx, rw, rw, kms)
|
||||
}
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
iamRepoFn := func() (*iam.Repository, error) {
|
||||
@@ -3000,7 +3000,7 @@ func TestAuthorizeSessionTypedCredentials(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
repoFn := func(o ...target.Option) (*target.Repository, error) {
|
||||
return target.NewRepository(rw, rw, kms)
|
||||
return target.NewRepository(ctx, rw, rw, kms)
|
||||
}
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
iamRepoFn := func() (*iam.Repository, error) {
|
||||
@@ -3579,7 +3579,7 @@ func TestAuthorizeSession_Errors(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
repoFn := func(o ...target.Option) (*target.Repository, error) {
|
||||
return target.NewRepository(rw, rw, kms)
|
||||
return target.NewRepository(ctx, rw, rw, kms)
|
||||
}
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
iamRepoFn := func() (*iam.Repository, error) {
|
||||
|
||||
@@ -963,7 +963,7 @@ func TestRepository_CancelSession(t *testing.T) {
|
||||
// is terminated when the one connection is closed.
|
||||
tcpTarget := tcp.TestTarget(ctx, t, conn, proj.PublicId, "test target", target.WithSessionConnectionLimit(1))
|
||||
|
||||
targetRepo, err := target.NewRepository(rw, rw, testKms)
|
||||
targetRepo, err := target.NewRepository(ctx, rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
_, _, _, err = targetRepo.AddTargetHostSources(ctx, tcpTarget.GetPublicId(), tcpTarget.GetVersion(), []string{sets[0].PublicId})
|
||||
require.NoError(t, err)
|
||||
@@ -1491,7 +1491,7 @@ func testSessionCredentialParams(t *testing.T, conn *db.DB, wrapper wrapping.Wra
|
||||
ctx := context.Background()
|
||||
|
||||
kms := kms.TestKms(t, conn, wrapper)
|
||||
targetRepo, err := target.NewRepository(rw, rw, kms)
|
||||
targetRepo, err := target.NewRepository(ctx, rw, rw, kms)
|
||||
require.NoError(err)
|
||||
tar, _, _, err := targetRepo.LookupTarget(ctx, params.TargetId)
|
||||
require.NoError(err)
|
||||
@@ -1530,7 +1530,7 @@ func TestRepository_deleteTargetFKey(t *testing.T) {
|
||||
kms := kms.TestKms(t, conn, wrapper)
|
||||
ctx := context.Background()
|
||||
repo, err := NewRepository(ctx, rw, rw, kms)
|
||||
targetRepo, err := target.NewRepository(rw, rw, kms)
|
||||
targetRepo, err := target.NewRepository(ctx, rw, rw, kms)
|
||||
require.NoError(t, err)
|
||||
|
||||
tests := []struct {
|
||||
|
||||
@@ -90,7 +90,7 @@ func TestService_AuthorizeConnection(t *testing.T) {
|
||||
// is terminated when the one connection is closed.
|
||||
tcpTarget := tcp.TestTarget(ctx, t, conn, proj.PublicId, "test target", target.WithSessionConnectionLimit(1))
|
||||
|
||||
targetRepo, err := target.NewRepository(rw, rw, testKms)
|
||||
targetRepo, err := target.NewRepository(ctx, rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
_, _, _, err = targetRepo.AddTargetHostSources(ctx, tcpTarget.GetPublicId(), tcpTarget.GetVersion(), []string{sets[0].PublicId})
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -51,7 +51,7 @@ func TestServiceCloseConnections(t *testing.T) {
|
||||
// is terminated when the one connection is closed.
|
||||
tcpTarget := tcp.TestTarget(ctx, t, conn, proj.PublicId, "test target", target.WithSessionConnectionLimit(1))
|
||||
|
||||
targetRepo, err := target.NewRepository(rw, rw, testKms)
|
||||
targetRepo, err := target.NewRepository(ctx, rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
_, _, _, err = targetRepo.AddTargetHostSources(ctx, tcpTarget.GetPublicId(), tcpTarget.GetVersion(), []string{sets[0].PublicId})
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -144,7 +144,7 @@ func TestSessionParams(t testing.TB, conn *db.DB, wrapper wrapping.Wrapper, iamR
|
||||
tcpTarget := tcp.TestTarget(ctx, t, conn, proj.PublicId, "test target")
|
||||
|
||||
kms := kms.TestKms(t, conn, wrapper)
|
||||
targetRepo, err := target.NewRepository(rw, rw, kms)
|
||||
targetRepo, err := target.NewRepository(ctx, rw, rw, kms)
|
||||
require.NoError(err)
|
||||
_, _, _, err = targetRepo.AddTargetHostSources(ctx, tcpTarget.GetPublicId(), tcpTarget.GetVersion(), []string{sets[0].PublicId})
|
||||
require.NoError(err)
|
||||
|
||||
@@ -48,16 +48,16 @@ type Repository struct {
|
||||
// - WithLimit: sets a limit on the number of results returned by various repo operations.
|
||||
// - WithPermissions: defines the permissions the user has to perform different
|
||||
// actions and access resources within the created repo object.
|
||||
func NewRepository(r db.Reader, w db.Writer, kms *kms.Kms, opt ...Option) (*Repository, error) {
|
||||
func NewRepository(ctx context.Context, r db.Reader, w db.Writer, kms *kms.Kms, opt ...Option) (*Repository, error) {
|
||||
const op = "target.NewRepository"
|
||||
if r == nil {
|
||||
return nil, errors.NewDeprecated(errors.InvalidParameter, op, "nil reader")
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, "nil reader")
|
||||
}
|
||||
if w == nil {
|
||||
return nil, errors.NewDeprecated(errors.InvalidParameter, op, "nil writer")
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, "nil writer")
|
||||
}
|
||||
if kms == nil {
|
||||
return nil, errors.NewDeprecated(errors.InvalidParameter, op, "nil kms")
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, "nil kms")
|
||||
}
|
||||
|
||||
opts := GetOpts(opt...)
|
||||
@@ -68,7 +68,7 @@ func NewRepository(r db.Reader, w db.Writer, kms *kms.Kms, opt ...Option) (*Repo
|
||||
|
||||
for _, p := range opts.WithPermissions {
|
||||
if p.Resource != resource.Target {
|
||||
return nil, errors.New(context.Background(), errors.InvalidParameter, op, "permission for incorrect resource found")
|
||||
return nil, errors.New(ctx, errors.InvalidParameter, op, "permission for incorrect resource found")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ func TestRepository_SetTargetCredentialSources(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
repo, err := target.NewRepository(context.Background(), rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package target
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"testing"
|
||||
|
||||
@@ -126,7 +127,7 @@ func TestNewRepository(t *testing.T) {
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert, require := assert.New(t), require.New(t)
|
||||
got, err := NewRepository(tt.args.r, tt.args.w, tt.args.kms, tt.args.opts...)
|
||||
got, err := NewRepository(context.Background(), tt.args.r, tt.args.w, tt.args.kms, tt.args.opts...)
|
||||
if tt.wantErr {
|
||||
require.Error(err)
|
||||
assert.Equal(tt.wantErrString, err.Error())
|
||||
|
||||
@@ -158,14 +158,15 @@ func TestTargetHostSet_ImmutableFields(t *testing.T) {
|
||||
conn, _ := db.TestSetup(t, "postgres")
|
||||
wrapper := db.TestWrapper(t)
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
|
||||
ctx := context.Background()
|
||||
rw := db.New(conn)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
repo, err := target.NewRepository(ctx, rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
|
||||
ts := timestamp.Timestamp{Timestamp: ×tamppb.Timestamp{Seconds: 0, Nanos: 0}}
|
||||
|
||||
_, proj := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
ctx := context.Background()
|
||||
projTarget := tcp.TestTarget(ctx, t, conn, proj.PublicId, tcp.TestId(t))
|
||||
testCats := static.TestCatalogs(t, conn, proj.PublicId, 1)
|
||||
hsets := static.TestSets(t, conn, testCats[0].GetPublicId(), 2)
|
||||
|
||||
@@ -29,7 +29,7 @@ func TestRepository_AddTargetCredentialSources(t *testing.T) {
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
_, staticProj := iam.TestScopes(t, iamRepo)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
repo, err := target.NewRepository(context.Background(), rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
|
||||
csVault := vault.TestCredentialStores(t, conn, wrapper, staticProj.GetPublicId(), 1)[0]
|
||||
@@ -336,7 +336,7 @@ func TestRepository_DeleteTargetCredentialSources(t *testing.T) {
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
_, proj := iam.TestScopes(t, iamRepo)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
repo, err := target.NewRepository(context.Background(), rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
|
||||
type args struct {
|
||||
@@ -563,7 +563,7 @@ func TestRepository_SetTargetCredentialSources(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
repo, err := target.NewRepository(context.Background(), rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
|
||||
@@ -34,7 +34,7 @@ func TestRepository_AddTargetHostSets(t *testing.T) {
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
_, staticProj := iam.TestScopes(t, iamRepo)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
repo, err := target.NewRepository(context.Background(), rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
|
||||
createHostSetsFn := func(projects []string) []string {
|
||||
@@ -199,10 +199,10 @@ func TestRepository_DeleteTargetHosts(t *testing.T) {
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
_, proj := iam.TestScopes(t, iamRepo)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
|
||||
ctx := context.Background()
|
||||
repo, err := target.NewRepository(ctx, rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
|
||||
type args struct {
|
||||
target target.Target
|
||||
@@ -404,7 +404,9 @@ func TestRepository_SetTargetHostSets(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
|
||||
ctx := context.Background()
|
||||
repo, err := target.NewRepository(ctx, rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
@@ -427,8 +429,6 @@ func TestRepository_SetTargetHostSets(t *testing.T) {
|
||||
return results
|
||||
}
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
setupFn := func(target target.Target) []target.HostSource {
|
||||
hs := createHostSetsFn()
|
||||
_, created, _, err := repo.AddTargetHostSources(context.Background(), target.GetPublicId(), 1, hs)
|
||||
|
||||
@@ -28,7 +28,9 @@ func TestRepository_CreateTarget(t *testing.T) {
|
||||
rw := db.New(conn)
|
||||
wrapper := db.TestWrapper(t)
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
|
||||
ctx := context.Background()
|
||||
repo, err := target.NewRepository(ctx, rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
_, proj := iam.TestScopes(t, iam.TestRepo(t, conn, wrapper))
|
||||
|
||||
@@ -38,8 +40,6 @@ func TestRepository_CreateTarget(t *testing.T) {
|
||||
cs := vault.TestCredentialStores(t, conn, wrapper, proj.GetPublicId(), 1)[0]
|
||||
vault.TestCredentialLibraries(t, conn, wrapper, cs.GetPublicId(), 2)
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
type args struct {
|
||||
target target.Target
|
||||
opt []target.Option
|
||||
@@ -165,7 +165,7 @@ func TestRepository_UpdateTcpTarget(t *testing.T) {
|
||||
wrapper := db.TestWrapper(t)
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
repo, err := target.NewRepository(context.Background(), rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
id := tcp.TestId(t)
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ func TestRepository_LookupTarget(t *testing.T) {
|
||||
_, _, err := iamRepo.UpdateScope(ctx, proj, 1, []string{"name"})
|
||||
require.NoError(t, err)
|
||||
rw := db.New(conn)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
repo, err := target.NewRepository(ctx, rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
tgt := tcp.TestTarget(ctx, t, conn, proj.PublicId, "target-name")
|
||||
|
||||
@@ -160,7 +160,7 @@ func TestRepository_ListRoles_Multiple_Scopes(t *testing.T) {
|
||||
}
|
||||
|
||||
rw := db.New(conn)
|
||||
repo, err := target.NewRepository(rw, rw, testKms,
|
||||
repo, err := target.NewRepository(ctx, rw, rw, testKms,
|
||||
target.WithPermissions([]perms.Permission{
|
||||
{
|
||||
ScopeId: proj1.PublicId,
|
||||
@@ -191,10 +191,11 @@ func TestRepository_DeleteTarget(t *testing.T) {
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
_, proj := iam.TestScopes(t, iamRepo)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
|
||||
ctx := context.Background()
|
||||
repo, err := target.NewRepository(ctx, rw, rw, testKms)
|
||||
require.NoError(t, err)
|
||||
|
||||
type args struct {
|
||||
target target.Target
|
||||
opt []target.Option
|
||||
|
||||
@@ -23,9 +23,10 @@ func Test_TestTcpTarget(t *testing.T) {
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
_, proj := iam.TestScopes(t, iamRepo)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
require.NoError(err)
|
||||
|
||||
ctx := context.Background()
|
||||
repo, err := target.NewRepository(ctx, rw, rw, testKms)
|
||||
require.NoError(err)
|
||||
|
||||
cats := static.TestCatalogs(t, conn, proj.PublicId, 1)
|
||||
hsets := static.TestSets(t, conn, cats[0].GetPublicId(), 2)
|
||||
@@ -56,9 +57,10 @@ func Test_TestCredentialLibrary(t *testing.T) {
|
||||
testKms := kms.TestKms(t, conn, wrapper)
|
||||
iamRepo := iam.TestRepo(t, conn, wrapper)
|
||||
_, proj := iam.TestScopes(t, iamRepo)
|
||||
repo, err := target.NewRepository(rw, rw, testKms)
|
||||
require.NoError(err)
|
||||
|
||||
ctx := context.Background()
|
||||
repo, err := target.NewRepository(ctx, rw, rw, testKms)
|
||||
require.NoError(err)
|
||||
|
||||
tar := tcp.TestTarget(ctx, t, conn, proj.PublicId, t.Name())
|
||||
store := vault.TestCredentialStores(t, conn, wrapper, proj.GetPublicId(), 1)[0]
|
||||
|
||||
Reference in new issue
Block a user