Skip to content

Commit 80dcc2d

Browse files
authored
fix: Fixes creation of organization (#2462)
* fix TerraformVersion interface conversion * refactor organization resource * add changelog entry * PR comment
1 parent 12433b7 commit 80dcc2d

8 files changed

+47
-46
lines changed

.changelog/2462.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
resource/mongodbatlas_organization: Fixes a bug in organization resource creation where the provider crashed.
3+
```

internal/service/organization/data_source_organization.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313

1414
func DataSource() *schema.Resource {
1515
return &schema.Resource{
16-
ReadContext: dataSourceMongoDBAtlasOrganizationRead,
16+
ReadContext: dataSourceRead,
1717
Schema: map[string]*schema.Schema{
1818
"org_id": {
1919
Type: schema.TypeString,
@@ -59,8 +59,7 @@ func DataSource() *schema.Resource {
5959
}
6060
}
6161

62-
func dataSourceMongoDBAtlasOrganizationRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
63-
// Get client connection.
62+
func dataSourceRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
6463
conn := meta.(*config.MongoDBClient).AtlasV2
6564
orgID := d.Get("org_id").(string)
6665

internal/service/organization/data_source_organization_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func TestAccConfigDSOrganization_basic(t *testing.T) {
1919
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
2020
Steps: []resource.TestStep{
2121
{
22-
Config: testAccMongoDBAtlasOrganizationConfigWithDS(orgID),
22+
Config: configWithDS(orgID),
2323
Check: resource.ComposeAggregateTestCheckFunc(
2424
resource.TestCheckResourceAttrSet(datasourceName, "name"),
2525
resource.TestCheckResourceAttrSet(datasourceName, "id"),
@@ -31,7 +31,7 @@ func TestAccConfigDSOrganization_basic(t *testing.T) {
3131
},
3232
})
3333
}
34-
func testAccMongoDBAtlasOrganizationConfigWithDS(orgID string) string {
34+
func configWithDS(orgID string) string {
3535
config := fmt.Sprintf(`
3636
3737
data "mongodbatlas_organization" "test" {

internal/service/organization/data_source_organizations.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616

1717
func PluralDataSource() *schema.Resource {
1818
return &schema.Resource{
19-
ReadContext: dataSourceMongoDBAtlasOrganizationsRead,
19+
ReadContext: pluralDataSourceRead,
2020
Schema: map[string]*schema.Schema{
2121
"name": {
2222
Type: schema.TypeString,
@@ -86,8 +86,7 @@ func PluralDataSource() *schema.Resource {
8686
}
8787
}
8888

89-
func dataSourceMongoDBAtlasOrganizationsRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
90-
// Get client connection.
89+
func pluralDataSourceRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
9190
conn := meta.(*config.MongoDBClient).AtlasV2
9291

9392
organizationOptions := &admin.ListOrganizationsApiParams{

internal/service/organization/data_source_organizations_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func TestAccConfigDSOrganizations_basic(t *testing.T) {
1717
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
1818
Steps: []resource.TestStep{
1919
{
20-
Config: testAccMongoDBAtlasOrganizationsConfigWithDS(),
20+
Config: configWithPluralDS(),
2121
Check: resource.ComposeAggregateTestCheckFunc(
2222
resource.TestCheckResourceAttrSet(datasourceName, "results.#"),
2323
resource.TestCheckResourceAttrSet(datasourceName, "results.0.name"),
@@ -39,7 +39,7 @@ func TestAccConfigDSOrganizations_withPagination(t *testing.T) {
3939
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
4040
Steps: []resource.TestStep{
4141
{
42-
Config: testAccMongoDBAtlasOrganizationsConfigWithPagination(2, 5),
42+
Config: configWithPagination(2, 5),
4343
Check: resource.ComposeAggregateTestCheckFunc(
4444
resource.TestCheckResourceAttrSet(datasourceName, "results.#"),
4545
),
@@ -48,14 +48,14 @@ func TestAccConfigDSOrganizations_withPagination(t *testing.T) {
4848
})
4949
}
5050

51-
func testAccMongoDBAtlasOrganizationsConfigWithDS() string {
51+
func configWithPluralDS() string {
5252
return `
5353
data "mongodbatlas_organizations" "test" {
5454
}
5555
`
5656
}
5757

58-
func testAccMongoDBAtlasOrganizationsConfigWithPagination(pageNum, itemPage int) string {
58+
func configWithPagination(pageNum, itemPage int) string {
5959
return fmt.Sprintf(`
6060
data "mongodbatlas_organizations" "test" {
6161
page_num = %d

internal/service/organization/resource_organization.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ import (
1818

1919
func Resource() *schema.Resource {
2020
return &schema.Resource{
21-
CreateContext: resourceMongoDBAtlasOrganizationCreate,
22-
ReadContext: resourceMongoDBAtlasOrganizationRead,
23-
UpdateContext: resourceMongoDBAtlasOrganizationUpdate,
24-
DeleteContext: resourceMongoDBAtlasOrganizationDelete,
21+
CreateContext: resourceCreate,
22+
ReadContext: resourceRead,
23+
UpdateContext: resourceUpdate,
24+
DeleteContext: resourceDelete,
2525
Importer: nil, // import is not supported. See CLOUDP-215155
2626
Schema: map[string]*schema.Schema{
2727
"org_owner_id": {
@@ -80,7 +80,7 @@ func Resource() *schema.Resource {
8080
}
8181
}
8282

83-
func resourceMongoDBAtlasOrganizationCreate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
83+
func resourceCreate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
8484
if err := ValidateAPIKeyIsOrgOwner(conversion.ExpandStringList(d.Get("role_names").(*schema.Set).List())); err != nil {
8585
return diag.FromErr(err)
8686
}
@@ -104,7 +104,7 @@ func resourceMongoDBAtlasOrganizationCreate(ctx context.Context, d *schema.Resou
104104
PublicKey: *organization.ApiKey.PublicKey,
105105
PrivateKey: *organization.ApiKey.PrivateKey,
106106
BaseURL: meta.(*config.MongoDBClient).Config.BaseURL,
107-
TerraformVersion: meta.(*config.Config).TerraformVersion,
107+
TerraformVersion: meta.(*config.MongoDBClient).Config.TerraformVersion,
108108
}
109109

110110
clients, _ := cfg.NewClient(ctx)
@@ -136,16 +136,16 @@ func resourceMongoDBAtlasOrganizationCreate(ctx context.Context, d *schema.Resou
136136
"org_id": organization.Organization.GetId(),
137137
}))
138138

139-
return resourceMongoDBAtlasOrganizationRead(ctx, d, meta)
139+
return resourceRead(ctx, d, meta)
140140
}
141141

142-
func resourceMongoDBAtlasOrganizationRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
142+
func resourceRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
143143
// Get client connection.
144144
cfg := config.Config{
145145
PublicKey: d.Get("public_key").(string),
146146
PrivateKey: d.Get("private_key").(string),
147147
BaseURL: meta.(*config.MongoDBClient).Config.BaseURL,
148-
TerraformVersion: meta.(*config.Config).TerraformVersion,
148+
TerraformVersion: meta.(*config.MongoDBClient).Config.TerraformVersion,
149149
}
150150

151151
clients, _ := cfg.NewClient(ctx)
@@ -189,13 +189,13 @@ func resourceMongoDBAtlasOrganizationRead(ctx context.Context, d *schema.Resourc
189189
return nil
190190
}
191191

192-
func resourceMongoDBAtlasOrganizationUpdate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
192+
func resourceUpdate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
193193
// Get client connection.
194194
cfg := config.Config{
195195
PublicKey: d.Get("public_key").(string),
196196
PrivateKey: d.Get("private_key").(string),
197197
BaseURL: meta.(*config.MongoDBClient).Config.BaseURL,
198-
TerraformVersion: meta.(*config.Config).TerraformVersion,
198+
TerraformVersion: meta.(*config.MongoDBClient).Config.TerraformVersion,
199199
}
200200

201201
clients, _ := cfg.NewClient(ctx)
@@ -218,16 +218,16 @@ func resourceMongoDBAtlasOrganizationUpdate(ctx context.Context, d *schema.Resou
218218
}
219219
}
220220

221-
return resourceMongoDBAtlasOrganizationRead(ctx, d, meta)
221+
return resourceRead(ctx, d, meta)
222222
}
223223

224-
func resourceMongoDBAtlasOrganizationDelete(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
224+
func resourceDelete(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
225225
// Get client connection.
226226
cfg := config.Config{
227227
PublicKey: d.Get("public_key").(string),
228228
PrivateKey: d.Get("private_key").(string),
229229
BaseURL: meta.(*config.MongoDBClient).Config.BaseURL,
230-
TerraformVersion: meta.(*config.Config).TerraformVersion,
230+
TerraformVersion: meta.(*config.MongoDBClient).Config.TerraformVersion,
231231
}
232232

233233
clients, _ := cfg.NewClient(ctx)

internal/service/organization/resource_organization_migration_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func TestMigConfigRSOrganization_Basic(t *testing.T) {
2626
Steps: []resource.TestStep{
2727
{
2828
ExternalProviders: mig.ExternalProviders(),
29-
Config: testAccMongoDBAtlasOrganizationConfigBasic(orgOwnerID, name, description, roleName),
29+
Config: configBasic(orgOwnerID, name, description, roleName),
3030
Check: resource.ComposeAggregateTestCheckFunc(
3131
resource.TestCheckResourceAttrSet(resourceName, "org_id"),
3232
resource.TestCheckResourceAttrSet(resourceName, "description"),
@@ -35,7 +35,7 @@ func TestMigConfigRSOrganization_Basic(t *testing.T) {
3535
},
3636
{
3737
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
38-
Config: testAccMongoDBAtlasOrganizationConfigBasic(orgOwnerID, name, description, roleName),
38+
Config: configBasic(orgOwnerID, name, description, roleName),
3939
ConfigPlanChecks: resource.ConfigPlanChecks{
4040
PreApply: []plancheck.PlanCheck{
4141
acc.DebugPlan(),

internal/service/organization/resource_organization_test.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ func TestAccConfigRSOrganization_Basic(t *testing.T) {
3333
resource.Test(t, resource.TestCase{
3434
PreCheck: func() { acc.PreCheck(t) },
3535
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
36-
CheckDestroy: testAccCheckMongoDBAtlasOrganizationDestroy,
36+
CheckDestroy: checkDestroy,
3737
Steps: []resource.TestStep{
3838
{
39-
Config: testAccMongoDBAtlasOrganizationConfigBasic(orgOwnerID, name, description, roleName),
39+
Config: configBasic(orgOwnerID, name, description, roleName),
4040
Check: resource.ComposeAggregateTestCheckFunc(
41-
testAccCheckMongoDBAtlasOrganizationExists(resourceName),
41+
checkExists(resourceName),
4242
resource.TestCheckResourceAttrSet(resourceName, "org_id"),
4343
resource.TestCheckResourceAttr(resourceName, "description", description),
4444
resource.TestCheckResourceAttr(resourceName, "api_access_list_required", "false"),
@@ -47,9 +47,9 @@ func TestAccConfigRSOrganization_Basic(t *testing.T) {
4747
),
4848
},
4949
{
50-
Config: testAccMongoDBAtlasOrganizationConfigBasic(orgOwnerID, updatedName, description, roleName),
50+
Config: configBasic(orgOwnerID, updatedName, description, roleName),
5151
Check: resource.ComposeAggregateTestCheckFunc(
52-
testAccCheckMongoDBAtlasOrganizationExists(resourceName),
52+
checkExists(resourceName),
5353
resource.TestCheckResourceAttrSet(resourceName, "org_id"),
5454
resource.TestCheckResourceAttr(resourceName, "description", description),
5555
resource.TestCheckResourceAttr(resourceName, "api_access_list_required", "false"),
@@ -74,10 +74,10 @@ func TestAccConfigRSOrganization_BasicAccess(t *testing.T) {
7474
resource.Test(t, resource.TestCase{
7575
PreCheck: func() { acc.PreCheck(t) },
7676
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
77-
CheckDestroy: testAccCheckMongoDBAtlasOrganizationDestroy,
77+
CheckDestroy: checkDestroy,
7878
Steps: []resource.TestStep{
7979
{
80-
Config: testAccMongoDBAtlasOrganizationConfigBasic(orgOwnerID, name, description, roleName),
80+
Config: configBasic(orgOwnerID, name, description, roleName),
8181
ExpectError: regexp.MustCompile("API Key must have the ORG_OWNER role"),
8282
},
8383
},
@@ -106,12 +106,12 @@ func TestAccConfigRSOrganization_Settings(t *testing.T) {
106106
resource.Test(t, resource.TestCase{
107107
PreCheck: func() { acc.PreCheck(t) },
108108
ProtoV6ProviderFactories: acc.TestAccProviderV6Factories,
109-
CheckDestroy: testAccCheckMongoDBAtlasOrganizationDestroy,
109+
CheckDestroy: checkDestroy,
110110
Steps: []resource.TestStep{
111111
{
112-
Config: testAccMongoDBAtlasOrganizationConfigWithSettings(orgOwnerID, name, description, roleName, settingsConfig),
112+
Config: configWithSettings(orgOwnerID, name, description, roleName, settingsConfig),
113113
Check: resource.ComposeAggregateTestCheckFunc(
114-
testAccCheckMongoDBAtlasOrganizationExists(resourceName),
114+
checkExists(resourceName),
115115
resource.TestCheckResourceAttrSet(resourceName, "org_id"),
116116
resource.TestCheckResourceAttr(resourceName, "description", description),
117117
resource.TestCheckResourceAttr(resourceName, "api_access_list_required", "false"),
@@ -120,9 +120,9 @@ func TestAccConfigRSOrganization_Settings(t *testing.T) {
120120
),
121121
},
122122
{
123-
Config: testAccMongoDBAtlasOrganizationConfigWithSettings(orgOwnerID, name, description, roleName, settingsConfigUpdated),
123+
Config: configWithSettings(orgOwnerID, name, description, roleName, settingsConfigUpdated),
124124
Check: resource.ComposeAggregateTestCheckFunc(
125-
testAccCheckMongoDBAtlasOrganizationExists(resourceName),
125+
checkExists(resourceName),
126126
resource.TestCheckResourceAttrSet(resourceName, "org_id"),
127127
resource.TestCheckResourceAttr(resourceName, "description", description),
128128
resource.TestCheckResourceAttr(resourceName, "api_access_list_required", "false"),
@@ -131,9 +131,9 @@ func TestAccConfigRSOrganization_Settings(t *testing.T) {
131131
),
132132
},
133133
{
134-
Config: testAccMongoDBAtlasOrganizationConfigBasic(orgOwnerID, "org-name-updated", description, roleName),
134+
Config: configBasic(orgOwnerID, "org-name-updated", description, roleName),
135135
Check: resource.ComposeAggregateTestCheckFunc(
136-
testAccCheckMongoDBAtlasOrganizationExists(resourceName),
136+
checkExists(resourceName),
137137
resource.TestCheckResourceAttrSet(resourceName, "org_id"),
138138
resource.TestCheckResourceAttrSet(resourceName, "description"),
139139
resource.TestCheckResourceAttr(resourceName, "description", description),
@@ -143,7 +143,7 @@ func TestAccConfigRSOrganization_Settings(t *testing.T) {
143143
})
144144
}
145145

146-
func testAccCheckMongoDBAtlasOrganizationExists(resourceName string) resource.TestCheckFunc {
146+
func checkExists(resourceName string) resource.TestCheckFunc {
147147
return func(s *terraform.State) error {
148148
rs, ok := s.RootModule().Resources[resourceName]
149149
if !ok {
@@ -174,7 +174,7 @@ func testAccCheckMongoDBAtlasOrganizationExists(resourceName string) resource.Te
174174
}
175175
}
176176

177-
func testAccCheckMongoDBAtlasOrganizationDestroy(s *terraform.State) error {
177+
func checkDestroy(s *terraform.State) error {
178178
for _, rs := range s.RootModule().Resources {
179179
if rs.Type != "mongodbatlas_organization" {
180180
continue
@@ -200,7 +200,7 @@ func testAccCheckMongoDBAtlasOrganizationDestroy(s *terraform.State) error {
200200
return nil
201201
}
202202

203-
func testAccMongoDBAtlasOrganizationConfigBasic(orgOwnerID, name, description, roleNames string) string {
203+
func configBasic(orgOwnerID, name, description, roleNames string) string {
204204
return fmt.Sprintf(`
205205
resource "mongodbatlas_organization" "test" {
206206
org_owner_id = "%s"
@@ -211,7 +211,7 @@ func testAccMongoDBAtlasOrganizationConfigBasic(orgOwnerID, name, description, r
211211
`, orgOwnerID, name, description, roleNames)
212212
}
213213

214-
func testAccMongoDBAtlasOrganizationConfigWithSettings(orgOwnerID, name, description, roleNames, settingsConfig string) string {
214+
func configWithSettings(orgOwnerID, name, description, roleNames, settingsConfig string) string {
215215
return fmt.Sprintf(`
216216
resource "mongodbatlas_organization" "test" {
217217
org_owner_id = "%s"

0 commit comments

Comments
 (0)