Skip to content

Commit c6104e0

Browse files
george-pengamanMahendroo
authored andcommitted
Enable update in apigee reference (GoogleCloudPlatform#11865)
1 parent 574cedc commit c6104e0

File tree

2 files changed

+220
-2
lines changed

2 files changed

+220
-2
lines changed

mmv1/products/apigee/EnvReferences.yaml

-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ base_url: '{{env_id}}/references'
2525
self_link: '{{env_id}}/references/{{name}}'
2626
create_url: '{{env_id}}/references/'
2727
delete_url: '{{env_id}}/references/{{name}}'
28-
immutable: true
2928
import_format:
3029
- '{{env_id}}/references/{{name}}'
3130
- '{{env_id}}/{{name}}'
@@ -79,4 +78,3 @@ properties:
7978
description: |
8079
Required. The id of the resource to which this reference refers. Must be the id of a resource that exists in the parent environment and is of the given resourceType.
8180
required: true
82-
immutable: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
package apigee_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
7+
8+
"github.com/hashicorp/terraform-provider-google/google/acctest"
9+
"github.com/hashicorp/terraform-provider-google/google/envvar"
10+
)
11+
12+
func TestAccApigeeEnvReferences_apigeeEnvironmentReferenceTest_Update(t *testing.T) {
13+
t.Parallel()
14+
15+
context := map[string]interface{}{
16+
"billing_account": envvar.GetTestBillingAccountFromEnv(t),
17+
"org_id": envvar.GetTestOrgFromEnv(t),
18+
"random_suffix": acctest.RandString(t, 10),
19+
}
20+
21+
acctest.VcrTest(t, resource.TestCase{
22+
PreCheck: func() { acctest.AccTestPreCheck(t) },
23+
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
24+
CheckDestroy: testAccCheckApigeeEnvReferencesDestroyProducer(t),
25+
Steps: []resource.TestStep{
26+
{
27+
Config: testAccApigeeEnvReferences_apigeeEnvironmentReferenceTest_full(context),
28+
},
29+
{
30+
ResourceName: "google_apigee_env_references.apigee_environment_reference",
31+
ImportState: true,
32+
ImportStateVerify: true,
33+
ImportStateVerifyIgnore: []string{"env_id"},
34+
},
35+
{
36+
Config: testAccApigeeEnvReferences_apigeeEnvironmentReferenceTest_update(context),
37+
},
38+
{
39+
ResourceName: "google_apigee_env_references.apigee_environment_reference",
40+
ImportState: true,
41+
ImportStateVerify: true,
42+
ImportStateVerifyIgnore: []string{"env_id"},
43+
},
44+
},
45+
})
46+
}
47+
48+
func testAccApigeeEnvReferences_apigeeEnvironmentReferenceTest_full(context map[string]interface{}) string {
49+
return acctest.Nprintf(`
50+
resource "google_project" "project" {
51+
project_id = "tf-test%{random_suffix}"
52+
name = "tf-test%{random_suffix}"
53+
org_id = "%{org_id}"
54+
billing_account = "%{billing_account}"
55+
deletion_policy = "DELETE"
56+
}
57+
58+
resource "google_project_service" "apigee" {
59+
project = google_project.project.project_id
60+
service = "apigee.googleapis.com"
61+
}
62+
63+
resource "google_project_service" "servicenetworking" {
64+
project = google_project.project.project_id
65+
service = "servicenetworking.googleapis.com"
66+
depends_on = [google_project_service.apigee]
67+
}
68+
69+
resource "google_project_service" "compute" {
70+
project = google_project.project.project_id
71+
service = "compute.googleapis.com"
72+
depends_on = [google_project_service.servicenetworking]
73+
}
74+
75+
resource "google_compute_network" "apigee_network" {
76+
name = "apigee-network"
77+
project = google_project.project.project_id
78+
depends_on = [google_project_service.compute]
79+
}
80+
81+
resource "google_compute_global_address" "apigee_range" {
82+
name = "apigee-range"
83+
purpose = "VPC_PEERING"
84+
address_type = "INTERNAL"
85+
prefix_length = 16
86+
network = google_compute_network.apigee_network.id
87+
project = google_project.project.project_id
88+
}
89+
90+
resource "google_service_networking_connection" "apigee_vpc_connection" {
91+
network = google_compute_network.apigee_network.id
92+
service = "servicenetworking.googleapis.com"
93+
reserved_peering_ranges = [google_compute_global_address.apigee_range.name]
94+
depends_on = [google_project_service.servicenetworking]
95+
}
96+
97+
resource "google_apigee_organization" "apigee_org" {
98+
analytics_region = "us-central1"
99+
project_id = google_project.project.project_id
100+
authorized_network = google_compute_network.apigee_network.id
101+
depends_on = [
102+
google_service_networking_connection.apigee_vpc_connection,
103+
google_project_service.apigee,
104+
]
105+
}
106+
107+
resource "google_apigee_environment" "apigee_environment" {
108+
org_id = google_apigee_organization.apigee_org.id
109+
name = "tf-test%{random_suffix}"
110+
description = "Apigee Environment"
111+
display_name = "environment-1"
112+
}
113+
114+
resource "google_apigee_env_keystore" "apigee_environment_keystore_1" {
115+
name = "tf-test-keystore1%{random_suffix}"
116+
env_id = google_apigee_environment.apigee_environment.id
117+
}
118+
119+
resource "google_apigee_env_references" "apigee_environment_reference" {
120+
env_id = google_apigee_environment.apigee_environment.id
121+
name = "tf-test-reference%{random_suffix}"
122+
resource_type = "KeyStore"
123+
refers = google_apigee_env_keystore.apigee_environment_keystore_1.name
124+
depends_on = [google_apigee_env_keystore.apigee_environment_keystore_1]
125+
}
126+
127+
resource "google_apigee_env_keystore" "apigee_environment_keystore_2" {
128+
name = "tf-test-keystore2%{random_suffix}"
129+
env_id = google_apigee_environment.apigee_environment.id
130+
depends_on = [google_apigee_env_references.apigee_environment_reference]
131+
}
132+
`, context)
133+
}
134+
135+
func testAccApigeeEnvReferences_apigeeEnvironmentReferenceTest_update(context map[string]interface{}) string {
136+
return acctest.Nprintf(`
137+
resource "google_project" "project" {
138+
project_id = "tf-test%{random_suffix}"
139+
name = "tf-test%{random_suffix}"
140+
org_id = "%{org_id}"
141+
billing_account = "%{billing_account}"
142+
deletion_policy = "DELETE"
143+
}
144+
145+
resource "google_project_service" "apigee" {
146+
project = google_project.project.project_id
147+
service = "apigee.googleapis.com"
148+
}
149+
150+
resource "google_project_service" "servicenetworking" {
151+
project = google_project.project.project_id
152+
service = "servicenetworking.googleapis.com"
153+
depends_on = [google_project_service.apigee]
154+
}
155+
156+
resource "google_project_service" "compute" {
157+
project = google_project.project.project_id
158+
service = "compute.googleapis.com"
159+
depends_on = [google_project_service.servicenetworking]
160+
}
161+
162+
resource "google_compute_network" "apigee_network" {
163+
name = "apigee-network"
164+
project = google_project.project.project_id
165+
depends_on = [google_project_service.compute]
166+
}
167+
168+
resource "google_compute_global_address" "apigee_range" {
169+
name = "apigee-range"
170+
purpose = "VPC_PEERING"
171+
address_type = "INTERNAL"
172+
prefix_length = 16
173+
network = google_compute_network.apigee_network.id
174+
project = google_project.project.project_id
175+
}
176+
177+
resource "google_service_networking_connection" "apigee_vpc_connection" {
178+
network = google_compute_network.apigee_network.id
179+
service = "servicenetworking.googleapis.com"
180+
reserved_peering_ranges = [google_compute_global_address.apigee_range.name]
181+
depends_on = [google_project_service.servicenetworking]
182+
}
183+
184+
resource "google_apigee_organization" "apigee_org" {
185+
analytics_region = "us-central1"
186+
project_id = google_project.project.project_id
187+
authorized_network = google_compute_network.apigee_network.id
188+
depends_on = [
189+
google_service_networking_connection.apigee_vpc_connection,
190+
google_project_service.apigee,
191+
]
192+
}
193+
194+
resource "google_apigee_environment" "apigee_environment" {
195+
org_id = google_apigee_organization.apigee_org.id
196+
name = "tf-test%{random_suffix}"
197+
description = "Apigee Environment"
198+
display_name = "environment-1"
199+
}
200+
201+
resource "google_apigee_env_keystore" "apigee_environment_keystore_2" {
202+
name = "tf-test-keystore2%{random_suffix}"
203+
env_id = google_apigee_environment.apigee_environment.id
204+
}
205+
206+
resource "google_apigee_env_references" "apigee_environment_reference" {
207+
env_id = google_apigee_environment.apigee_environment.id
208+
name = "tf-test-reference%{random_suffix}"
209+
resource_type = "KeyStore"
210+
refers = google_apigee_env_keystore.apigee_environment_keystore_2.name
211+
depends_on = [google_apigee_env_keystore.apigee_environment_keystore_2]
212+
}
213+
214+
resource "google_apigee_env_keystore" "apigee_environment_keystore_1" {
215+
name = "tf-test-keystore1%{random_suffix}"
216+
env_id = google_apigee_environment.apigee_environment.id
217+
depends_on = [google_apigee_env_references.apigee_environment_reference]
218+
}
219+
`, context)
220+
}

0 commit comments

Comments
 (0)