Skip to content

Commit ad14126

Browse files
committed
feat(mongodb): add test for update tag and password
1 parent dfe5719 commit ad14126

File tree

4 files changed

+9433
-2850
lines changed

4 files changed

+9433
-2850
lines changed

internal/services/mongodb/instance.go

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ func ResourceInstance() *schema.Resource {
6464
"user_name": {
6565
Type: schema.TypeString,
6666
Optional: true,
67+
ForceNew: true,
6768
Description: "Name of the user created when the cluster is created",
6869
ConflictsWith: []string{
6970
"snapshot_id",
@@ -338,32 +339,35 @@ func ResourceInstanceUpdate(ctx context.Context, d *schema.ResourceData, m inter
338339
}
339340
}
340341

341-
_, err = mongodbAPI.UpdateInstance(req, scw.WithContext(ctx))
342-
if err != nil {
343-
return diag.FromErr(err)
342+
if req.Name != nil || req.Tags != nil {
343+
_, err = mongodbAPI.UpdateInstance(req, scw.WithContext(ctx))
344+
if err != nil {
345+
return diag.FromErr(err)
346+
}
344347
}
345348

346349
////////////////////
347350
// Update user
348351
////////////////////
349352

350353
updateUserRequest := mongodb.UpdateUserRequest{
354+
Name: d.Get("user_name").(string),
351355
Region: region,
352356
InstanceID: ID,
353357
}
354-
if d.HasChange("user_name") {
355-
updateUserRequest.Name = d.Get("user_name").(string)
356-
}
357358

358359
if d.HasChange("password") {
359360
password := d.Get("password").(string)
360361
updateUserRequest.Password = &password
361362
}
362363

363-
_, err = mongodbAPI.UpdateUser(&updateUserRequest, scw.WithContext(ctx))
364-
if err != nil {
365-
return diag.FromErr(err)
364+
if updateUserRequest.Password != nil {
365+
_, err = mongodbAPI.UpdateUser(&updateUserRequest, scw.WithContext(ctx))
366+
if err != nil {
367+
return diag.FromErr(err)
368+
}
366369
}
370+
367371
_, err = waitForInstance(ctx, mongodbAPI, region, ID, d.Timeout(schema.TimeoutCreate))
368372
if err != nil {
369373
return diag.FromErr(err)

internal/services/mongodb/instance_test.go

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,61 @@ func TestAccMongoDBInstance_VolumeUpdate(t *testing.T) {
9393
})
9494
}
9595

96+
func TestAccMongoDBInstance_UpdateNameTagsUser(t *testing.T) {
97+
tt := acctest.NewTestTools(t)
98+
defer tt.Cleanup()
99+
100+
resource.ParallelTest(t, resource.TestCase{
101+
PreCheck: func() { acctest.PreCheck(t) },
102+
ProviderFactories: tt.ProviderFactories,
103+
CheckDestroy: IsInstanceDestroyed(tt),
104+
Steps: []resource.TestStep{
105+
{
106+
Config: `
107+
resource scaleway_mongodb_instance main {
108+
name = "test-mongodb-update-initial"
109+
version = "7.0.12"
110+
node_type = "MGDB-PLAY2-NANO"
111+
node_number = 1
112+
user_name = "user"
113+
password = "initial_password"
114+
tags = ["initial_tag1", "initial_tag2"]
115+
}
116+
`,
117+
Check: resource.ComposeTestCheckFunc(
118+
isMongoDBInstancePresent(tt, "scaleway_mongodb_instance.main"),
119+
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "name", "test-mongodb-update-initial"),
120+
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "user_name", "user"),
121+
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "tags.#", "2"),
122+
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "tags.0", "initial_tag1"),
123+
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "tags.1", "initial_tag2"),
124+
),
125+
},
126+
{
127+
Config: `
128+
resource scaleway_mongodb_instance main {
129+
name = "test-mongodb-update-final"
130+
version = "7.0.12"
131+
node_type = "MGDB-PLAY2-NANO"
132+
node_number = 1
133+
user_name = "user"
134+
password = "updated_password"
135+
tags = ["updated_tag1", "updated_tag2", "updated_tag3"]
136+
}
137+
`,
138+
Check: resource.ComposeTestCheckFunc(
139+
isMongoDBInstancePresent(tt, "scaleway_mongodb_instance.main"),
140+
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "name", "test-mongodb-update-final"),
141+
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "tags.#", "3"),
142+
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "tags.0", "updated_tag1"),
143+
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "tags.1", "updated_tag2"),
144+
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "tags.2", "updated_tag3"),
145+
),
146+
},
147+
},
148+
})
149+
}
150+
96151
func TestAccMongoDBInstance_FromSnapshot(t *testing.T) {
97152
tt := acctest.NewTestTools(t)
98153
defer tt.Cleanup()

0 commit comments

Comments
 (0)