@@ -3,6 +3,7 @@ package storage
3
3
4
4
import (
5
5
"bytes"
6
+ "context"
6
7
"fmt"
7
8
"io"
8
9
"log"
@@ -24,10 +25,11 @@ import (
24
25
25
26
func ResourceStorageBucketObject () * schema.Resource {
26
27
return & schema.Resource {
27
- Create : resourceStorageBucketObjectCreate ,
28
- Read : resourceStorageBucketObjectRead ,
29
- Update : resourceStorageBucketObjectUpdate ,
30
- Delete : resourceStorageBucketObjectDelete ,
28
+ Create : resourceStorageBucketObjectCreate ,
29
+ Read : resourceStorageBucketObjectRead ,
30
+ Update : resourceStorageBucketObjectUpdate ,
31
+ Delete : resourceStorageBucketObjectDelete ,
32
+ CustomizeDiff : resourceStorageBucketObjectCustomizeDiff ,
31
33
32
34
Timeouts : & schema.ResourceTimeout {
33
35
Create : schema .DefaultTimeout (4 * time .Minute ),
@@ -603,3 +605,35 @@ func flattenObjectRetention(objectRetention *storage.ObjectRetention) []map[stri
603
605
retentions = append (retentions , retention )
604
606
return retentions
605
607
}
608
+
609
+ func resourceStorageBucketObjectCustomizeDiff (ctx context.Context , d * schema.ResourceDiff , meta interface {}) error {
610
+ localMd5Hash := ""
611
+ if source , ok := d .GetOkExists ("source" ); ok {
612
+ localMd5Hash = tpgresource .GetFileMd5Hash (source .(string ))
613
+ }
614
+ if content , ok := d .GetOkExists ("content" ); ok {
615
+ localMd5Hash = tpgresource .GetContentMd5Hash ([]byte (content .(string )))
616
+ }
617
+ if localMd5Hash == "" {
618
+ return nil
619
+ }
620
+
621
+ oldMd5Hash , ok := d .GetOkExists ("md5hash" )
622
+ if ok && oldMd5Hash == localMd5Hash {
623
+ return nil
624
+ }
625
+
626
+ err := d .SetNewComputed ("md5hash" )
627
+ if err != nil {
628
+ return fmt .Errorf ("Error re-setting md5hash: %s" , err )
629
+ }
630
+ err = d .SetNewComputed ("crc32c" )
631
+ if err != nil {
632
+ return fmt .Errorf ("Error re-setting crc32c: %s" , err )
633
+ }
634
+ err = d .SetNewComputed ("generation" )
635
+ if err != nil {
636
+ return fmt .Errorf ("Error re-setting generation: %s" , err )
637
+ }
638
+ return nil
639
+ }
0 commit comments