Skip to content

Commit 64522be

Browse files
committed
fix(object): fix error when updating bucket with empty tagsSet
Co-authored-by: DuarteRoberto <[email protected]> Co-authored-by: paulden <[email protected]> Co-authored-by: pomverte <[email protected]> Co-authored-by: ralbon <[email protected]> Co-authored-by: schaltiemi <[email protected]> Signed-off-by: Julien ALEXANDRE <[email protected]>
1 parent 53b42b3 commit 64522be

File tree

2 files changed

+32
-7
lines changed

2 files changed

+32
-7
lines changed

scaleway/resource_object_bucket.go

+12-6
Original file line numberDiff line numberDiff line change
@@ -172,12 +172,18 @@ func resourceScalewayObjectBucketUpdate(ctx context.Context, d *schema.ResourceD
172172
if d.HasChange("tags") {
173173
tagsSet := expandObjectBucketTags(d.Get("tags"))
174174

175-
_, err = s3Client.PutBucketTaggingWithContext(ctx, &s3.PutBucketTaggingInput{
176-
Bucket: scw.StringPtr(bucketName),
177-
Tagging: &s3.Tagging{
178-
TagSet: tagsSet,
179-
},
180-
})
175+
if len(tagsSet) > 0 {
176+
_, err = s3Client.PutBucketTaggingWithContext(ctx, &s3.PutBucketTaggingInput{
177+
Bucket: scw.StringPtr(bucketName),
178+
Tagging: &s3.Tagging{
179+
TagSet: tagsSet,
180+
},
181+
})
182+
} else {
183+
_, err = s3Client.DeleteBucketTaggingWithContext(ctx, &s3.DeleteBucketTaggingInput{
184+
Bucket: scw.StringPtr(bucketName),
185+
})
186+
}
181187
if err != nil {
182188
return diag.FromErr(err)
183189
}

scaleway/resource_object_bucket_test.go

+20-1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ func TestAccScalewayObjectBucket_Basic(t *testing.T) {
4747
resource "scaleway_object_bucket" "ams-bucket" {
4848
name = "%s"
4949
region = "nl-ams"
50+
tags = {
51+
foo = "bar"
52+
baz = "qux"
53+
}
5054
}
5155
5256
resource "scaleway_object_bucket" "par-bucket" {
@@ -62,6 +66,9 @@ func TestAccScalewayObjectBucket_Basic(t *testing.T) {
6266
resource.TestCheckResourceAttr("scaleway_object_bucket.base", "endpoint", fmt.Sprintf("https://%s.s3.%s.scw.cloud", testBucketName, "fr-par")),
6367

6468
resource.TestCheckResourceAttr("scaleway_object_bucket.ams-bucket", "name", testBucketNameAms),
69+
resource.TestCheckResourceAttr("scaleway_object_bucket.ams-bucket", "tags.%", "2"),
70+
resource.TestCheckResourceAttr("scaleway_object_bucket.ams-bucket", "tags.foo", "bar"),
71+
resource.TestCheckResourceAttr("scaleway_object_bucket.ams-bucket", "tags.baz", "qux"),
6572
resource.TestCheckResourceAttr("scaleway_object_bucket.ams-bucket", "endpoint", fmt.Sprintf("https://%s.s3.%s.scw.cloud", testBucketNameAms, "nl-ams")),
6673

6774
resource.TestCheckResourceAttr("scaleway_object_bucket.par-bucket", "name", testBucketNamePar),
@@ -74,11 +81,23 @@ func TestAccScalewayObjectBucket_Basic(t *testing.T) {
7481
name = "%s"
7582
acl = "%s"
7683
}
77-
`, testBucketName, testBucketUpdatedACL),
84+
85+
resource "scaleway_object_bucket" "ams-bucket" {
86+
name = "%s"
87+
region = "nl-ams"
88+
tags = {
89+
foo = "bar"
90+
}
91+
}
92+
`, testBucketName, testBucketUpdatedACL, testBucketNameAms),
7893
Check: resource.ComposeTestCheckFunc(
7994
resource.TestCheckResourceAttr("scaleway_object_bucket.base", "name", testBucketName),
8095
resource.TestCheckResourceAttr("scaleway_object_bucket.base", "acl", testBucketUpdatedACL),
8196
resource.TestCheckResourceAttr("scaleway_object_bucket.base", "tags.%", "0"),
97+
98+
resource.TestCheckResourceAttr("scaleway_object_bucket.ams-bucket", "name", testBucketNameAms),
99+
resource.TestCheckResourceAttr("scaleway_object_bucket.ams-bucket", "tags.%", "1"),
100+
resource.TestCheckResourceAttr("scaleway_object_bucket.ams-bucket", "tags.foo", "bar"),
82101
),
83102
},
84103
},

0 commit comments

Comments
 (0)