@@ -5,6 +5,7 @@ package storage
5
5
6
6
import (
7
7
"bytes"
8
+ "context"
8
9
"fmt"
9
10
"io"
10
11
"log"
@@ -26,10 +27,11 @@ import (
26
27
27
28
func ResourceStorageBucketObject () * schema.Resource {
28
29
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 ,
33
35
34
36
Timeouts : & schema.ResourceTimeout {
35
37
Create : schema .DefaultTimeout (4 * time .Minute ),
@@ -605,3 +607,35 @@ func flattenObjectRetention(objectRetention *storage.ObjectRetention) []map[stri
605
607
retentions = append (retentions , retention )
606
608
return retentions
607
609
}
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