diff --git a/examples/multiple_buckets/main.tf b/examples/multiple_buckets/main.tf index bedb970d..b82e3212 100644 --- a/examples/multiple_buckets/main.tf +++ b/examples/multiple_buckets/main.tf @@ -65,6 +65,13 @@ module "cloud_storage" { ] } + retention_policy = { + "two" = { + is_locked = false + retention_period = 1 + } + } + default_event_based_hold = { "one" = true } diff --git a/main.tf b/main.tf index 111a788c..1bfc3e5a 100644 --- a/main.tf +++ b/main.tf @@ -111,7 +111,7 @@ resource "google_storage_bucket" "buckets" { } dynamic "retention_policy" { - for_each = lookup(var.retention_policy, each.value, {}) != {} ? [var.retention_policy[each.value]] : [] + for_each = lookup(var.retention_policy, each.value, null) != null ? [var.retention_policy[each.value]] : [] content { is_locked = lookup(retention_policy.value, "is_locked", null) retention_period = lookup(retention_policy.value, "retention_period", null) @@ -119,7 +119,7 @@ resource "google_storage_bucket" "buckets" { } dynamic "custom_placement_config" { - for_each = lookup(var.custom_placement_config, each.value, {}) != {} ? [var.custom_placement_config[each.value]] : [] + for_each = lookup(var.custom_placement_config, each.value, null) != null ? [var.custom_placement_config[each.value]] : [] content { data_locations = lookup(custom_placement_config.value, "data_locations", null) } @@ -149,7 +149,7 @@ resource "google_storage_bucket" "buckets" { } dynamic "logging" { - for_each = lookup(var.logging, each.value, {}) != {} ? { v = lookup(var.logging, each.value) } : {} + for_each = lookup(var.logging, each.value, null) != null ? { v = lookup(var.logging, each.value) } : {} content { log_bucket = lookup(logging.value, "log_bucket", null) log_object_prefix = lookup(logging.value, "log_object_prefix", null) diff --git a/test/integration/multiple_buckets/multiple_buckets_test.go b/test/integration/multiple_buckets/multiple_buckets_test.go index e8379d9c..d8d69ab6 100644 --- a/test/integration/multiple_buckets/multiple_buckets_test.go +++ b/test/integration/multiple_buckets/multiple_buckets_test.go @@ -73,6 +73,7 @@ func TestMultipleBuckets(t *testing.T) { gcloud.Run(t, fmt.Sprintf("alpha storage ls --buckets gs://%s/prod/", fullBucketName), gcloudArgs) bucket_lifecycles := op.Get("metadata.lifecycle.rule").Array() assert.Equal(1, len(bucket_lifecycles), "Bucket 'two' has 1 lifecycle rule") + assert.Equal("1", op.Get("metadata.retentionPolicy.retentionPeriod").String(), "bucket retention policy retention period is 1") default: // fail test if unknown suffix t.Fatalf("Only expected two buckets with suffixes one and two. Found: %s", fullBucketName)