Remove the default org (#270)

This commit is contained in:
Jeff Mitchell authored and GitHub committed 2020-08-17 15:38:41 -04:00
1 parent 01059e6ca8
commit 282177afc2
24 files changed
+190 -431

No files matched your search

+13 -8
View File
@@ -8,6 +8,7 @@ import (
"github.com/hashicorp/boundary/api"
"github.com/hashicorp/boundary/api/authmethods"
"github.com/hashicorp/boundary/internal/auth/password"
"github.com/hashicorp/boundary/internal/iam"
"github.com/hashicorp/boundary/internal/servers/controller"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@@ -15,11 +16,9 @@ import (
func TestAccounts_List(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -27,6 +26,9 @@ func TestAccounts_List(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
org := iam.TestOrg(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
accountClient := authmethods.NewAccountsClient(client)
expected, apiErr, err := accountClient.List(tc.Context(), amId)
@@ -76,11 +78,9 @@ func comparableSlice(in []*authmethods.Account) []authmethods.Account {
func TestAccount_Crud(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -88,6 +88,9 @@ func TestAccount_Crud(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
org := iam.TestOrg(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
accountClient := authmethods.NewAccountsClient(client)
checkAccount := func(step string, u *authmethods.Account, apiErr *api.Error, err error, wantedName string, wantedVersion uint32) {
@@ -129,11 +132,9 @@ func TestAccount_Crud(t *testing.T) {
func TestAccount_CustomMethods(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -141,6 +142,9 @@ func TestAccount_CustomMethods(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
org := iam.TestOrg(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
accountClient := authmethods.NewAccountsClient(client)
al, apiErr, err := accountClient.List(tc.Context(), amId)
@@ -165,11 +169,9 @@ func TestAccount_CustomMethods(t *testing.T) {
func TestAccount_Errors(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -177,6 +179,9 @@ func TestAccount_Errors(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
org := iam.TestOrg(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
accountClient := authmethods.NewAccountsClient(client)
u, apiErr, err := accountClient.Create(tc.Context(), amId, authmethods.WithType("password"), authmethods.WithPasswordAccountLoginName("first"))
+9 -25
View File
@@ -7,7 +7,6 @@ import (
"github.com/hashicorp/boundary/api"
"github.com/hashicorp/boundary/api/groups"
"github.com/hashicorp/boundary/api/scopes"
"github.com/hashicorp/boundary/api/users"
"github.com/hashicorp/boundary/internal/iam"
"github.com/hashicorp/boundary/internal/servers/controller"
@@ -17,11 +16,9 @@ import (
func TestGroup_List(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -29,13 +26,10 @@ func TestGroup_List(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
org, proj := iam.TestScopes(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
projClient := client.Clone()
projClient.SetScopeId(proj.Id)
projClient.SetScopeId(proj.GetPublicId())
cases := []struct {
name string
@@ -92,11 +86,9 @@ func comparableSlice(in []*groups.Group) []groups.Group {
func TestGroup_Crud(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -104,13 +96,10 @@ func TestGroup_Crud(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
org, proj := iam.TestScopes(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
projClient := client.Clone()
projClient.SetScopeId(proj.Id)
projClient.SetScopeId(proj.GetPublicId())
checkGroup := func(step string, g *groups.Group, apiErr *api.Error, err error, wantedName string, wantedVersion uint32, expectedUserIds []string) {
require.NoError(err, step)
@@ -189,11 +178,9 @@ func TestGroup_Crud(t *testing.T) {
func TestGroup_Errors(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -201,13 +188,10 @@ func TestGroup_Errors(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
org, proj := iam.TestScopes(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
projClient := client.Clone()
projClient.SetScopeId(proj.Id)
projClient.SetScopeId(proj.GetPublicId())
cases := []struct {
name string
+6 -17
View File
@@ -6,8 +6,8 @@ import (
"github.com/hashicorp/boundary/api"
"github.com/hashicorp/boundary/api/hosts"
"github.com/hashicorp/boundary/api/scopes"
"github.com/hashicorp/boundary/internal/host/static"
"github.com/hashicorp/boundary/internal/iam"
"github.com/hashicorp/boundary/internal/servers/controller"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@@ -15,11 +15,9 @@ import (
func TestCatalogs_Crud(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -27,13 +25,10 @@ func TestCatalogs_Crud(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
org, proj := iam.TestScopes(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
projClient := client.Clone()
projClient.SetScopeId(proj.Id)
projClient.SetScopeId(proj.GetPublicId())
checkCatalog := func(step string, hc *hosts.HostCatalog, apiErr *api.Error, err error, wantedName string, wantVersion uint32) {
require.NoError(err, step)
@@ -75,11 +70,9 @@ func TestCatalogs_Crud(t *testing.T) {
// TODO: Get better coverage for expected errors and error formats.
func TestCatalogs_Errors(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -87,12 +80,8 @@ func TestCatalogs_Errors(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
client.SetScopeId(proj.Id)
_, proj := iam.TestScopes(t, tc.DbConn())
client.SetScopeId(proj.GetPublicId())
pc := hosts.NewHostCatalogsClient(client)
hc, apiErr, err := pc.Create(tc.Context(), hosts.WithType("static"))
+15 -55
View File
@@ -7,9 +7,7 @@ import (
"github.com/hashicorp/boundary/api"
"github.com/hashicorp/boundary/api/groups"
"github.com/hashicorp/boundary/api/internal/strutil"
"github.com/hashicorp/boundary/api/roles"
"github.com/hashicorp/boundary/api/scopes"
"github.com/hashicorp/boundary/api/users"
"github.com/hashicorp/boundary/internal/iam"
"github.com/hashicorp/boundary/internal/servers/controller"
@@ -20,11 +18,9 @@ import (
func TestCustom(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -32,13 +28,10 @@ func TestCustom(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
org, proj := iam.TestScopes(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
projClient := client.Clone()
projClient.SetScopeId(proj.Id)
projClient.SetScopeId(proj.GetPublicId())
cases := []struct {
name string
@@ -138,11 +131,9 @@ func TestCustom(t *testing.T) {
func TestRole_List(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -150,13 +141,10 @@ func TestRole_List(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
org, proj := iam.TestScopes(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
projClient := client.Clone()
projClient.SetScopeId(proj.Id)
projClient.SetScopeId(proj.GetPublicId())
cases := []struct {
name string
@@ -178,13 +166,7 @@ func TestRole_List(t *testing.T) {
p1, apiErr, err := roleClient.List(tc.Context())
require.NoError(err)
assert.Nil(apiErr)
var defaultRoleIds []string
if tt.name == "org" {
require.True(len(p1) == 2)
defaultRoleIds = []string{p1[0].Id, p1[1].Id}
} else {
require.Len(p1, 0)
}
require.Len(p1, 0)
var expected []*roles.Role
for i := 0; i < 10; i++ {
@@ -198,13 +180,7 @@ func TestRole_List(t *testing.T) {
p2, apiErr, err := roleClient.List(tc.Context())
assert.NoError(err)
assert.Nil(apiErr)
var p2ForComparison []*roles.Role
for _, v := range p2 {
if !strutil.StrListContains(defaultRoleIds, v.Id) {
p2ForComparison = append(p2ForComparison, v)
}
}
assert.ElementsMatch(comparableSlice(expected[:1]), comparableSlice(p2ForComparison))
assert.ElementsMatch(comparableSlice(expected[:1]), comparableSlice(p2))
for i := 1; i < 10; i++ {
expected[i], apiErr, err = roleClient.Create(tc.Context(), roles.WithName(expected[i].Name))
@@ -214,13 +190,7 @@ func TestRole_List(t *testing.T) {
p3, apiErr, err := roleClient.List(tc.Context())
require.NoError(err)
assert.Nil(apiErr)
var p3ForComparison []*roles.Role
for _, v := range p3 {
if !strutil.StrListContains(defaultRoleIds, v.Id) {
p3ForComparison = append(p3ForComparison, v)
}
}
assert.ElementsMatch(comparableSlice(expected), comparableSlice(p3ForComparison))
assert.ElementsMatch(comparableSlice(expected), comparableSlice(p3))
})
}
}
@@ -242,11 +212,9 @@ func comparableSlice(in []*roles.Role) []roles.Role {
func TestRole_Crud(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -254,13 +222,10 @@ func TestRole_Crud(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
org, proj := iam.TestScopes(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
projClient := client.Clone()
projClient.SetScopeId(proj.Id)
projClient.SetScopeId(proj.GetPublicId())
cases := []struct {
name string
@@ -320,11 +285,9 @@ func TestRole_Crud(t *testing.T) {
func TestRole_Errors(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -332,13 +295,10 @@ func TestRole_Errors(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
proj, apiErr, err := scopes.NewScopesClient(client).Create(tc.Context(), orgId)
require.NoError(err)
require.Nil(apiErr)
org, proj := iam.TestScopes(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
projClient := client.Clone()
projClient.SetScopeId(proj.Id)
projClient.SetScopeId(proj.GetPublicId())
cases := []struct {
name string
+15 -11
View File
@@ -7,6 +7,7 @@ import (
"github.com/hashicorp/boundary/api"
"github.com/hashicorp/boundary/api/scopes"
"github.com/hashicorp/boundary/internal/iam"
"github.com/hashicorp/boundary/internal/servers/controller"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@@ -14,11 +15,9 @@ import (
func TestProjects_List(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -26,20 +25,23 @@ func TestProjects_List(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
org := iam.TestOrg(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
scps := scopes.NewScopesClient(client)
pl, apiErr, err := scps.List(tc.Context(), orgId)
pl, apiErr, err := scps.List(tc.Context(), org.GetPublicId())
require.NoError(err)
assert.Nil(apiErr)
assert.Empty(pl)
expected := make([]*scopes.Scope, 10)
for i := 0; i < 10; i++ {
expected[i], apiErr, err = scps.Create(tc.Context(), orgId, scopes.WithName(fmt.Sprintf("%d", i)))
expected[i], apiErr, err = scps.Create(tc.Context(), org.GetPublicId(), scopes.WithName(fmt.Sprintf("%d", i)))
require.NoError(err)
assert.Nil(apiErr)
}
pl, apiErr, err = scps.List(tc.Context(), orgId)
pl, apiErr, err = scps.List(tc.Context(), org.GetPublicId())
require.NoError(err)
assert.Nil(apiErr)
assert.ElementsMatch(comparableSlice(expected), comparableSlice(pl))
@@ -62,11 +64,9 @@ func comparableSlice(in []*scopes.Scope) []scopes.Scope {
func TestProjects_Crud(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -74,6 +74,9 @@ func TestProjects_Crud(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
org, _ := iam.TestScopes(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
scps := scopes.NewScopesClient(client)
checkProject := func(step string, s *scopes.Scope, apiErr *api.Error, err error, wantedName string, wantedVersion uint32) {
@@ -88,7 +91,7 @@ func TestProjects_Crud(t *testing.T) {
assert.Equal(wantedVersion, s.Version)
}
s, apiErr, err := scps.Create(tc.Context(), orgId, scopes.WithName("foo"))
s, apiErr, err := scps.Create(tc.Context(), org.GetPublicId(), scopes.WithName("foo"))
checkProject("create", s, apiErr, err, "foo", 1)
s, apiErr, err = scps.Read(tc.Context(), s.Id)
@@ -114,11 +117,9 @@ func TestProjects_Crud(t *testing.T) {
// TODO: Get better coverage for expected errors and error formats.
func TestProject_Errors(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -126,9 +127,12 @@ func TestProject_Errors(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
org, _ := iam.TestScopes(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
scps := scopes.NewScopesClient(client)
createdProj, apiErr, err := scps.Create(tc.Context(), orgId)
createdProj, apiErr, err := scps.Create(tc.Context(), org.GetPublicId())
require.NoError(err)
assert.NotNil(createdProj)
assert.Nil(apiErr)
+6 -6
View File
@@ -15,11 +15,9 @@ import (
func TestUsers_List(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -27,6 +25,8 @@ func TestUsers_List(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
org := iam.TestOrg(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
userClient := users.NewUsersClient(client)
ul, apiErr, err := userClient.List(tc.Context())
@@ -76,11 +76,9 @@ func comparableSlice(in []*users.User) []users.User {
func TestUser_Crud(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -88,6 +86,8 @@ func TestUser_Crud(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
org := iam.TestOrg(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
userClient := users.NewUsersClient(client)
checkUser := func(step string, u *users.User, apiErr *api.Error, err error, wantedName string, wantedVersion uint32) {
@@ -129,11 +129,9 @@ func TestUser_Crud(t *testing.T) {
func TestUser_Errors(t *testing.T) {
assert, require := assert.New(t), require.New(t)
orgId := "o_1234567890"
amId := "paum_1234567890"
tc := controller.NewTestController(t, &controller.TestControllerOpts{
DisableAuthorizationFailures: true,
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: "user",
DefaultPassword: "passpass",
@@ -141,6 +139,8 @@ func TestUser_Errors(t *testing.T) {
defer tc.Shutdown()
client := tc.Client()
org := iam.TestOrg(t, tc.DbConn())
client.SetScopeId(org.GetPublicId())
userClient := users.NewUsersClient(client)
u, apiErr, err := userClient.Create(tc.Context(), users.WithName("first"))
+26 -17
View File
@@ -46,8 +46,9 @@ type Command struct {
flags *FlagSets
flagsOnce sync.Once
flagAddr string
flagScope string
flagAddr string
flagScope string
flagVerbose bool
flagTLSCACert string
flagTLSCAPath string
@@ -168,8 +169,8 @@ func (c *Command) Client() (*api.Client, error) {
c.client.SetMaxRetries(0)
}
tokenName := "default"
if c.client.Token() == "" {
tokenName := "default"
if c.FlagTokenName != "" {
tokenName = c.FlagTokenName
}
@@ -203,10 +204,25 @@ func (c *Command) Client() (*api.Client, error) {
// We do this here so we override the stored token info if it's set above
if c.flagScope != NotSetValue {
c.client.SetScopeId(c.flagScope)
if c.flagFormat == "table" && c.flagVerbose {
if c.flagScope == os.Getenv("BOUNDARY_TOKEN") {
c.UI.Info(fmt.Sprintf("Scope of %q set from BOUNDARY_TOKEN env var", c.flagScope))
} else {
c.UI.Info(fmt.Sprintf("Scope of %q set from -scope command flag", c.flagScope))
}
}
} else if c.client.ScopeId() != "" {
// If it didn't come from env or a flag but isn't empty, it must have come from the token
if c.flagFormat == "table" && c.flagVerbose {
c.UI.Info(fmt.Sprintf("Scope of %q set from saved token with name %q", c.client.ScopeId(), tokenName))
}
}
// At this point if we haven't figured out the scope, default to "global"
if c.client.ScopeId() == "" {
c.client.SetScopeId("global")
if c.flagFormat == "table" && c.flagVerbose {
c.UI.Info(`Scope of "global" set by default`)
}
}
return c.client, nil
@@ -218,7 +234,6 @@ const (
FlagSetNone FlagSetBit = 1 << iota
FlagSetHTTP
FlagSetClient
FlagSetOutputField
FlagSetOutputFormat
)
@@ -334,21 +349,15 @@ func (c *Command) FlagSet(bit FlagSetBit) *FlagSets {
})
}
if bit&(FlagSetOutputField|FlagSetOutputFormat) != 0 {
if bit&FlagSetOutputFormat != 0 {
f := set.NewFlagSet("Output Options")
if bit&FlagSetOutputField != 0 {
f.StringVar(&StringVar{
Name: "field",
Target: &c.flagField,
Default: "",
Completion: complete.PredictAnything,
Usage: "Print only the field with the given name. Specifying " +
"this option will take precedence over other formatting " +
"directives. The result will not have a trailing newline " +
"making it ideal for piping to other processes.",
})
}
f.BoolVar(&BoolVar{
Name: "verbose",
Target: &c.flagVerbose,
Completion: complete.PredictAnything,
Usage: "Turns on some extra verbosity in the command output.",
})
if bit&FlagSetOutputFormat != 0 {
f.StringVar(&StringVar{
+43 -83
View File
@@ -18,6 +18,7 @@ import (
"github.com/hashicorp/boundary/internal/auth/password"
"github.com/hashicorp/boundary/internal/db"
"github.com/hashicorp/boundary/internal/iam"
"github.com/hashicorp/boundary/internal/types/scope"
"github.com/hashicorp/boundary/version"
"github.com/hashicorp/errwrap"
"github.com/hashicorp/go-hclog"
@@ -62,7 +63,6 @@ type Server struct {
Listeners []*ServerListener
DefaultOrgId string
DevAuthMethodId string
DevLoginName string
DevPassword string
@@ -444,52 +444,57 @@ func (b *Server) CreateDevDatabase(dialect string) error {
cancel()
}()
var orgScope *iam.Scope
if b.DefaultOrgId != "" {
orgScope, err = repo.LookupScope(ctx, b.DefaultOrgId)
if err != nil {
return fmt.Errorf("error looking up existing scope with org ID %q: %w", b.DefaultOrgId, err)
}
}
if orgScope == nil {
orgScope, err = iam.NewOrg()
if err != nil {
return fmt.Errorf("error creating new org scope: %w", err)
}
orgScope, err = repo.CreateScope(ctx, orgScope, "", iam.WithPublicId(b.DefaultOrgId))
if err != nil {
return fmt.Errorf("error persisting new org scope: %w", err)
}
if b.DefaultOrgId != "" {
if orgScope.GetPublicId() != b.DefaultOrgId {
return fmt.Errorf("expected org ID %q, got %q after persisting", b.DefaultOrgId, orgScope.GetPublicId())
}
} else {
b.DefaultOrgId = orgScope.GetPublicId()
}
}
ar, err := iam.NewRole(orgScope.PublicId)
// Create the dev auth method
pwRepo, err := password.NewRepository(rw, rw, b.ControllerKMS)
if err != nil {
return fmt.Errorf("error creating in memory role for anon authen: %w", err)
return fmt.Errorf("error creating password repo: %w", err)
}
authenRole, err := repo.CreateRole(ctx, ar, iam.WithDescription("role for authentication by the anonymous user"))
authMethod, err := password.NewAuthMethod(scope.Global.String())
if err != nil {
return fmt.Errorf("error creating role for anon authen: %w", err)
return fmt.Errorf("error creating new in memory auth method: %w", err)
}
if _, err := repo.AddRoleGrants(ctx, authenRole.PublicId, authenRole.Version, []string{"type=auth-method;actions=list,authenticate"}); err != nil {
return fmt.Errorf("error creating grant for anon authen: %w", err)
amId := b.DevAuthMethodId
if amId == "" {
amId = "paum_1234567890"
}
if _, err := repo.AddPrincipalRoles(ctx, authenRole.PublicId, authenRole.Version+1, []string{"u_anon"}, nil); err != nil {
return fmt.Errorf("error adding principal to role for anon authen: %w", err)
_, err = pwRepo.CreateAuthMethod(ctx, authMethod, password.WithPublicId(amId))
if err != nil {
return fmt.Errorf("error saving auth method to the db: %w", err)
}
pr, err := iam.NewRole(orgScope.PublicId)
// Create the dev user
acctLoginName := b.DevLoginName
if acctLoginName == "" {
acctLoginName, err = base62.Random(10)
if err != nil {
return fmt.Errorf("unable to generate dev login name: %w", err)
}
acctLoginName = strings.ToLower(acctLoginName)
}
pw := b.DevPassword
if pw == "" {
pw, err = base62.Random(20)
if err != nil {
return fmt.Errorf("unable to generate dev password: %w", err)
}
}
acct, err := password.NewAccount(amId, password.WithLoginName(acctLoginName))
if err != nil {
return fmt.Errorf("error creating new in memory auth account: %w", err)
}
acct, err = pwRepo.CreateAccount(ctx, acct, password.WithPassword(pw))
if err != nil {
return fmt.Errorf("error saving auth account to the db: %w", err)
}
// Create a role tying them together
pr, err := iam.NewRole(scope.Global.String())
if err != nil {
return fmt.Errorf("error creating in memory role for default dev grants: %w", err)
}
defPermsRole, err := repo.CreateRole(ctx, pr, iam.WithDescription("role for admin grants to authenticated users"))
pr.Name = "Dev Mode Global Scope Admin Role"
pr.Description = `Provides admin grants to all authenticated users within the "global" scope`
defPermsRole, err := repo.CreateRole(ctx, pr)
if err != nil {
return fmt.Errorf("error creating role for default dev grants: %w", err)
}
@@ -500,52 +505,7 @@ func (b *Server) CreateDevDatabase(dialect string) error {
return fmt.Errorf("error adding principal to role for default dev grants: %w", err)
}
pwRepo, err := password.NewRepository(rw, rw, b.ControllerKMS)
if err != nil {
return fmt.Errorf("error creating password repo: %w", err)
}
authMethod, err := password.NewAuthMethod(orgScope.GetPublicId())
if err != nil {
return fmt.Errorf("error creating new in memory auth method: %w", err)
}
amId := b.DevAuthMethodId
if amId == "" {
amId = "paum_1234567890"
}
_, err = pwRepo.CreateAuthMethod(ctx, authMethod, password.WithPublicId(amId))
if err != nil {
return fmt.Errorf("error saving auth method to the db: %w", err)
}
acctLoginName := b.DevLoginName
if acctLoginName == "" {
acctLoginName, err = base62.Random(10)
if err != nil {
return fmt.Errorf("unable to generate dev login name: %w", err)
}
acctLoginName = strings.ToLower(acctLoginName)
}
pw := b.DevPassword
if pw == "" {
pw, err = base62.Random(20)
if err != nil {
return fmt.Errorf("unable to generate dev password: %w", err)
}
}
acct, err := password.NewAccount(amId, password.WithLoginName(acctLoginName))
if err != nil {
return fmt.Errorf("error creating new in memory auth account: %w", err)
}
acct, err = pwRepo.CreateAccount(ctx, acct, password.WithPassword(pw))
if err != nil {
return fmt.Errorf("error saving auth account to the db: %w", err)
}
b.InfoKeys = append(b.InfoKeys, "dev org id", "dev auth method id", "dev login name", "dev password")
b.Info["dev org id"] = b.DefaultOrgId
b.InfoKeys = append(b.InfoKeys, "dev auth method id", "dev login name", "dev password")
b.Info["dev auth method id"] = amId
b.Info["dev login name"] = acct.GetLoginName()
b.Info["dev password"] = pw
@@ -363,9 +363,6 @@ func (c *Command) ParseFlagsAndConfig(args []string) int {
return 1
}
if c.flagDevOrgId != "" {
c.Config.DefaultOrgId = c.flagDevOrgId
}
if c.flagDevAuthMethodId != "" {
prefix := password.AuthMethodPrefix + "_"
if !strings.HasPrefix(c.flagDevAuthMethodId, prefix) {
@@ -405,18 +402,6 @@ func (c *Command) ParseFlagsAndConfig(args []string) int {
}
}
if c.Config.DefaultOrgId != "" {
if !strings.HasPrefix(c.Config.DefaultOrgId, "o_") {
c.UI.Error(fmt.Sprintf("Invalid default org ID, must start with %q", "o_"))
return 1
}
if len(c.Config.DefaultOrgId) != 12 {
c.UI.Error(fmt.Sprintf("Invalid default org ID, must be 10 base62 characters after %q", "o_"))
return 1
}
c.DefaultOrgId = c.Config.DefaultOrgId
}
return 0
}
-15
View File
@@ -171,9 +171,6 @@ func (c *Command) Run(args []string) int {
c.UI.Error(fmt.Errorf("Error creating controller dev config: %w", err).Error())
return 1
}
if c.flagDevOrgId != "" {
devConfig.DefaultOrgId = c.flagDevOrgId
}
if c.flagDevAuthMethodId != "" {
prefix := password.AuthMethodPrefix + "_"
if !strings.HasPrefix(c.flagDevAuthMethodId, prefix) {
@@ -212,18 +209,6 @@ func (c *Command) Run(args []string) int {
}
}
if devConfig.DefaultOrgId != "" {
if !strings.HasPrefix(devConfig.DefaultOrgId, "o_") {
c.UI.Error(fmt.Sprintf("Invalid default org ID, must start with %q", "o_"))
return 1
}
if len(devConfig.DefaultOrgId) != 12 {
c.UI.Error(fmt.Sprintf("Invalid default org ID, must be 10 base62 characters after %q", "o_"))
return 1
}
c.DefaultOrgId = devConfig.DefaultOrgId
}
if err := c.SetupLogging(c.flagLogLevel, c.flagLogFormat, "", ""); err != nil {
c.UI.Error(err.Error())
return 1
-1
View File
@@ -79,7 +79,6 @@ type Config struct {
*configutil.SharedConfig `hcl:"-"`
DevController bool `hcl:"-"`
DefaultOrgId string `hcl:"default_org_id"`
PassthroughDirectory string `hcl:"-"`
Worker *Worker `hcl:"worker"`
Controller *Controller `hcl:"controller"`
+3 -6
View File
@@ -34,7 +34,7 @@ func setupEnv(args []string) (retArgs []string, format string, outputCurlString
break
}
if len(args) == 1 && (arg == "-v" || arg == "-version" || arg == "--version") {
if len(args) == 1 && arg == "-version" {
args = []string{"version"}
break
}
@@ -45,14 +45,11 @@ func setupEnv(args []string) (retArgs []string, format string, outputCurlString
}
// Parse a given flag here, which overrides the env var
if strings.HasPrefix(arg, "--format=") {
format = strings.TrimPrefix(arg, "--format=")
}
if strings.HasPrefix(arg, "-format=") {
format = strings.TrimPrefix(arg, "-format=")
}
// For backwards compat, it could be specified without an equal sign
if arg == "-format" || arg == "--format" {
// Handle the case where it is specified without an equal sign
if arg == "-format" {
nextArgFormat = true
}
}
-14
View File
@@ -285,20 +285,6 @@ returning public_id;
assert.Equal(3, v)
}
func TestDomain_DisallowDefaultRoleModification(t *testing.T) {
conn, _ := TestSetup(t, "postgres")
db := conn.DB()
_, err := db.Exec(`delete from iam_role where public_id = $1`, "r_default")
require.Error(t, err)
assert.Equal(t, `pq: deletion of default role not allowed`, err.Error())
// This actually tests not just default, but all roles
_, err = db.Exec(`update iam_role set public_id = $1 where public_id = $2`, "r_something", "r_default")
require.Error(t, err)
assert.Equal(t, `pq: immutable column: iam_role.public_id`, err.Error())
}
func TestDomain_DefaultUsersExist(t *testing.T) {
conn, _ := TestSetup(t, "postgres")
db := conn.DB()
+6 -27
View File
@@ -923,26 +923,6 @@ before
insert or update on iam_role
for each row execute procedure grant_scope_id_valid();
-- disallow_default_role_deletion prevents the default role (r_default) from
-- being deleted
create or replace function
disallow_default_role_deletion()
returns trigger
as $$
begin
if old.public_id = 'r_default' then
raise exception 'deletion of default role not allowed';
end if;
return old;
end;
$$ language plpgsql;
create trigger
disallow_default_role_deletion
before
delete on iam_role
for each row execute procedure disallow_default_role_deletion();
-- define the immutable fields for iam_role (started trigger name with "a_" so
-- it will run first)
create trigger
@@ -951,12 +931,6 @@ before
update on iam_role
for each row execute procedure immutable_columns('public_id', 'create_time', 'scope_id');
insert into iam_role (public_id, name, description, scope_id)
values('r_default', 'default', 'default role', 'global');
insert into iam_role_grant (role_id, canonical_grant, raw_grant)
values('r_default', 'type=scope;actions=list', 'type=scope;actions=list');
create table iam_group (
public_id wt_public_id not null primary key,
create_time wt_timestamp,
@@ -1043,12 +1017,17 @@ begin
end;
$$ language plpgsql;
insert into iam_role (public_id, name, description, scope_id)
values('r_default', 'default', 'Default role created on first instantiation of Boundary. It is meant to provide enough permissions for users to successfully authenticate via various clients types.', 'global');
insert into iam_role_grant (role_id, canonical_grant, raw_grant)
values
('r_default', 'type=scope;actions=list', 'type=scope;actions=list'),
('r_default', 'type=auth-method;actions=authenticate,list', 'type=auth-method;actions=authenticate');
insert into iam_user_role (role_id, principal_id)
values
('r_default', 'u_anon'),
('r_default', 'u_auth');
-- iam_principle_role provides a consolidated view all principal roles assigned
-- (user and group roles).
create view iam_principal_role as
+6 -27
View File
@@ -417,26 +417,6 @@ before
insert or update on iam_role
for each row execute procedure grant_scope_id_valid();
-- disallow_default_role_deletion prevents the default role (r_default) from
-- being deleted
create or replace function
disallow_default_role_deletion()
returns trigger
as $$
begin
if old.public_id = 'r_default' then
raise exception 'deletion of default role not allowed';
end if;
return old;
end;
$$ language plpgsql;
create trigger
disallow_default_role_deletion
before
delete on iam_role
for each row execute procedure disallow_default_role_deletion();
-- define the immutable fields for iam_role (started trigger name with "a_" so
-- it will run first)
create trigger
@@ -445,12 +425,6 @@ before
update on iam_role
for each row execute procedure immutable_columns('public_id', 'create_time', 'scope_id');
insert into iam_role (public_id, name, description, scope_id)
values('r_default', 'default', 'default role', 'global');
insert into iam_role_grant (role_id, canonical_grant, raw_grant)
values('r_default', 'type=scope;actions=list', 'type=scope;actions=list');
create table iam_group (
public_id wt_public_id not null primary key,
create_time wt_timestamp,
@@ -537,12 +511,17 @@ begin
end;
$$ language plpgsql;
insert into iam_role (public_id, name, description, scope_id)
values('r_default', 'default', 'Default role created on first instantiation of Boundary. It is meant to provide enough permissions for users to successfully authenticate via various clients types.', 'global');
insert into iam_role_grant (role_id, canonical_grant, raw_grant)
values
('r_default', 'type=scope;actions=list', 'type=scope;actions=list'),
('r_default', 'type=auth-method;actions=authenticate,list', 'type=auth-method;actions=authenticate');
insert into iam_user_role (role_id, principal_id)
values
('r_default', 'u_anon'),
('r_default', 'u_auth');
-- iam_principle_role provides a consolidated view all principal roles assigned
-- (user and group roles).
create view iam_principal_role as
+18
View File
@@ -39,6 +39,24 @@ func TestScopes(t *testing.T, conn *gorm.DB) (org *Scope, prj *Scope) {
return
}
func TestOrg(t *testing.T, conn *gorm.DB) (org *Scope) {
t.Helper()
require := require.New(t)
rw := db.New(conn)
wrapper := db.TestWrapper(t)
repo, err := NewRepository(rw, rw, wrapper)
require.NoError(err)
org, err = NewOrg()
require.NoError(err)
org, err = repo.CreateScope(context.Background(), org, "")
require.NoError(err)
require.NotNil(org)
require.NotEmpty(org.GetPublicId())
return
}
func testOrg(t *testing.T, conn *gorm.DB, name, description string) (org *Scope) {
t.Helper()
require := require.New(t)
+4 -3
View File
@@ -10,6 +10,7 @@ import (
"github.com/stretchr/testify/require"
"github.com/hashicorp/boundary/internal/cmd/config"
"github.com/hashicorp/boundary/internal/iam"
"github.com/hashicorp/go-retryablehttp"
)
@@ -69,11 +70,12 @@ func TestHandler_CORS(t *testing.T) {
}
tc := NewTestController(t, &TestControllerOpts{
Config: cfg,
DefaultOrgId: "o_1234567890",
DisableAuthorizationFailures: true,
})
defer tc.Shutdown()
org := iam.TestOrg(t, tc.DbConn())
cases := []struct {
name string
method string
@@ -183,7 +185,6 @@ func TestHandler_CORS(t *testing.T) {
client := tc.Client()
err := client.SetAddr(tc.ApiAddrs()[c.listenerNum-1])
require.NoError(t, err)
client.SetScopeId("o_1234567890")
client.SetToken("fo_o_bar")
// Create the request
@@ -193,7 +194,7 @@ func TestHandler_CORS(t *testing.T) {
var body interface{}
scopeId := "global"
if c.provideScopeId {
scopeId = "o_1234567890"
scopeId = org.GetPublicId()
if c.method == http.MethodPost {
body = map[string]interface{}{}
}
+4 -2
View File
@@ -8,20 +8,22 @@ import (
"strings"
"testing"
"github.com/hashicorp/boundary/internal/iam"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestAuthenticationHandler(t *testing.T) {
c := NewTestController(t, &TestControllerOpts{
DefaultOrgId: "o_1234567890",
DisableAuthorizationFailures: true,
DefaultLoginName: "admin",
DefaultPassword: "password123",
})
defer c.Shutdown()
resp, err := http.Post(fmt.Sprintf("%s/v1/scopes/o_1234567890/auth-methods/paum_1234567890:authenticate", c.ApiAddrs()[0]), "application/json",
org := iam.TestOrg(t, c.DbConn())
resp, err := http.Post(fmt.Sprintf("%s/v1/scopes/%s/auth-methods/paum_1234567890:authenticate", c.ApiAddrs()[0], org.GetPublicId()), "application/json",
strings.NewReader(`{"token_type": null, "credentials": {"login_name":"admin", "password": "password123"}}`))
require.NoError(t, err)
assert.Equal(t, http.StatusOK, resp.StatusCode, "Got response: %v", resp)
+1 -13
View File
@@ -21,18 +21,6 @@ func handleUiWithAssets(c *Controller) http.Handler {
nextHandler = http.FileServer(ui.AssetFile())
}
rootHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path {
case "/":
irw := newIndexResponseWriter(c.conf.DefaultOrgId)
nextHandler.ServeHTTP(irw, r)
irw.writeToWriter(w)
default:
nextHandler.ServeHTTP(w, r)
}
})
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodGet {
w.WriteHeader(http.StatusMethodNotAllowed)
@@ -66,6 +54,6 @@ func handleUiWithAssets(c *Controller) http.Handler {
}
// Fall through to the next handler
rootHandler.ServeHTTP(w, r)
nextHandler.ServeHTTP(w, r)
})
}
@@ -1,50 +0,0 @@
package controller
import (
"bytes"
"fmt"
"net/http"
"strings"
)
const magicValue = `{{DEFAULT_ORG_ID}}`
type indexResponseWriter struct {
statusCode int
header http.Header
body *bytes.Buffer
defaultOrgId string
}
// newindexResponseWriter returns an initialized indexResponseWriter
func newIndexResponseWriter(defaultOrgId string) *indexResponseWriter {
return &indexResponseWriter{
header: make(http.Header),
body: new(bytes.Buffer),
defaultOrgId: defaultOrgId,
}
}
func (i *indexResponseWriter) Header() http.Header {
return i.header
}
func (i *indexResponseWriter) Write(buf []byte) (int, error) {
return i.body.Write(buf)
}
func (i *indexResponseWriter) WriteHeader(code int) {
i.statusCode = code
}
func (i *indexResponseWriter) writeToWriter(w http.ResponseWriter) {
for k, v := range i.header {
for _, h := range v {
w.Header().Add(k, h)
}
}
newBody := []byte(strings.Replace(i.body.String(), magicValue, i.defaultOrgId, 1))
w.Header().Set("content-length", fmt.Sprintf("%d", len(newBody)))
w.WriteHeader(i.statusCode)
w.Write(newBody)
}
+6 -6
View File
@@ -7,6 +7,7 @@ import (
"github.com/hashicorp/boundary/api/authmethods"
"github.com/hashicorp/boundary/api/scopes"
"github.com/hashicorp/boundary/internal/servers/controller"
"github.com/hashicorp/boundary/internal/types/scope"
"github.com/hashicorp/go-hclog"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@@ -17,13 +18,11 @@ func TestAuthenticationMulti(t *testing.T) {
amId := "paum_1234567890"
user := "user"
password := "passpass"
orgId := "o_1234567890"
logger := hclog.New(&hclog.LoggerOptions{
Level: hclog.Trace,
})
c1 := controller.NewTestController(t, &controller.TestControllerOpts{
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: user,
DefaultPassword: password,
@@ -52,16 +51,17 @@ func TestAuthenticationMulti(t *testing.T) {
assert.NotEqual(token1.Token, token2.Token)
c1.Client().SetToken(token1.Token)
c1.Client().SetScopeId(scope.Global.String())
c2.Client().SetToken(token1.Token) // Same token, as it should work on both
c2.Client().SetScopeId(scope.Global.String())
// Create a project, read from the other
proj, apiErr, err := scopes.NewScopesClient(c1.Client()).Create(c1.Context(), orgId)
org, apiErr, err := scopes.NewScopesClient(c1.Client()).Create(c1.Context(), scope.Global.String())
require.NoError(err)
require.Nil(apiErr)
require.NotNil(proj)
projId := proj.Id
require.NotNil(org)
proj, apiErr, err = scopes.NewScopesClient(c2.Client()).Read(c2.Context(), projId)
proj, apiErr, err := scopes.NewScopesClient(c2.Client()).Read(c2.Context(), org.Id)
require.NoError(err)
require.Nil(apiErr)
require.NotNil(proj)
+9 -15
View File
@@ -12,6 +12,7 @@ import (
"github.com/hashicorp/go-hclog"
wrapping "github.com/hashicorp/go-kms-wrapping"
"github.com/hashicorp/vault/sdk/helper/base62"
"github.com/jinzhu/gorm"
)
// TestController wraps a base.Server and Controller to provide a
@@ -62,6 +63,10 @@ func (tc *TestController) ClusterAddrs() []string {
return tc.addrs("cluster")
}
func (tc *TestController) DbConn() *gorm.DB {
return tc.b.Database
}
func (tc *TestController) addrs(purpose string) []string {
var prefix string
switch purpose {
@@ -110,9 +115,10 @@ func (tc *TestController) buildClient() {
if err := client.SetAddr(apiAddrs[0]); err != nil {
tc.t.Fatal(fmt.Errorf("error setting client address: %w", err))
}
if tc.b.DefaultOrgId != "" {
client.SetScopeId(tc.b.DefaultOrgId)
}
// Because this is using the real lib it can pick up from stored locations
// like the system keychain. Explicitly clear the token to ensure we
// understand the client state at the start of each test.
client.SetToken("")
tc.client = client
}
@@ -147,10 +153,6 @@ type TestControllerOpts struct {
// Config; if not provided a dev one will be created
Config *config.Config
// DefaultOrgId is the default org ID to use, if set. Can also be provided
// in the normal config.
DefaultOrgId string
// DefaultAuthMethodId is the default auth method ID to use, if set.
DefaultAuthMethodId string
@@ -219,13 +221,6 @@ func NewTestController(t *testing.T, opts *TestControllerOpts) *TestController {
opts.Config.Controller.Name = opts.Name
}
// Set default org ID, preferring one passed in from opts over config
if opts.Config.DefaultOrgId != "" {
tc.b.DefaultOrgId = opts.Config.DefaultOrgId
}
if opts.DefaultOrgId != "" {
tc.b.DefaultOrgId = opts.DefaultOrgId
}
if opts.DefaultAuthMethodId != "" {
tc.b.DevAuthMethodId = opts.DefaultAuthMethodId
}
@@ -319,7 +314,6 @@ func (tc *TestController) AddClusterControllerMember(t *testing.T, opts *TestCon
nextOpts := &TestControllerOpts{
DatabaseUrl: tc.c.conf.DatabaseUrl,
DefaultAuthMethodId: tc.c.conf.DevAuthMethodId,
DefaultOrgId: tc.c.conf.DefaultOrgId,
ControllerKMS: tc.c.conf.ControllerKMS,
WorkerAuthKMS: tc.c.conf.WorkerAuthKMS,
Name: opts.Name,
@@ -16,13 +16,11 @@ func TestMultiControllerMultiWorkerConnections(t *testing.T) {
amId := "paum_1234567890"
user := "user"
password := "passpass"
orgId := "o_1234567890"
logger := hclog.New(&hclog.LoggerOptions{
Level: hclog.Trace,
})
c1 := controller.NewTestController(t, &controller.TestControllerOpts{
DefaultOrgId: orgId,
DefaultAuthMethodId: amId,
DefaultLoginName: user,
DefaultPassword: password,
-13
View File
@@ -28,7 +28,6 @@ type option struct {
setWithConfigFile bool
setWithConfigText bool
setDisableDatabaseCreation bool
setDefaultOrgId bool
setDefaultAuthMethodId bool
setDefaultLoginName bool
setDefaultPassword bool
@@ -83,18 +82,6 @@ func DisableDatabaseCreation() Option {
}
}
// WithDefaultOrgId sets the org id to the one provided here.
func WithDefaultOrgId(id string) Option {
return func(c *option) error {
if c.setDefaultOrgId {
return fmt.Errorf("WithDefaultOrgId provided more than once.")
}
c.setDefaultOrgId = true
c.tcOptions.DefaultOrgId = id
return nil
}
}
func WithDefaultAuthMethodId(id string) Option {
return func(c *option) error {
if c.setDefaultAuthMethodId {