From e3bd6b9a1d84901b7afacdff2284420ee34ebd8e Mon Sep 17 00:00:00 2001 From: Jonathan Liuti Date: Mon, 18 Dec 2017 18:47:11 +0100 Subject: [PATCH] Add configurable timeouts to subnetworks (#871) --- google/resource_compute_subnetwork.go | 15 +++++++++++---- website/docs/r/compute_subnetwork.html.markdown | 9 +++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/google/resource_compute_subnetwork.go b/google/resource_compute_subnetwork.go index 5105bb4c306..3011e2c1d82 100644 --- a/google/resource_compute_subnetwork.go +++ b/google/resource_compute_subnetwork.go @@ -9,6 +9,7 @@ import ( "github.com/hashicorp/terraform/helper/schema" computeBeta "google.golang.org/api/compute/v0.beta" "google.golang.org/api/compute/v1" + "time" ) var ( @@ -28,6 +29,12 @@ func resourceComputeSubnetwork() *schema.Resource { State: resourceComputeSubnetworkImportState, }, + Timeouts: &schema.ResourceTimeout{ + Create: schema.DefaultTimeout(6 * time.Minute), + Update: schema.DefaultTimeout(6 * time.Minute), + Delete: schema.DefaultTimeout(6 * time.Minute), + }, + Schema: map[string]*schema.Schema{ "ip_cidr_range": &schema.Schema{ Type: schema.TypeString, @@ -152,7 +159,7 @@ func resourceComputeSubnetworkCreate(d *schema.ResourceData, meta interface{}) e subnetwork.Region = region d.SetId(createSubnetID(subnetwork)) - err = computeSharedOperationWait(config.clientCompute, op, project, "Creating Subnetwork") + err = computeSharedOperationWaitTime(config.clientCompute, op, project, int(d.Timeout(schema.TimeoutCreate).Minutes()), "Creating Subnetwork") if err != nil { return err } @@ -264,7 +271,7 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error updating subnetwork PrivateIpGoogleAccess: %s", err) } - err = computeSharedOperationWait(config.clientCompute, op, project, "Updating Subnetwork PrivateIpGoogleAccess") + err = computeSharedOperationWaitTime(config.clientCompute, op, project, int(d.Timeout(schema.TimeoutUpdate).Minutes()), "Updating Subnetwork PrivateIpGoogleAccess") if err != nil { return err } @@ -284,7 +291,7 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error updating subnetwork SecondaryIpRanges: %s", err) } - err = computeSharedOperationWait(config.clientCompute, op, project, "Updating Subnetwork SecondaryIpRanges") + err = computeSharedOperationWaitTime(config.clientCompute, op, project, int(d.Timeout(schema.TimeoutUpdate).Minutes()), "Updating Subnetwork SecondaryIpRanges") if err != nil { return err } @@ -317,7 +324,7 @@ func resourceComputeSubnetworkDelete(d *schema.ResourceData, meta interface{}) e return fmt.Errorf("Error deleting subnetwork: %s", err) } - err = computeSharedOperationWait(config.clientCompute, op, project, "Deleting Subnetwork") + err = computeSharedOperationWaitTime(config.clientCompute, op, project, int(d.Timeout(schema.TimeoutDelete).Minutes()), "Deleting Subnetwork") if err != nil { return err } diff --git a/website/docs/r/compute_subnetwork.html.markdown b/website/docs/r/compute_subnetwork.html.markdown index 7724f437359..52a376f7816 100644 --- a/website/docs/r/compute_subnetwork.html.markdown +++ b/website/docs/r/compute_subnetwork.html.markdown @@ -75,6 +75,15 @@ exported: * `self_link` - The URI of the created resource. +## Timeouts + +This resource provides the following +[Timeouts](/docs/configuration/resources.html#timeouts) configuration options: + +- `create` - Default is `6 minutes` +- `update` - Default is `6 minutes` +- `delete` - Default is `6 minutes` + ## Import Subnetwork can be imported using the `region` and `name`, e.g.