Skip to content

Commit 3d885ed

Browse files
committed
fix(apigee): added in-place update of google_apigee_instance resource
1 parent c911043 commit 3d885ed

File tree

2 files changed

+117
-2
lines changed

2 files changed

+117
-2
lines changed

mmv1/products/apigee/Environment.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,13 @@ properties:
114114
description: |
115115
Display name of the environment.
116116
required: false
117-
immutable: true
117+
immutable: false
118118
- name: 'description'
119119
type: String
120120
description: |
121121
Description of the environment.
122122
required: false
123-
immutable: true
123+
immutable: false
124124
- name: 'deploymentType'
125125
type: Enum
126126
description: |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
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 TestAccApigeeEnvironment_apigeeEnvironmentUpdateTest(t *testing.T) {
13+
acctest.SkipIfVcr(t)
14+
t.Parallel()
15+
16+
context := map[string]interface{}{
17+
"billing_account": envvar.GetTestBillingAccountFromEnv(t),
18+
"org_id": envvar.GetTestOrgFromEnv(t),
19+
"random_suffix": acctest.RandString(t, 10),
20+
}
21+
22+
acctest.VcrTest(t, resource.TestCase{
23+
PreCheck: func() { acctest.AccTestPreCheck(t) },
24+
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
25+
CheckDestroy: testAccCheckApigeeEnvironmentDestroyProducer(t),
26+
Steps: []resource.TestStep{
27+
{
28+
Config: testAccApigeeEnvironment_apigeeEnvironmentBasicTestExample(context),
29+
},
30+
{
31+
ResourceName: "google_apigee_environment.apigee_environment",
32+
ImportState: true,
33+
ImportStateVerify: true,
34+
ImportStateVerifyIgnore: []string{"org_id"},
35+
},
36+
{
37+
Config: testAccApigeeEnvironment_apigeeEnvironmentUpdateTest(context),
38+
},
39+
{
40+
ResourceName: "google_apigee_environment.apigee_environment",
41+
ImportState: true,
42+
ImportStateVerify: true,
43+
ImportStateVerifyIgnore: []string{"org_id"},
44+
},
45+
},
46+
})
47+
}
48+
49+
func testAccApigeeEnvironment_apigeeEnvironmentUpdateTest(context map[string]interface{}) string {
50+
return acctest.Nprintf(`
51+
resource "google_project" "project" {
52+
project_id = "tf-test%{random_suffix}"
53+
name = "tf-test%{random_suffix}"
54+
org_id = "%{org_id}"
55+
billing_account = "%{billing_account}"
56+
deletion_policy = "DELETE"
57+
}
58+
59+
resource "google_project_service" "apigee" {
60+
project = google_project.project.project_id
61+
service = "apigee.googleapis.com"
62+
}
63+
64+
resource "google_project_service" "servicenetworking" {
65+
project = google_project.project.project_id
66+
service = "servicenetworking.googleapis.com"
67+
depends_on = [google_project_service.apigee]
68+
}
69+
70+
resource "google_project_service" "compute" {
71+
project = google_project.project.project_id
72+
service = "compute.googleapis.com"
73+
depends_on = [google_project_service.servicenetworking]
74+
}
75+
76+
resource "google_compute_network" "apigee_network" {
77+
name = "apigee-network"
78+
project = google_project.project.project_id
79+
depends_on = [google_project_service.compute]
80+
}
81+
82+
resource "google_compute_global_address" "apigee_range" {
83+
name = "apigee-range"
84+
purpose = "VPC_PEERING"
85+
address_type = "INTERNAL"
86+
prefix_length = 16
87+
network = google_compute_network.apigee_network.id
88+
project = google_project.project.project_id
89+
}
90+
91+
resource "google_service_networking_connection" "apigee_vpc_connection" {
92+
network = google_compute_network.apigee_network.id
93+
service = "servicenetworking.googleapis.com"
94+
reserved_peering_ranges = [google_compute_global_address.apigee_range.name]
95+
depends_on = [google_project_service.servicenetworking]
96+
}
97+
98+
resource "google_apigee_organization" "apigee_org" {
99+
analytics_region = "us-central1"
100+
project_id = google_project.project.project_id
101+
authorized_network = google_compute_network.apigee_network.id
102+
depends_on = [
103+
google_service_networking_connection.apigee_vpc_connection,
104+
google_project_service.apigee,
105+
]
106+
}
107+
108+
resource "google_apigee_environment" "apigee_environment" {
109+
org_id = google_apigee_organization.apigee_org.id
110+
name = "tf-test%{random_suffix}"
111+
description = "Updated Apigee Environment Description"
112+
display_name = "environment-1-updated"
113+
}
114+
`, context)
115+
}

0 commit comments

Comments
 (0)