Skip to content

Commit

Permalink
Allow configurable timeout when reading security group rule
Browse files Browse the repository at this point in the history
When being throttled on AWS requests, read requests are the first ones
to be throttled, and reading security group rules can take longer than
5m to complete. Transform the hard timeout of 5m with a configurable
timeout to avoid this problem.

Fixes part of hashicorp#3128
  • Loading branch information
mildred committed Mar 26, 2018
1 parent a77e64c commit 8c3c4be
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
6 changes: 5 additions & 1 deletion aws/resource_aws_security_group_rule.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ func resourceAwsSecurityGroupRule() *schema.Resource {
SchemaVersion: 2,
MigrateState: resourceAwsSecurityGroupRuleMigrateState,

Timeouts: &schema.ResourceTimeout{
Read: schema.DefaultTimeout(5 * time.Minute),
},

Schema: map[string]*schema.Schema{
"type": {
Type: schema.TypeString,
Expand Down Expand Up @@ -196,7 +200,7 @@ information and instructions for recovery. Error message: %s`, sg_id, awsErr.Mes
id := ipPermissionIDHash(sg_id, ruleType, perm)
log.Printf("[DEBUG] Computed group rule ID %s", id)

retErr := resource.Retry(5*time.Minute, func() *resource.RetryError {
retErr := resource.Retry(d.Timeout(schema.TimeoutRead), func() *resource.RetryError {
sg, err := findResourceSecurityGroup(conn, sg_id)

if err != nil {
Expand Down
7 changes: 7 additions & 0 deletions website/docs/r/security_group_rule.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,10 @@ The following attributes are exported:
* `to_port` - The end port (or ICMP code if protocol is "icmp")
* `protocol` – The protocol used
* `description` – Description of the rule

## Timeouts

`aws_security_group_rule` provides the following [Timeouts](/docs/configuration/resources.html#timeouts)
configuration options:

- `read` - (Default `5 minutes`) How long to wait for reading a rsecurity group rule.

0 comments on commit 8c3c4be

Please sign in to comment.