Skip to content

Commit 8d2f212

Browse files
Adding deployment type to beta provider. (#12560) (#8939)
[upstream:8fa7b5cb93bd4fcaace4812525d9136783831467] Signed-off-by: Modular Magician <[email protected]>
1 parent 8b8596c commit 8d2f212

File tree

5 files changed

+220
-13
lines changed

5 files changed

+220
-13
lines changed

.changelog/12560.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
parallelstore: added `deployment_type` to `google_parallelstore_instance`
3+
```

google-beta/services/parallelstore/resource_parallelstore_instance.go

+36
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,15 @@ func ResourceParallelstoreInstance() *schema.Resource {
7878
ForceNew: true,
7979
Description: `Part of 'parent'. See documentation of 'projectsId'.`,
8080
},
81+
"deployment_type": {
82+
Type: schema.TypeString,
83+
Optional: true,
84+
Description: `Parallelstore Instance deployment type.
85+
Possible values:
86+
DEPLOYMENT_TYPE_UNSPECIFIED
87+
SCRATCH
88+
PERSISTENT`,
89+
},
8190
"description": {
8291
Type: schema.TypeString,
8392
Optional: true,
@@ -271,6 +280,12 @@ func resourceParallelstoreInstanceCreate(d *schema.ResourceData, meta interface{
271280
} else if v, ok := d.GetOkExists("directory_stripe_level"); !tpgresource.IsEmptyValue(reflect.ValueOf(directoryStripeLevelProp)) && (ok || !reflect.DeepEqual(v, directoryStripeLevelProp)) {
272281
obj["directoryStripeLevel"] = directoryStripeLevelProp
273282
}
283+
deploymentTypeProp, err := expandParallelstoreInstanceDeploymentType(d.Get("deployment_type"), d, config)
284+
if err != nil {
285+
return err
286+
} else if v, ok := d.GetOkExists("deployment_type"); !tpgresource.IsEmptyValue(reflect.ValueOf(deploymentTypeProp)) && (ok || !reflect.DeepEqual(v, deploymentTypeProp)) {
287+
obj["deploymentType"] = deploymentTypeProp
288+
}
274289
labelsProp, err := expandParallelstoreInstanceEffectiveLabels(d.Get("effective_labels"), d, config)
275290
if err != nil {
276291
return err
@@ -432,6 +447,9 @@ func resourceParallelstoreInstanceRead(d *schema.ResourceData, meta interface{})
432447
if err := d.Set("directory_stripe_level", flattenParallelstoreInstanceDirectoryStripeLevel(res["directoryStripeLevel"], d, config)); err != nil {
433448
return fmt.Errorf("Error reading Instance: %s", err)
434449
}
450+
if err := d.Set("deployment_type", flattenParallelstoreInstanceDeploymentType(res["deploymentType"], d, config)); err != nil {
451+
return fmt.Errorf("Error reading Instance: %s", err)
452+
}
435453
if err := d.Set("terraform_labels", flattenParallelstoreInstanceTerraformLabels(res["labels"], d, config)); err != nil {
436454
return fmt.Errorf("Error reading Instance: %s", err)
437455
}
@@ -476,6 +494,12 @@ func resourceParallelstoreInstanceUpdate(d *schema.ResourceData, meta interface{
476494
} else if v, ok := d.GetOkExists("directory_stripe_level"); !tpgresource.IsEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, directoryStripeLevelProp)) {
477495
obj["directoryStripeLevel"] = directoryStripeLevelProp
478496
}
497+
deploymentTypeProp, err := expandParallelstoreInstanceDeploymentType(d.Get("deployment_type"), d, config)
498+
if err != nil {
499+
return err
500+
} else if v, ok := d.GetOkExists("deployment_type"); !tpgresource.IsEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, deploymentTypeProp)) {
501+
obj["deploymentType"] = deploymentTypeProp
502+
}
479503
labelsProp, err := expandParallelstoreInstanceEffectiveLabels(d.Get("effective_labels"), d, config)
480504
if err != nil {
481505
return err
@@ -504,6 +528,10 @@ func resourceParallelstoreInstanceUpdate(d *schema.ResourceData, meta interface{
504528
updateMask = append(updateMask, "directoryStripeLevel")
505529
}
506530

531+
if d.HasChange("deployment_type") {
532+
updateMask = append(updateMask, "deploymentType")
533+
}
534+
507535
if d.HasChange("effective_labels") {
508536
updateMask = append(updateMask, "labels")
509537
}
@@ -693,6 +721,10 @@ func flattenParallelstoreInstanceDirectoryStripeLevel(v interface{}, d *schema.R
693721
return v
694722
}
695723

724+
func flattenParallelstoreInstanceDeploymentType(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
725+
return v
726+
}
727+
696728
func flattenParallelstoreInstanceTerraformLabels(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
697729
if v == nil {
698730
return v
@@ -736,6 +768,10 @@ func expandParallelstoreInstanceDirectoryStripeLevel(v interface{}, d tpgresourc
736768
return v, nil
737769
}
738770

771+
func expandParallelstoreInstanceDeploymentType(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
772+
return v, nil
773+
}
774+
739775
func expandParallelstoreInstanceEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
740776
if v == nil {
741777
return map[string]string{}, nil

google-beta/services/parallelstore/resource_parallelstore_instance_generated_test.go

+70
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,76 @@ import (
3030
transport_tpg "github.com/hashicorp/terraform-provider-google-beta/google-beta/transport"
3131
)
3232

33+
func TestAccParallelstoreInstance_parallelstoreInstanceBasicBetaExample(t *testing.T) {
34+
t.Parallel()
35+
36+
context := map[string]interface{}{
37+
"random_suffix": acctest.RandString(t, 10),
38+
}
39+
40+
acctest.VcrTest(t, resource.TestCase{
41+
PreCheck: func() { acctest.AccTestPreCheck(t) },
42+
ProtoV5ProviderFactories: acctest.ProtoV5ProviderBetaFactories(t),
43+
CheckDestroy: testAccCheckParallelstoreInstanceDestroyProducer(t),
44+
Steps: []resource.TestStep{
45+
{
46+
Config: testAccParallelstoreInstance_parallelstoreInstanceBasicBetaExample(context),
47+
},
48+
{
49+
ResourceName: "google_parallelstore_instance.instance",
50+
ImportState: true,
51+
ImportStateVerify: true,
52+
ImportStateVerifyIgnore: []string{"instance_id", "labels", "location", "terraform_labels"},
53+
},
54+
},
55+
})
56+
}
57+
58+
func testAccParallelstoreInstance_parallelstoreInstanceBasicBetaExample(context map[string]interface{}) string {
59+
return acctest.Nprintf(`
60+
resource "google_parallelstore_instance" "instance" {
61+
provider = google-beta
62+
instance_id = "instance%{random_suffix}"
63+
location = "us-central1-a"
64+
description = "test instance"
65+
capacity_gib = 12000
66+
network = google_compute_network.network.name
67+
file_stripe_level = "FILE_STRIPE_LEVEL_MIN"
68+
directory_stripe_level = "DIRECTORY_STRIPE_LEVEL_MIN"
69+
deployment_type = "SCRATCH"
70+
labels = {
71+
test = "value"
72+
}
73+
depends_on = [google_service_networking_connection.default]
74+
}
75+
76+
resource "google_compute_network" "network" {
77+
provider = google-beta
78+
name = "network%{random_suffix}"
79+
auto_create_subnetworks = true
80+
mtu = 8896
81+
}
82+
83+
# Create an IP address
84+
resource "google_compute_global_address" "private_ip_alloc" {
85+
provider = google-beta
86+
name = "address%{random_suffix}"
87+
purpose = "VPC_PEERING"
88+
address_type = "INTERNAL"
89+
prefix_length = 24
90+
network = google_compute_network.network.id
91+
}
92+
93+
# Create a private connection
94+
resource "google_service_networking_connection" "default" {
95+
provider = google-beta
96+
network = google_compute_network.network.id
97+
service = "servicenetworking.googleapis.com"
98+
reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name]
99+
}
100+
`, context)
101+
}
102+
33103
func TestAccParallelstoreInstance_parallelstoreInstanceBasicExample(t *testing.T) {
34104
t.Parallel()
35105

google-beta/services/parallelstore/resource_parallelstore_instance_test.go

+53-13
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,13 @@ func TestAccParallelstoreInstance_parallelstoreInstanceBasicExample_update(t *te
3535

3636
acctest.VcrTest(t, resource.TestCase{
3737
PreCheck: func() { acctest.AccTestPreCheck(t) },
38-
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
39-
CheckDestroy: testAccCheckParallelstoreInstanceDestroyProducer(t),
38+
ProtoV5ProviderFactories: acctest.ProtoV5ProviderBetaFactories(t),
39+
40+
CheckDestroy: testAccCheckParallelstoreInstanceDestroyProducer(t),
4041
Steps: []resource.TestStep{
42+
4143
{
42-
Config: testAccParallelstoreInstance_parallelstoreInstanceBasicExample_basic(context),
43-
},
44-
{
45-
ResourceName: "google_parallelstore_instance.instance",
46-
ImportState: true,
47-
ImportStateVerify: true,
48-
ImportStateVerifyIgnore: []string{"location", "instance_id", "labels", "terraform_labels"},
49-
},
50-
{
51-
Config: testAccParallelstoreInstance_parallelstoreInstanceBasicExample_update(context),
44+
Config: testAccParallelstoreInstance_parallelstoreInstanceBasicExampleBeta_basic(context),
5245
},
5346
{
5447
ResourceName: "google_parallelstore_instance.instance",
@@ -111,7 +104,6 @@ resource "google_parallelstore_instance" "instance" {
111104
description = "test instance updated"
112105
capacity_gib = 12000
113106
network = google_compute_network.network.name
114-
115107
labels = {
116108
test = "value23"
117109
}
@@ -143,3 +135,51 @@ resource "google_service_networking_connection" "default" {
143135
}
144136
`, context)
145137
}
138+
139+
func testAccParallelstoreInstance_parallelstoreInstanceBasicExampleBeta_basic(context map[string]interface{}) string {
140+
return acctest.Nprintf(`
141+
resource "google_parallelstore_instance" "instance" {
142+
provider = google-beta
143+
instance_id = "instance%{random_suffix}"
144+
location = "us-central1-a"
145+
description = "test instance"
146+
capacity_gib = 12000
147+
deployment_type = "SCRATCH"
148+
network = google_compute_network.network.name
149+
reserved_ip_range = google_compute_global_address.private_ip_alloc.name
150+
file_stripe_level = "FILE_STRIPE_LEVEL_MIN"
151+
directory_stripe_level = "DIRECTORY_STRIPE_LEVEL_MIN"
152+
labels = {
153+
test = "value"
154+
}
155+
depends_on = [google_service_networking_connection.default]
156+
}
157+
158+
resource "google_compute_network" "network" {
159+
provider = google-beta
160+
name = "network%{random_suffix}"
161+
auto_create_subnetworks = true
162+
mtu = 8896
163+
}
164+
165+
166+
167+
# Create an IP address
168+
resource "google_compute_global_address" "private_ip_alloc" {
169+
provider = google-beta
170+
name = "address%{random_suffix}"
171+
purpose = "VPC_PEERING"
172+
address_type = "INTERNAL"
173+
prefix_length = 24
174+
network = google_compute_network.network.id
175+
}
176+
177+
# Create a private connection
178+
resource "google_service_networking_connection" "default" {
179+
provider = google-beta
180+
network = google_compute_network.network.id
181+
service = "servicenetworking.googleapis.com"
182+
reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name]
183+
}
184+
`, context)
185+
}

website/docs/r/parallelstore_instance.html.markdown

+58
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,56 @@ A Parallelstore Instance.
2323

2424

2525

26+
<div class = "oics-button" style="float: right; margin: 0 0 -15px">
27+
<a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.jpy.wang%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md&cloudshell_working_dir=parallelstore_instance_basic_beta&open_in_editor=main.tf" target="_blank">
28+
<img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;">
29+
</a>
30+
</div>
31+
## Example Usage - Parallelstore Instance Basic Beta
32+
33+
34+
```hcl
35+
resource "google_parallelstore_instance" "instance" {
36+
provider = google-beta
37+
instance_id = "instance"
38+
location = "us-central1-a"
39+
description = "test instance"
40+
capacity_gib = 12000
41+
network = google_compute_network.network.name
42+
file_stripe_level = "FILE_STRIPE_LEVEL_MIN"
43+
directory_stripe_level = "DIRECTORY_STRIPE_LEVEL_MIN"
44+
deployment_type = "SCRATCH"
45+
labels = {
46+
test = "value"
47+
}
48+
depends_on = [google_service_networking_connection.default]
49+
}
50+
51+
resource "google_compute_network" "network" {
52+
provider = google-beta
53+
name = "network"
54+
auto_create_subnetworks = true
55+
mtu = 8896
56+
}
57+
58+
# Create an IP address
59+
resource "google_compute_global_address" "private_ip_alloc" {
60+
provider = google-beta
61+
name = "address"
62+
purpose = "VPC_PEERING"
63+
address_type = "INTERNAL"
64+
prefix_length = 24
65+
network = google_compute_network.network.id
66+
}
67+
68+
# Create a private connection
69+
resource "google_service_networking_connection" "default" {
70+
provider = google-beta
71+
network = google_compute_network.network.id
72+
service = "servicenetworking.googleapis.com"
73+
reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name]
74+
}
75+
```
2676
<div class = "oics-button" style="float: right; margin: 0 0 -15px">
2777
<a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.jpy.wang%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md&cloudshell_working_dir=parallelstore_instance_basic&open_in_editor=main.tf" target="_blank">
2878
<img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;">
@@ -157,6 +207,14 @@ The following arguments are supported:
157207
DIRECTORY_STRIPE_LEVEL_BALANCED
158208
DIRECTORY_STRIPE_LEVEL_MAX
159209

210+
* `deployment_type` -
211+
(Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html))
212+
Parallelstore Instance deployment type.
213+
Possible values:
214+
DEPLOYMENT_TYPE_UNSPECIFIED
215+
SCRATCH
216+
PERSISTENT
217+
160218
* `project` - (Optional) The ID of the project in which the resource belongs.
161219
If it is not provided, the provider project is used.
162220

0 commit comments

Comments
 (0)