This change removes the hard-coded credential purpose for the Credential Libraries. It also moves the logic of creating CredentialLibraries from CredentialSources out of the repository and into the targets.Service. This refactor will allow for additional credential purposes to be supported in both the service and the repository.
62 lines
1.7 KiB
Go
62 lines
1.7 KiB
Go
package tcp
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/boundary/internal/db"
|
|
"github.com/hashicorp/boundary/internal/target"
|
|
"github.com/hashicorp/go-uuid"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
// TestTarget is used to create a Target that can be used by tests in other packages.
|
|
func TestTarget(t *testing.T, conn *db.DB, scopeId, name string, opt ...target.Option) *Target {
|
|
t.Helper()
|
|
opt = append(opt, target.WithName(name))
|
|
opts := target.GetOpts(opt...)
|
|
require := require.New(t)
|
|
rw := db.New(conn)
|
|
tar, err := New(scopeId, opt...)
|
|
require.NoError(err)
|
|
id, err := db.NewPublicId(TargetPrefix)
|
|
require.NoError(err)
|
|
tar.PublicId = id
|
|
err = rw.Create(context.Background(), tar)
|
|
require.NoError(err)
|
|
|
|
if len(opts.WithHostSources) > 0 {
|
|
newHostSets := make([]interface{}, 0, len(opts.WithHostSources))
|
|
for _, s := range opts.WithHostSources {
|
|
hostSet, err := target.NewTargetHostSet(tar.PublicId, s)
|
|
require.NoError(err)
|
|
newHostSets = append(newHostSets, hostSet)
|
|
}
|
|
err := rw.CreateItems(context.Background(), newHostSets)
|
|
require.NoError(err)
|
|
}
|
|
if len(opts.WithCredentialLibraries) > 0 {
|
|
newCredLibs := make([]interface{}, 0, len(opts.WithCredentialLibraries))
|
|
for _, cl := range opts.WithCredentialLibraries {
|
|
cl.TargetId = tar.PublicId
|
|
newCredLibs = append(newCredLibs, cl)
|
|
}
|
|
err := rw.CreateItems(context.Background(), newCredLibs)
|
|
require.NoError(err)
|
|
}
|
|
return tar
|
|
}
|
|
|
|
func testTargetName(t *testing.T, scopeId string) string {
|
|
t.Helper()
|
|
return fmt.Sprintf("%s-%s", scopeId, testId(t))
|
|
}
|
|
|
|
func testId(t *testing.T) string {
|
|
t.Helper()
|
|
id, err := uuid.GenerateUUID()
|
|
require.NoError(t, err)
|
|
return id
|
|
}
|