From b505e5b4339695d7a1957e48c1cd6a99faa3d3ed Mon Sep 17 00:00:00 2001 From: Modular Magician Date: Fri, 22 Oct 2021 00:31:35 +0000 Subject: [PATCH] fixed a bug in update (#5336) Signed-off-by: Modular Magician --- .changelog/5336.txt | 3 + .../resource_compute_backend_bucket.go | 10 ++-- .../resource_compute_backend_bucket_test.go | 56 ++++++++++++++++++- google-beta/resource_dataproc_cluster_test.go | 3 +- 4 files changed, 64 insertions(+), 8 deletions(-) create mode 100644 .changelog/5336.txt diff --git a/.changelog/5336.txt b/.changelog/5336.txt new file mode 100644 index 0000000000..ff7a2415d8 --- /dev/null +++ b/.changelog/5336.txt @@ -0,0 +1,3 @@ +```release-note:bug +compute: fixed a bug in updating multiple `ttl` fields on `google_compute_backend_bucket` +``` diff --git a/google-beta/resource_compute_backend_bucket.go b/google-beta/resource_compute_backend_bucket.go index cc31e481f6..3df73eafba 100644 --- a/google-beta/resource_compute_backend_bucket.go +++ b/google-beta/resource_compute_backend_bucket.go @@ -699,28 +699,28 @@ func expandComputeBackendBucketCdnPolicy(v interface{}, d TerraformResourceData, transformedSignedUrlCacheMaxAgeSec, err := expandComputeBackendBucketCdnPolicySignedUrlCacheMaxAgeSec(original["signed_url_cache_max_age_sec"], d, config) if err != nil { return nil, err - } else if val := reflect.ValueOf(transformedSignedUrlCacheMaxAgeSec); val.IsValid() && !isEmptyValue(val) { + } else { transformed["signedUrlCacheMaxAgeSec"] = transformedSignedUrlCacheMaxAgeSec } transformedDefaultTtl, err := expandComputeBackendBucketCdnPolicyDefaultTtl(original["default_ttl"], d, config) if err != nil { return nil, err - } else if val := reflect.ValueOf(transformedDefaultTtl); val.IsValid() && !isEmptyValue(val) { + } else { transformed["defaultTtl"] = transformedDefaultTtl } transformedMaxTtl, err := expandComputeBackendBucketCdnPolicyMaxTtl(original["max_ttl"], d, config) if err != nil { return nil, err - } else if val := reflect.ValueOf(transformedMaxTtl); val.IsValid() && !isEmptyValue(val) { + } else { transformed["maxTtl"] = transformedMaxTtl } transformedClientTtl, err := expandComputeBackendBucketCdnPolicyClientTtl(original["client_ttl"], d, config) if err != nil { return nil, err - } else if val := reflect.ValueOf(transformedClientTtl); val.IsValid() && !isEmptyValue(val) { + } else { transformed["clientTtl"] = transformedClientTtl } @@ -795,7 +795,7 @@ func expandComputeBackendBucketCdnPolicyNegativeCachingPolicy(v interface{}, d T transformedTtl, err := expandComputeBackendBucketCdnPolicyNegativeCachingPolicyTtl(original["ttl"], d, config) if err != nil { return nil, err - } else if val := reflect.ValueOf(transformedTtl); val.IsValid() && !isEmptyValue(val) { + } else { transformed["ttl"] = transformedTtl } diff --git a/google-beta/resource_compute_backend_bucket_test.go b/google-beta/resource_compute_backend_bucket_test.go index 11827326ee..3bf269f485 100644 --- a/google-beta/resource_compute_backend_bucket_test.go +++ b/google-beta/resource_compute_backend_bucket_test.go @@ -59,6 +59,30 @@ func TestAccComputeBackendBucket_withCdnPolicy(t *testing.T) { ImportState: true, ImportStateVerify: true, }, + { + Config: testAccComputeBackendBucket_withCdnPolicy2(backendName, storageName, 1000, 301, 2, 1), + }, + { + ResourceName: "google_compute_backend_bucket.foobar", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccComputeBackendBucket_withCdnPolicy2(backendName, storageName, 0, 404, 0, 0), + }, + { + ResourceName: "google_compute_backend_bucket.foobar", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccComputeBackendBucket_withCdnPolicy(backendName, storageName), + }, + { + ResourceName: "google_compute_backend_bucket.foobar", + ImportState: true, + ImportStateVerify: true, + }, }, }) } @@ -103,13 +127,41 @@ resource "google_compute_backend_bucket" "foobar" { bucket_name = google_storage_bucket.bucket.name enable_cdn = true cdn_policy { - signed_url_cache_max_age_sec = 1000 + signed_url_cache_max_age_sec = 1000 + negative_caching = false } } - resource "google_storage_bucket" "bucket" { name = "%s" location = "EU" } `, backendName, storageName) } + +func testAccComputeBackendBucket_withCdnPolicy2(backendName, storageName string, age, code, max_ttl, ttl int) string { + return fmt.Sprintf(` +resource "google_compute_backend_bucket" "foobar" { + name = "%s" + bucket_name = google_storage_bucket.bucket.name + enable_cdn = true + cdn_policy { + cache_mode = "CACHE_ALL_STATIC" + signed_url_cache_max_age_sec = %d + max_ttl = %d + default_ttl = %d + client_ttl = %d + serve_while_stale = %d + negative_caching_policy { + code = %d + ttl = %d + } + negative_caching = true + } +} + +resource "google_storage_bucket" "bucket" { + name = "%s" + location = "EU" +} +`, backendName, age, max_ttl, ttl, ttl, ttl, code, ttl, storageName) +} diff --git a/google-beta/resource_dataproc_cluster_test.go b/google-beta/resource_dataproc_cluster_test.go index e3c9d32ff6..4a20998f80 100644 --- a/google-beta/resource_dataproc_cluster_test.go +++ b/google-beta/resource_dataproc_cluster_test.go @@ -13,8 +13,9 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" - dataproc "google.golang.org/api/dataproc/v1beta2" "google.golang.org/api/googleapi" + + "google.golang.org/api/dataproc/v1beta2" ) func TestDataprocExtractInitTimeout(t *testing.T) {