Skip to content

Commit e519c3c

Browse files
authored
chore: Upgrades teams resource to auto-generated SDK (#1905)
* rename CRUD methods * rename methods for clarity * remove redundant check * initial migratation to new SDK * migrate data source * fix team rename * lint * check error using SDK v2 way * remove unnecessary comments and method * use usernames array variable * use PreCheckAtlasUsername in resource tests * precheck checks atlas user * remove teams parameter in checkExists * refactor check for mig
1 parent 026150c commit e519c3c

File tree

6 files changed

+145
-133
lines changed

6 files changed

+145
-133
lines changed

internal/service/teams/data_source_teams.go

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ import (
1010
"github.com/mongodb/terraform-provider-mongodbatlas/internal/common/conversion"
1111
"github.com/mongodb/terraform-provider-mongodbatlas/internal/config"
1212

13-
matlas "go.mongodb.org/atlas/mongodbatlas"
13+
"go.mongodb.org/atlas-sdk/v20231115005/admin"
1414
)
1515

1616
func DataSource() *schema.Resource {
1717
return &schema.Resource{
18-
ReadContext: dataSourceMongoDBAtlasTeamRead,
18+
ReadContext: dataSourceRead,
1919
Schema: map[string]*schema.Schema{
2020
"org_id": {
2121
Type: schema.TypeString,
@@ -44,48 +44,47 @@ func DataSource() *schema.Resource {
4444
}
4545
}
4646

47-
func dataSourceMongoDBAtlasTeamRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
47+
func dataSourceRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
4848
var (
49-
conn = meta.(*config.MongoDBClient).Atlas
49+
connV2 = meta.(*config.MongoDBClient).AtlasV2
5050
orgID = d.Get("org_id").(string)
5151
teamID, teamIDOk = d.GetOk("team_id")
5252
name, nameOk = d.GetOk("name")
5353

5454
err error
55-
team *matlas.Team
55+
team *admin.TeamResponse
5656
)
5757

5858
if !teamIDOk && !nameOk {
5959
return diag.FromErr(errors.New("either team_id or name must be configured"))
6060
}
6161

6262
if teamIDOk {
63-
team, _, err = conn.Teams.Get(ctx, orgID, teamID.(string))
63+
team, _, err = connV2.TeamsApi.GetTeamById(ctx, orgID, teamID.(string)).Execute()
6464
} else {
65-
team, _, err = conn.Teams.GetOneTeamByName(ctx, orgID, name.(string))
65+
team, _, err = connV2.TeamsApi.GetTeamByName(ctx, orgID, name.(string)).Execute()
6666
}
6767

6868
if err != nil {
6969
return diag.FromErr(fmt.Errorf(errorTeamRead, err))
7070
}
7171

72-
if err := d.Set("team_id", team.ID); err != nil {
72+
if err := d.Set("team_id", team.GetId()); err != nil {
7373
return diag.FromErr(fmt.Errorf(errorTeamSetting, "name", d.Id(), err))
7474
}
7575

76-
if err := d.Set("name", team.Name); err != nil {
76+
if err := d.Set("name", team.GetName()); err != nil {
7777
return diag.FromErr(fmt.Errorf(errorTeamSetting, "name", d.Id(), err))
7878
}
7979

80-
// Set Usernames
81-
users, _, err := conn.Teams.GetTeamUsersAssigned(ctx, orgID, team.ID)
80+
users, _, err := connV2.TeamsApi.ListTeamUsers(ctx, orgID, team.GetId()).Execute()
8281
if err != nil {
8382
return diag.FromErr(fmt.Errorf(errorTeamRead, err))
8483
}
8584

8685
usernames := []string{}
87-
for i := range users {
88-
usernames = append(usernames, users[i].Username)
86+
for i := range users.GetResults() {
87+
usernames = append(usernames, users.GetResults()[i].GetUsername())
8988
}
9089

9190
if err := d.Set("usernames", usernames); err != nil {
@@ -94,7 +93,7 @@ func dataSourceMongoDBAtlasTeamRead(ctx context.Context, d *schema.ResourceData,
9493

9594
d.SetId(conversion.EncodeStateID(map[string]string{
9695
"org_id": orgID,
97-
"id": team.ID,
96+
"id": team.GetId(),
9897
}))
9998

10099
return nil

internal/service/teams/data_source_teams_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ func TestAccConfigDSTeam_basic(t *testing.T) {
1919
)
2020

2121
resource.ParallelTest(t, resource.TestCase{
22-
PreCheck: func() { acc.PreCheckBasic(t) },
22+
PreCheck: func() { acc.PreCheckAtlasUsername(t) },
2323
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
2424
CheckDestroy: acc.CheckDestroyTeam,
2525
Steps: []resource.TestStep{
2626
{
27-
Config: testAccDataSourceMongoDBAtlasTeamConfig(orgID, name, username),
27+
Config: dataSourceConfigBasic(orgID, name, username),
2828
Check: resource.ComposeTestCheckFunc(
2929
resource.TestCheckResourceAttrSet(dataSourceName, "org_id"),
3030
resource.TestCheckResourceAttrSet(dataSourceName, "team_id"),
@@ -45,12 +45,12 @@ func TestAccConfigDSTeamByName_basic(t *testing.T) {
4545
)
4646

4747
resource.ParallelTest(t, resource.TestCase{
48-
PreCheck: func() { acc.PreCheckBasic(t) },
48+
PreCheck: func() { acc.PreCheckAtlasUsername(t) },
4949
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
5050
CheckDestroy: acc.CheckDestroyTeam,
5151
Steps: []resource.TestStep{
5252
{
53-
Config: testAccDataSourceMongoDBAtlasTeamConfigByName(orgID, name, username),
53+
Config: dataSourceConfigBasicByName(orgID, name, username),
5454
Check: resource.ComposeTestCheckFunc(
5555
resource.TestCheckResourceAttrSet(dataSourceName, "org_id"),
5656
resource.TestCheckResourceAttrSet(dataSourceName, "team_id"),
@@ -62,7 +62,7 @@ func TestAccConfigDSTeamByName_basic(t *testing.T) {
6262
})
6363
}
6464

65-
func testAccDataSourceMongoDBAtlasTeamConfig(orgID, name, username string) string {
65+
func dataSourceConfigBasic(orgID, name, username string) string {
6666
return fmt.Sprintf(`
6767
resource "mongodbatlas_teams" "test" {
6868
org_id = "%s"
@@ -78,7 +78,7 @@ func testAccDataSourceMongoDBAtlasTeamConfig(orgID, name, username string) strin
7878
`, orgID, name, username)
7979
}
8080

81-
func testAccDataSourceMongoDBAtlasTeamConfigByName(orgID, name, username string) string {
81+
func dataSourceConfigBasicByName(orgID, name, username string) string {
8282
return fmt.Sprintf(`
8383
resource "mongodbatlas_teams" "test" {
8484
org_id = "%s"

0 commit comments

Comments
 (0)