Skip to content

Commit 8e24a23

Browse files
Make resource_google_storage_bucket_object generate diff for md5hash, generation, crc32c if content changes (#12541) (#20687)
[upstream:3b3cb68702ce1f619ff98998560c381d570527c9] Signed-off-by: Modular Magician <magic-modules@google.com>
1 parent c2a3b8e commit 8e24a23

File tree

2 files changed

+41
-4
lines changed

2 files changed

+41
-4
lines changed

.changelog/12541.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
storage: Make `resource_google_storage_bucket_object` generate diff for `md5hash`, `generation`, `crc32c` if content changes
3+
```

google/services/storage/resource_storage_bucket_object.go

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package storage
55

66
import (
77
"bytes"
8+
"context"
89
"fmt"
910
"io"
1011
"log"
@@ -26,10 +27,11 @@ import (
2627

2728
func ResourceStorageBucketObject() *schema.Resource {
2829
return &schema.Resource{
29-
Create: resourceStorageBucketObjectCreate,
30-
Read: resourceStorageBucketObjectRead,
31-
Update: resourceStorageBucketObjectUpdate,
32-
Delete: resourceStorageBucketObjectDelete,
30+
Create: resourceStorageBucketObjectCreate,
31+
Read: resourceStorageBucketObjectRead,
32+
Update: resourceStorageBucketObjectUpdate,
33+
Delete: resourceStorageBucketObjectDelete,
34+
CustomizeDiff: resourceStorageBucketObjectCustomizeDiff,
3335

3436
Timeouts: &schema.ResourceTimeout{
3537
Create: schema.DefaultTimeout(4 * time.Minute),
@@ -605,3 +607,35 @@ func flattenObjectRetention(objectRetention *storage.ObjectRetention) []map[stri
605607
retentions = append(retentions, retention)
606608
return retentions
607609
}
610+
611+
func resourceStorageBucketObjectCustomizeDiff(ctx context.Context, d *schema.ResourceDiff, meta interface{}) error {
612+
localMd5Hash := ""
613+
if source, ok := d.GetOkExists("source"); ok {
614+
localMd5Hash = tpgresource.GetFileMd5Hash(source.(string))
615+
}
616+
if content, ok := d.GetOkExists("content"); ok {
617+
localMd5Hash = tpgresource.GetContentMd5Hash([]byte(content.(string)))
618+
}
619+
if localMd5Hash == "" {
620+
return nil
621+
}
622+
623+
oldMd5Hash, ok := d.GetOkExists("md5hash")
624+
if ok && oldMd5Hash == localMd5Hash {
625+
return nil
626+
}
627+
628+
err := d.SetNewComputed("md5hash")
629+
if err != nil {
630+
return fmt.Errorf("Error re-setting md5hash: %s", err)
631+
}
632+
err = d.SetNewComputed("crc32c")
633+
if err != nil {
634+
return fmt.Errorf("Error re-setting crc32c: %s", err)
635+
}
636+
err = d.SetNewComputed("generation")
637+
if err != nil {
638+
return fmt.Errorf("Error re-setting generation: %s", err)
639+
}
640+
return nil
641+
}

0 commit comments

Comments
 (0)