@@ -26,6 +26,7 @@ import (
26
26
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
27
27
28
28
"github.com/hashicorp/terraform-provider-google/google/acctest"
29
+ "github.com/hashicorp/terraform-provider-google/google/envvar"
29
30
"github.com/hashicorp/terraform-provider-google/google/tpgresource"
30
31
transport_tpg "github.com/hashicorp/terraform-provider-google/google/transport"
31
32
)
@@ -92,6 +93,149 @@ resource "google_compute_network" "network-2" {
92
93
` , context )
93
94
}
94
95
96
+ func TestAccDNSPolicy_dnsPolicyMultiprojectExample (t * testing.T ) {
97
+ t .Parallel ()
98
+
99
+ context := map [string ]interface {}{
100
+ "org_id" : envvar .GetTestOrgFromEnv (t ),
101
+ "billing_account" : envvar .GetTestBillingAccountFromEnv (t ),
102
+ "random_suffix" : acctest .RandString (t , 10 ),
103
+ }
104
+
105
+ acctest .VcrTest (t , resource.TestCase {
106
+ PreCheck : func () { acctest .AccTestPreCheck (t ) },
107
+ ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories (t ),
108
+ CheckDestroy : testAccCheckDNSPolicyDestroyProducer (t ),
109
+ Steps : []resource.TestStep {
110
+ {
111
+ Config : testAccDNSPolicy_dnsPolicyMultiprojectExample (context ),
112
+ },
113
+ {
114
+ ResourceName : "google_dns_policy.example-policy-multiproject" ,
115
+ ImportState : true ,
116
+ ImportStateVerify : true ,
117
+ },
118
+ },
119
+ })
120
+ }
121
+
122
+ func testAccDNSPolicy_dnsPolicyMultiprojectExample (context map [string ]interface {}) string {
123
+ return acctest .Nprintf (`
124
+ resource "google_dns_policy" "example-policy-multiproject" {
125
+ name = "tf-test-example-policy-multiproject%{random_suffix}"
126
+ enable_inbound_forwarding = true
127
+
128
+ enable_logging = true
129
+
130
+ networks {
131
+ network_url = google_compute_network.network_1_project_1.id
132
+ }
133
+ networks {
134
+ network_url = google_compute_network.network_2_project_1.id
135
+ }
136
+ networks {
137
+ network_url = google_compute_network.network_1_project_2.id
138
+ }
139
+ networks {
140
+ network_url = google_compute_network.network_2_project_2.id
141
+ }
142
+
143
+ depends_on = [
144
+ google_project_service.compute_project_1,
145
+ google_project_service.dns_project_1,
146
+ google_project_service.compute_project_2,
147
+ google_project_service.dns_project_2,
148
+ ]
149
+ }
150
+
151
+ resource "google_project" "project_1" {
152
+ name = "tf-test-project-1%{random_suffix}"
153
+ project_id = "tf-test-project-1%{random_suffix}"
154
+ org_id = "%{org_id}"
155
+ billing_account = "%{billing_account}"
156
+ }
157
+
158
+ resource "google_project" "project_2" {
159
+ name = "tf-test-project-2%{random_suffix}"
160
+ project_id = "tf-test-project-2%{random_suffix}"
161
+ org_id = "%{org_id}"
162
+ billing_account = "%{billing_account}"
163
+ }
164
+
165
+ resource "google_compute_network" "network_1_project_1" {
166
+ name = "tf-test-network-1%{random_suffix}"
167
+ project = google_project.project_1.project_id
168
+ auto_create_subnetworks = false
169
+ depends_on = [
170
+ google_project_service.compute_project_1,
171
+ google_project_service.dns_project_1,
172
+ ]
173
+ }
174
+
175
+ resource "google_compute_network" "network_2_project_1" {
176
+ name = "tf-test-network-2%{random_suffix}"
177
+ project = google_project.project_1.project_id
178
+ auto_create_subnetworks = false
179
+ depends_on = [
180
+ google_project_service.compute_project_1,
181
+ google_project_service.dns_project_1,
182
+ ]
183
+ }
184
+
185
+ resource "google_compute_network" "network_1_project_2" {
186
+ name = "tf-test-network-1%{random_suffix}"
187
+ project = google_project.project_2.project_id
188
+ auto_create_subnetworks = false
189
+ depends_on = [
190
+ google_project_service.compute_project_2,
191
+ google_project_service.dns_project_2,
192
+ ]
193
+ }
194
+
195
+ resource "google_compute_network" "network_2_project_2" {
196
+ name = "tf-test-network-2%{random_suffix}"
197
+ project = google_project.project_2.project_id
198
+ auto_create_subnetworks = false
199
+ depends_on = [
200
+ google_project_service.compute_project_2,
201
+ google_project_service.dns_project_2,
202
+ ]
203
+ }
204
+
205
+ resource "google_project_service" "compute_project_1" {
206
+ project = google_project.project_1.project_id
207
+ service = "compute.googleapis.com"
208
+ depends_on = [
209
+ google_project.project_1,
210
+ ]
211
+ }
212
+
213
+ resource "google_project_service" "compute_project_2" {
214
+ project = google_project.project_2.project_id
215
+ service = "compute.googleapis.com"
216
+ depends_on = [
217
+ google_project_service.dns_project_1
218
+ ]
219
+ }
220
+
221
+ resource "google_project_service" "dns_project_1" {
222
+ project = google_project.project_1.project_id
223
+ service = "dns.googleapis.com"
224
+ depends_on = [
225
+ google_project_service.compute_project_1
226
+ ]
227
+ }
228
+
229
+ resource "google_project_service" "dns_project_2" {
230
+ project = google_project.project_2.project_id
231
+ service = "dns.googleapis.com"
232
+ depends_on = [
233
+ google_project_service.compute_project_2,
234
+ ]
235
+ }
236
+ ` , context )
237
+ }
238
+
95
239
func testAccCheckDNSPolicyDestroyProducer (t * testing.T ) func (s * terraform.State ) error {
96
240
return func (s * terraform.State ) error {
97
241
for name , rs := range s .RootModule ().Resources {
0 commit comments