Skip to content

Commit 9dc3ce9

Browse files
Add support for creating a memcached instance that uses a specific IP address range (#9670) (#17101)
* Update Instance.yaml Add support for creating a memcached instance that uses a specific IP address range. * Add support for creating a memcached instance that uses a specific IP address range Add support for creating a memcached instance that uses a specific IP address range. Github issue - [https://github.com/hashicorp/terraform-provider-google/issues/16819](https://www.google.com/url?q=https://github.com/hashicorp/terraform-provider-google/issues/16819&sa=D&source=buganizer&usg=AOvVaw0idc98DoPRr2rVXo0ACl0V) * Update Instance.yaml reservedIpRangeId is used for intial creation only so keeping ignore_read and removing is_set , default_from_api * Update resource_memcache_instance_test.go Update test for reserved_ip_range_id field * Update resource_memcache_instance_test.go ignore output only fields in update test to fix testAccMemcacheInstance_update * Update resource_memcache_instance_test.go Resolved the formatting errors. [upstream:bd70fcd3fa470cc6c19efc755a78f3cd43c1f592] Signed-off-by: Modular Magician <[email protected]>
1 parent f6e4a1b commit 9dc3ce9

File tree

5 files changed

+36
-4
lines changed

5 files changed

+36
-4
lines changed

.changelog/9670.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
memcache: added `reserved_ip_range_id` field to `google_memcache_instance` resource
3+
```

google/services/memcache/resource_memcache_instance.go

+21
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,17 @@ determined by our system based on the latest supported minor version. Default va
250250
ForceNew: true,
251251
Description: `The region of the Memcache instance. If it is not provided, the provider region is used.`,
252252
},
253+
"reserved_ip_range_id": {
254+
Type: schema.TypeList,
255+
Optional: true,
256+
ForceNew: true,
257+
Description: `Contains the name of allocated IP address ranges associated with
258+
the private service access connection for example, "test-default"
259+
associated with IP range 10.0.0.0/29.`,
260+
Elem: &schema.Schema{
261+
Type: schema.TypeString,
262+
},
263+
},
253264
"zones": {
254265
Type: schema.TypeSet,
255266
Computed: true,
@@ -422,6 +433,12 @@ func resourceMemcacheInstanceCreate(d *schema.ResourceData, meta interface{}) er
422433
} else if v, ok := d.GetOkExists("maintenance_policy"); !tpgresource.IsEmptyValue(reflect.ValueOf(maintenancePolicyProp)) && (ok || !reflect.DeepEqual(v, maintenancePolicyProp)) {
423434
obj["maintenancePolicy"] = maintenancePolicyProp
424435
}
436+
reservedIpRangeIdProp, err := expandMemcacheInstanceReservedIpRangeId(d.Get("reserved_ip_range_id"), d, config)
437+
if err != nil {
438+
return err
439+
} else if v, ok := d.GetOkExists("reserved_ip_range_id"); !tpgresource.IsEmptyValue(reflect.ValueOf(reservedIpRangeIdProp)) && (ok || !reflect.DeepEqual(v, reservedIpRangeIdProp)) {
440+
obj["reservedIpRangeId"] = reservedIpRangeIdProp
441+
}
425442
labelsProp, err := expandMemcacheInstanceEffectiveLabels(d.Get("effective_labels"), d, config)
426443
if err != nil {
427444
return err
@@ -1445,6 +1462,10 @@ func expandMemcacheInstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeNano
14451462
return v, nil
14461463
}
14471464

1465+
func expandMemcacheInstanceReservedIpRangeId(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1466+
return v, nil
1467+
}
1468+
14481469
func expandMemcacheInstanceEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
14491470
if v == nil {
14501471
return map[string]string{}, nil

google/services/memcache/resource_memcache_instance_generated_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func TestAccMemcacheInstance_memcacheInstanceBasicTestExample(t *testing.T) {
5050
ResourceName: "google_memcache_instance.instance",
5151
ImportState: true,
5252
ImportStateVerify: true,
53-
ImportStateVerifyIgnore: []string{"name", "region", "labels", "terraform_labels"},
53+
ImportStateVerifyIgnore: []string{"name", "reserved_ip_range_id", "region", "labels", "terraform_labels"},
5454
},
5555
},
5656
})

google/services/memcache/resource_memcache_instance_test.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ func TestAccMemcacheInstance_update(t *testing.T) {
2626
Config: testAccMemcacheInstance_update(prefix, name, network),
2727
},
2828
{
29-
ResourceName: "google_memcache_instance.test",
30-
ImportState: true,
31-
ImportStateVerify: true,
29+
ResourceName: "google_memcache_instance.test",
30+
ImportState: true,
31+
ImportStateVerify: true,
32+
ImportStateVerifyIgnore: []string{"reserved_ip_range_id"},
3233
},
3334
{
3435
Config: testAccMemcacheInstance_update2(prefix, name, network),
@@ -61,6 +62,7 @@ resource "google_memcache_instance" "test" {
6162
"max-item-size" = "8388608"
6263
}
6364
}
65+
reserved_ip_range_id = ["tf-bootstrap-addr-memcache-instance-update-1"]
6466
}
6567
6668
data "google_compute_network" "memcache_network" {

website/docs/r/memcache_instance.html.markdown

+6
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,12 @@ The following arguments are supported:
159159
Maintenance policy for an instance.
160160
Structure is [documented below](#nested_maintenance_policy).
161161

162+
* `reserved_ip_range_id` -
163+
(Optional)
164+
Contains the name of allocated IP address ranges associated with
165+
the private service access connection for example, "test-default"
166+
associated with IP range 10.0.0.0/29.
167+
162168
* `region` -
163169
(Optional)
164170
The region of the Memcache instance. If it is not provided, the provider region is used.

0 commit comments

Comments
 (0)