Skip to content

Commit 2c219b6

Browse files
authored
pubsub: fix permadiff with configuring an empty retry_policy. (#11834)
1 parent b20c8e5 commit 2c219b6

6 files changed

+50
-4
lines changed

mmv1/products/pubsub/Subscription.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,8 @@ properties:
471471
A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
472472
default_from_api: true
473473
diff_suppress_func: 'tpgresource.DurationDiffSuppress'
474+
send_empty_value: true
475+
allow_empty_object: true
474476
- name: 'enableMessageOrdering'
475477
type: Boolean
476478
description: |

mmv1/third_party/terraform/services/pubsub/resource_pubsub_subscription_test.go

+40
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,30 @@ func TestAccPubsubSubscription_emptyTTL(t *testing.T) {
3636
})
3737
}
3838

39+
func TestAccPubsubSubscription_emptyRetryPolicy(t *testing.T) {
40+
t.Parallel()
41+
42+
topic := fmt.Sprintf("tf-test-topic-%s", acctest.RandString(t, 10))
43+
subscription := fmt.Sprintf("tf-test-sub-%s", acctest.RandString(t, 10))
44+
45+
acctest.VcrTest(t, resource.TestCase{
46+
PreCheck: func() { acctest.AccTestPreCheck(t) },
47+
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
48+
CheckDestroy: testAccCheckPubsubSubscriptionDestroyProducer(t),
49+
Steps: []resource.TestStep{
50+
{
51+
Config: testAccPubsubSubscription_emptyRetryPolicy(topic, subscription),
52+
},
53+
{
54+
ResourceName: "google_pubsub_subscription.foo",
55+
ImportStateId: subscription,
56+
ImportState: true,
57+
ImportStateVerify: true,
58+
},
59+
},
60+
})
61+
}
62+
3963
func TestAccPubsubSubscription_basic(t *testing.T) {
4064
t.Parallel()
4165

@@ -494,6 +518,22 @@ resource "google_pubsub_subscription" "foo" {
494518
`, topic, subscription)
495519
}
496520

521+
func testAccPubsubSubscription_emptyRetryPolicy(topic, subscription string) string {
522+
return fmt.Sprintf(`
523+
resource "google_pubsub_topic" "foo" {
524+
name = "%s"
525+
}
526+
527+
resource "google_pubsub_subscription" "foo" {
528+
name = "%s"
529+
topic = google_pubsub_topic.foo.id
530+
531+
retry_policy {
532+
}
533+
}
534+
`, topic, subscription)
535+
}
536+
497537
func testAccPubsubSubscription_push(topicFoo, saAccount, subscription string) string {
498538
return fmt.Sprintf(`
499539
data "google_project" "project" { }

mmv1/third_party/tgc/tests/data/example_pubsub_subscription.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,9 @@
4848
"pushConfig": {
4949
"pushEndpoint": "https://example.com/push"
5050
},
51+
"retryPolicy": null,
5152
"topic": "projects/{{.Provider.project}}/topics/example-pubsub-topic"
5253
}
5354
}
5455
}
55-
]
56+
]

mmv1/third_party/tgc/tests/data/example_pubsub_subscription_iam_binding.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"pushConfig": {
2121
"pushEndpoint": "https://example.com/push"
2222
},
23+
"retryPolicy": null,
2324
"topic": "projects/{{.Provider.project}}/topics/example-pubsub-topic"
2425
}
2526
},
@@ -34,4 +35,4 @@
3435
]
3536
}
3637
}
37-
]
38+
]

mmv1/third_party/tgc/tests/data/example_pubsub_subscription_iam_member.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"pushConfig": {
2121
"pushEndpoint": "https://example.com/push"
2222
},
23+
"retryPolicy": null,
2324
"topic": "projects/{{.Provider.project}}/topics/example-pubsub-topic"
2425
}
2526
},
@@ -34,4 +35,4 @@
3435
]
3536
}
3637
}
37-
]
38+
]

mmv1/third_party/tgc/tests/data/example_pubsub_subscription_iam_policy.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"pushConfig": {
2121
"pushEndpoint": "https://example.com/push"
2222
},
23+
"retryPolicy": null,
2324
"topic": "projects/{{.Provider.project}}/topics/example-pubsub-topic"
2425
}
2526
},
@@ -34,4 +35,4 @@
3435
]
3536
}
3637
}
37-
]
38+
]

0 commit comments

Comments
 (0)