Skip to content

Commit d21a5fb

Browse files
authored
Split identity package into smaller ones (#948)
1 parent 8bb09ac commit d21a5fb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+245
-237
lines changed

identity/acceptance/instance_profile_test.go renamed to aws/acceptance/instance_profile_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package acceptance
33
import (
44
"context"
55

6+
"github.com/databrickslabs/terraform-provider-databricks/aws"
67
"github.com/databrickslabs/terraform-provider-databricks/common"
7-
"github.com/databrickslabs/terraform-provider-databricks/identity"
88
"github.com/databrickslabs/terraform-provider-databricks/internal/acceptance"
99
"github.com/databrickslabs/terraform-provider-databricks/qa"
1010

@@ -19,7 +19,7 @@ func TestAwsAccGroupInstanceProfileResource(t *testing.T) {
1919
ctx := context.WithValue(context.Background(), common.Current, t.Name())
2020
client := common.CommonEnvironmentClient()
2121
arn := qa.GetEnvOrSkipTest(t, "TEST_EC2_INSTANCE_PROFILE")
22-
instanceProfilesAPI := identity.NewInstanceProfilesAPI(ctx, client)
22+
instanceProfilesAPI := aws.NewInstanceProfilesAPI(ctx, client)
2323
instanceProfilesAPI.Synchronized(arn, func() bool {
2424
if instanceProfilesAPI.IsRegistered(arn) {
2525
return false

access/data_aws_policies.go renamed to aws/data_aws_policies.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package access
1+
package aws
22

33
import (
44
"context"

access/data_aws_policies_test.go renamed to aws/data_aws_policies_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package access
1+
package aws
22

33
import (
44
"testing"

identity/resource_group_instance_profile.go renamed to aws/resource_group_instance_profile.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
package identity
1+
package aws
22

33
import (
44
"context"
55
"fmt"
66

77
"github.com/databrickslabs/terraform-provider-databricks/common"
8+
"github.com/databrickslabs/terraform-provider-databricks/scim"
89

910
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1011
)
@@ -17,18 +18,18 @@ func ResourceGroupInstanceProfile() *schema.Resource {
1718
return m
1819
}).BindResource(common.BindResource{
1920
ReadContext: func(ctx context.Context, groupID, roleARN string, c *common.DatabricksClient) error {
20-
group, err := NewGroupsAPI(ctx, c).Read(groupID)
21-
hasRole := complexValues(group.Roles).HasValue(roleARN)
21+
group, err := scim.NewGroupsAPI(ctx, c).Read(groupID)
22+
hasRole := scim.ComplexValues(group.Roles).HasValue(roleARN)
2223
if err == nil && !hasRole {
2324
return common.NotFound("Group has no instance profile")
2425
}
2526
return err
2627
},
2728
CreateContext: func(ctx context.Context, groupID, roleARN string, c *common.DatabricksClient) error {
28-
return NewGroupsAPI(ctx, c).Patch(groupID, scimPatchRequest("add", "roles", roleARN))
29+
return scim.NewGroupsAPI(ctx, c).Patch(groupID, scim.PatchRequest("add", "roles", roleARN))
2930
},
3031
DeleteContext: func(ctx context.Context, groupID, roleARN string, c *common.DatabricksClient) error {
31-
return NewGroupsAPI(ctx, c).Patch(groupID, scimPatchRequest(
32+
return scim.NewGroupsAPI(ctx, c).Patch(groupID, scim.PatchRequest(
3233
"remove", fmt.Sprintf(`roles[value eq "%s"]`, roleARN), ""))
3334
},
3435
})

identity/resource_group_instance_profile_test.go renamed to aws/resource_group_instance_profile_test.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
package identity
1+
package aws
22

33
import (
44
"testing"
55

66
"github.com/databrickslabs/terraform-provider-databricks/common"
7+
"github.com/databrickslabs/terraform-provider-databricks/scim"
78

89
"github.com/databrickslabs/terraform-provider-databricks/qa"
910
"github.com/stretchr/testify/assert"
@@ -15,21 +16,21 @@ func TestResourceGroupInstanceProfileCreate(t *testing.T) {
1516
{
1617
Method: "PATCH",
1718
Resource: "/api/2.0/preview/scim/v2/Groups/abc",
18-
ExpectedRequest: scimPatchRequest(
19+
ExpectedRequest: scim.PatchRequest(
1920
"add",
2021
"roles",
2122
"arn:aws:iam::999999999999:instance-profile/my-fake-instance-profile"),
22-
Response: ScimGroup{
23+
Response: scim.Group{
2324
ID: "abc",
2425
},
2526
},
2627
{
2728
Method: "GET",
2829
Resource: "/api/2.0/preview/scim/v2/Groups/abc",
29-
Response: ScimGroup{
30-
Schemas: []URN{"urn:ietf:params:scim:schemas:core:2.0:Group"},
30+
Response: scim.Group{
31+
Schemas: []scim.URN{"urn:ietf:params:scim:schemas:core:2.0:Group"},
3132
DisplayName: "Data Scientists",
32-
Roles: []ComplexValue{
33+
Roles: []scim.ComplexValue{
3334
{
3435
Value: "arn:aws:iam::999999999999:instance-profile/my-fake-instance-profile",
3536
},
@@ -125,10 +126,10 @@ func TestResourceGroupInstanceProfileRead(t *testing.T) {
125126
{
126127
Method: "GET",
127128
Resource: "/api/2.0/preview/scim/v2/Groups/abc",
128-
Response: ScimGroup{
129-
Schemas: []URN{"urn:ietf:params:scim:schemas:core:2.0:Group"},
129+
Response: scim.Group{
130+
Schemas: []scim.URN{"urn:ietf:params:scim:schemas:core:2.0:Group"},
130131
DisplayName: "Data Scientists",
131-
Roles: []ComplexValue{
132+
Roles: []scim.ComplexValue{
132133
{
133134
Value: "arn:aws:iam::999999999999:instance-profile/my-fake-instance-profile",
134135
},
@@ -171,8 +172,8 @@ func TestResourceGroupInstanceProfileRead_NotFound_Role(t *testing.T) {
171172
{
172173
Method: "GET",
173174
Resource: "/api/2.0/preview/scim/v2/Groups/abc",
174-
Response: ScimGroup{
175-
Schemas: []URN{"urn:ietf:params:scim:schemas:core:2.0:Group"},
175+
Response: scim.Group{
176+
Schemas: []scim.URN{"urn:ietf:params:scim:schemas:core:2.0:Group"},
176177
DisplayName: "Data Scientists",
177178
ID: "abc",
178179
},
@@ -212,7 +213,7 @@ func TestResourceGroupInstanceProfileDelete(t *testing.T) {
212213
{
213214
Method: "PATCH",
214215
Resource: "/api/2.0/preview/scim/v2/Groups/abc",
215-
ExpectedRequest: scimPatchRequest(
216+
ExpectedRequest: scim.PatchRequest(
216217
"remove",
217218
`roles[value eq "arn:aws:iam::999999999999:instance-profile/my-fake-instance-profile"]`,
218219
""),

identity/resource_instance_profile.go renamed to aws/resource_instance_profile.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package identity
1+
package aws
22

33
import (
44
"context"

identity/resource_instance_profile_test.go renamed to aws/resource_instance_profile_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package identity
1+
package aws
22

33
import (
44
"context"

identity/resource_user_instance_profile.go renamed to aws/resource_user_instance_profile.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
package identity
1+
package aws
22

33
import (
44
"context"
55
"fmt"
66

77
"github.com/databrickslabs/terraform-provider-databricks/common"
8+
"github.com/databrickslabs/terraform-provider-databricks/scim"
89

910
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1011
)
@@ -17,18 +18,18 @@ func ResourceUserInstanceProfile() *schema.Resource {
1718
return m
1819
}).BindResource(common.BindResource{
1920
CreateContext: func(ctx context.Context, userID, roleARN string, c *common.DatabricksClient) error {
20-
return NewUsersAPI(ctx, c).Patch(userID, scimPatchRequest("add", "roles", roleARN))
21+
return scim.NewUsersAPI(ctx, c).Patch(userID, scim.PatchRequest("add", "roles", roleARN))
2122
},
2223
ReadContext: func(ctx context.Context, userID, roleARN string, c *common.DatabricksClient) error {
23-
user, err := NewUsersAPI(ctx, c).read(userID)
24-
hasRole := complexValues(user.Roles).HasValue(roleARN)
24+
user, err := scim.NewUsersAPI(ctx, c).Read(userID)
25+
hasRole := scim.ComplexValues(user.Roles).HasValue(roleARN)
2526
if err == nil && !hasRole {
2627
return common.NotFound("User has no role")
2728
}
2829
return err
2930
},
3031
DeleteContext: func(ctx context.Context, userID, roleARN string, c *common.DatabricksClient) error {
31-
return NewUsersAPI(ctx, c).Patch(userID, scimPatchRequest(
32+
return scim.NewUsersAPI(ctx, c).Patch(userID, scim.PatchRequest(
3233
"remove", fmt.Sprintf(`roles[value eq "%s"]`, roleARN), ""))
3334
},
3435
})

identity/resource_user_instance_profile_test.go renamed to aws/resource_user_instance_profile_test.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
package identity
1+
package aws
22

33
import (
44
"testing"
55

66
"github.com/databrickslabs/terraform-provider-databricks/common"
7+
"github.com/databrickslabs/terraform-provider-databricks/scim"
78

89
"github.com/databrickslabs/terraform-provider-databricks/qa"
910
"github.com/stretchr/testify/assert"
@@ -15,21 +16,21 @@ func TestResourceUserInstanceProfileCreate(t *testing.T) {
1516
{
1617
Method: "PATCH",
1718
Resource: "/api/2.0/preview/scim/v2/Users/abc",
18-
ExpectedRequest: scimPatchRequest(
19+
ExpectedRequest: scim.PatchRequest(
1920
"add",
2021
"roles",
2122
"arn:aws:iam::999999999999:instance-profile/my-fake-instance-profile"),
22-
Response: ScimUser{
23+
Response: scim.User{
2324
ID: "abc",
2425
},
2526
},
2627
{
2728
Method: "GET",
2829
Resource: "/api/2.0/preview/scim/v2/Users/abc",
29-
Response: ScimUser{
30-
Schemas: []URN{"urn:ietf:params:scim:schemas:core:2.0:User"},
30+
Response: scim.User{
31+
Schemas: []scim.URN{"urn:ietf:params:scim:schemas:core:2.0:User"},
3132
DisplayName: "Data Scientists",
32-
Roles: []ComplexValue{
33+
Roles: []scim.ComplexValue{
3334
{
3435
Value: "arn:aws:iam::999999999999:instance-profile/my-fake-instance-profile",
3536
},
@@ -91,10 +92,10 @@ func TestResourceUserInstanceProfileRead(t *testing.T) {
9192
{
9293
Method: "GET",
9394
Resource: "/api/2.0/preview/scim/v2/Users/abc",
94-
Response: ScimUser{
95-
Schemas: []URN{"urn:ietf:params:scim:schemas:core:2.0:User"},
95+
Response: scim.User{
96+
Schemas: []scim.URN{"urn:ietf:params:scim:schemas:core:2.0:User"},
9697
DisplayName: "Data Scientists",
97-
Roles: []ComplexValue{
98+
Roles: []scim.ComplexValue{
9899
{
99100
Value: "arn:aws:iam::999999999999:instance-profile/my-fake-instance-profile",
100101
},
@@ -117,8 +118,8 @@ func TestResourceUserInstanceProfileRead_NoRole(t *testing.T) {
117118
{
118119
Method: "GET",
119120
Resource: "/api/2.0/preview/scim/v2/Users/abc",
120-
Response: ScimUser{
121-
Schemas: []URN{"urn:ietf:params:scim:schemas:core:2.0:User"},
121+
Response: scim.User{
122+
Schemas: []scim.URN{"urn:ietf:params:scim:schemas:core:2.0:User"},
122123
DisplayName: "Data Scientists",
123124
ID: "abc",
124125
},
@@ -178,7 +179,7 @@ func TestResourceUserInstanceProfileDelete(t *testing.T) {
178179
{
179180
Method: "PATCH",
180181
Resource: "/api/2.0/preview/scim/v2/Users/abc",
181-
ExpectedRequest: scimPatchRequest(
182+
ExpectedRequest: scim.PatchRequest(
182183
"remove",
183184
`roles[value eq "arn:aws:iam::999999999999:instance-profile/my-fake-instance-profile"]`,
184185
""),

exporter/context.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ import (
1414

1515
"github.com/databrickslabs/terraform-provider-databricks/commands"
1616
"github.com/databrickslabs/terraform-provider-databricks/common"
17-
"github.com/databrickslabs/terraform-provider-databricks/identity"
1817
"github.com/databrickslabs/terraform-provider-databricks/provider"
18+
"github.com/databrickslabs/terraform-provider-databricks/scim"
1919

2020
"github.com/hashicorp/hcl/v2"
2121
"github.com/hashicorp/hcl/v2/hclsyntax"
@@ -59,8 +59,8 @@ type importContext struct {
5959
importing map[string]bool
6060
nameFixes []regexFix
6161
hclFixes []regexFix
62-
allUsers []identity.ScimUser
63-
allGroups []identity.ScimGroup
62+
allUsers []scim.User
63+
allGroups []scim.Group
6464
mountMap map[string]mount
6565
variables map[string]string
6666
testEmits map[string]bool
@@ -114,7 +114,7 @@ func newImportContext(c *common.DatabricksClient) *importContext {
114114
},
115115
hclFixes: []regexFix{ // Be careful with that! it may break working code
116116
},
117-
allUsers: []identity.ScimUser{},
117+
allUsers: []scim.User{},
118118
variables: map[string]string{},
119119
}
120120
}
@@ -135,7 +135,7 @@ func (ic *importContext) Run() error {
135135
} else if !info.IsDir() {
136136
return fmt.Errorf("the path %s is not a directory", ic.Directory)
137137
}
138-
usersAPI := identity.NewUsersAPI(ic.Context, ic.Client)
138+
usersAPI := scim.NewUsersAPI(ic.Context, ic.Client)
139139
me, err := usersAPI.Me()
140140
if err != nil {
141141
return err

0 commit comments

Comments
 (0)