diff --git a/google/cloudfunctions_operation.go b/google/cloudfunctions_operation.go index ba39814c..af38980c 100644 --- a/google/cloudfunctions_operation.go +++ b/google/cloudfunctions_operation.go @@ -18,12 +18,12 @@ func (w *CloudFunctionsOperationWaiter) QueryOp() (interface{}, error) { return w.Service.Operations.Get(w.Op.Name).Do() } -func cloudFunctionsOperationWait(service *cloudfunctions.Service, op *cloudfunctions.Operation, activity string) error { +func cloudFunctionsOperationWait(service *cloudfunctions.Service, op *cloudfunctions.Operation, activity string, timeoutMin int) error { w := &CloudFunctionsOperationWaiter{ Service: service, } if err := w.SetOp(op); err != nil { return err } - return OperationWait(w, activity, 4) + return OperationWait(w, activity, timeoutMin) } diff --git a/google/resource_cloudfunctions_function.go b/google/resource_cloudfunctions_function.go index 980f2e6f..2affed6b 100644 --- a/google/resource_cloudfunctions_function.go +++ b/google/resource_cloudfunctions_function.go @@ -381,7 +381,8 @@ func resourceCloudFunctionsCreate(d *schema.ResourceData, meta interface{}) erro // Name of function should be unique d.SetId(cloudFuncId.terraformId()) - err = cloudFunctionsOperationWait(config.clientCloudFunctions, op, "Creating CloudFunctions Function") + err = cloudFunctionsOperationWait(config.clientCloudFunctions, op, "Creating CloudFunctions Function", + int(d.Timeout(schema.TimeoutCreate).Minutes())) if err != nil { return err } @@ -522,8 +523,8 @@ func resourceCloudFunctionsUpdate(d *schema.ResourceData, meta interface{}) erro return fmt.Errorf("Error while updating cloudfunction configuration: %s", err) } - err = cloudFunctionsOperationWait(config.clientCloudFunctions, op, - "Updating CloudFunctions Function") + err = cloudFunctionsOperationWait(config.clientCloudFunctions, op, "Updating CloudFunctions Function", + int(d.Timeout(schema.TimeoutUpdate).Minutes())) if err != nil { return err } @@ -545,7 +546,8 @@ func resourceCloudFunctionsDestroy(d *schema.ResourceData, meta interface{}) err if err != nil { return err } - err = cloudFunctionsOperationWait(config.clientCloudFunctions, op, "Deleting CloudFunctions Function") + err = cloudFunctionsOperationWait(config.clientCloudFunctions, op, "Deleting CloudFunctions Function", + int(d.Timeout(schema.TimeoutDelete).Minutes())) if err != nil { return err } diff --git a/website/docs/r/cloudfunctions_function.html.markdown b/website/docs/r/cloudfunctions_function.html.markdown index 88818565..2774fa30 100644 --- a/website/docs/r/cloudfunctions_function.html.markdown +++ b/website/docs/r/cloudfunctions_function.html.markdown @@ -117,6 +117,15 @@ exported: * `region` - Region of function. Currently can be only "us-central1". If it is not provided, the provider region is used. +## Timeouts + +This resource provides the following +[Timeouts](/docs/configuration/resources.html#timeouts) configuration options: + +- `create` - Default is 5 minutes. +- `update` - Default is 5 minutes. +- `delete` - Default is 5 minutes. + ## Import Functions can be imported using the `name`, e.g.