Skip to content
This repository has been archived by the owner on Jun 18, 2024. It is now read-only.

Commit

Permalink
Merge branch 'upstream-master' into fork-master
Browse files Browse the repository at this point in the history
* upstream-master: (33 commits)
  adding spaces to username test
  add details to event rules actions
  fix fmt errors
  add suppress case diff to user email
  response_play.responder to optional
  update changelog to release v1.9.5
  Adding 1.9.5 to CHANGELOG
  Updated go-pagerduty dependency
  Added "template" field for rule extraction object
  This commit is an extension of the following issue: PagerDuty#307
  adding retry and user.name trim
  update ruleset docs to add routing_keys
  preparing changelog for v1.9.4
  getting paginated getMembers
  update Changelog for v1.9.3
  fixing bug in ruleAction.suppress
  Update CHANGELOG for v1.9.2
  fixed bug in event rule positioning
  Update to CHANGELOG to v1.9.1
  Update CHANGELOG for v.1.9.0
  ...

# Conflicts:
#	go.mod
#	go.sum
#	pagerduty/data_source_pagerduty_business_service.go
#	pagerduty/data_source_pagerduty_escalation_policy.go
#	pagerduty/data_source_pagerduty_extension_schema.go
#	pagerduty/data_source_pagerduty_priority.go
#	pagerduty/data_source_pagerduty_ruleset.go
#	pagerduty/data_source_pagerduty_schedule.go
#	pagerduty/data_source_pagerduty_service.go
#	pagerduty/data_source_pagerduty_team.go
#	pagerduty/data_source_pagerduty_user.go
#	pagerduty/data_source_pagerduty_user_contact_method.go
#	pagerduty/data_source_pagerduty_user_contact_method_test.go
#	pagerduty/data_source_pagerduty_vendor.go
#	pagerduty/provider.go
#	pagerduty/resource_pagerduty_ruleset_rule.go
#	vendor/github.com/heimweh/go-pagerduty/pagerduty/pagerduty.go
#	vendor/github.com/heimweh/go-pagerduty/pagerduty/ruleset.go
#	vendor/github.com/heimweh/go-pagerduty/pagerduty/service.go
#	vendor/github.com/heimweh/go-pagerduty/pagerduty/team.go
#	vendor/modules.txt
  • Loading branch information
Maciej Wilczyński committed Apr 2, 2021
2 parents ba73381 + 5318a15 commit 3134dfc
Show file tree
Hide file tree
Showing 28 changed files with 1,673 additions and 140 deletions.
45 changes: 45 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,48 @@
## 1.9.5 (March 11, 2021)
BUG FIXES:
* `data_source_pagerduty_ruleset`: Fixed bug by adding `routing_keys` to data source schema ([#312](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/312))

IMPROVEMENTS:
* `resource/pagerduty_escalation_policy`: Add retry logic to escalation policy delete ([#309](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/309))
* `resource/pagerduty_user`: Trimmed leading and trailing spaces on the value for `name` field to match behavior of PagerDuty API ([#312](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/312))

FEATURES:
* `resource/pagerduty_ruleset_rule` and `resource/pagerduty_service_event_rule`: Add `template` field to the rule object([#314](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/314))


## 1.9.4 (February 26, 2021)
BUG FIXES:
* `resource/pagerduty_team_membership`: Fixed issue with importing team members to teams with more than 100 users ([#305](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/305))

IMPROVEMENTS:
* `data_source_pagerduty_ruleset`: Added `routing_keys` field to the `ruleset` object ([#305](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/305))
## 1.9.4 (February 26, 2021)
BUG FIXES:
* `resource/pagerduty_team_membership`: Fixed issue with importing team members to teams with more than 100 users ([#305](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/305))

IMPROVEMENTS:
* `data_source_pagerduty_ruleset`: Added `routing_keys` field to the `ruleset` object ([#305](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/305))

## 1.9.3 (February 11, 2021)
BUG FIXES:
* `resource/pagerduty_service_event_rule`,`resource/pagerduty_ruleset_rule`: Fixed Bug with Event Rule Suppress Action ([#302](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/302))

## 1.9.2 (February 10, 2021)
BUG FIXES:
* `resource/pagerduty_service_event_rule`,`resource/pagerduty_ruleset_rule`: Fixed Bug with Event Rule Positioning ([#301](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/301))

## 1.9.1 (February 8, 2021)
FEATURES:
* `resource/pagerduty_service_event_rule`: Add service event rule resource ([#296](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/296))

IMPROVEMENTS:
* `resource/resource_pagerduty_user`: Add retry logic to user update error ([#286](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/286))
* `data_source_pagerduty_busines_service`, `data_source_pagerduty_escalation_policy`, `data_source_pagerduty_extension_schema`, `data_source_pagerduty_priority`, `data_source_pagerduty_ruleset`, `data_source_pagerduty_schedule`, `data_source_pagerduty_service`, `data_source_pagerduty_team`, `data_source_pagerduty_user`, `data_source_pagerduty_vendor`: Add retry logic on error ([#287](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/287))
* `resource/pagerduty_ruleset_rule`: Add `suspend` and `variables` fields ([#296](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/296))

BUG FIXES:
* `resource/pagerduty_ruleset_rule`: Fixed bug where `position` wasn't setting properly. Add retry to allow for `position` to be correctly set before apply is complete ([#296](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/296))

## 1.8.0 (November 30, 2020)
FEATURES:
* `resource/resource_pagerduty_response_play` Add response play resource ([#278](https://github.com/PagerDuty/terraform-provider-pagerduty/pull/278))
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ require (
cloud.google.com/go v0.74.0 // indirect
github.com/google/go-querystring v1.0.0 // indirect
github.com/hashicorp/terraform-plugin-sdk/v2 v2.4.0
github.com/nordcloud/go-pagerduty v1.1.5
github.com/nordcloud/go-pagerduty v1.1.6
)
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,8 @@ github.com/nordcloud/go-pagerduty v1.1.4 h1:ns58sT34vDpUPAraOQqr249TOS7e6nQdUHjX
github.com/nordcloud/go-pagerduty v1.1.4/go.mod h1:+X7DsceybbguTwV3CspD04jZ0J1nWTerdaoejRK7fAA=
github.com/nordcloud/go-pagerduty v1.1.5 h1:YHhkTL8/bceVXn4TacZcsPNSrepGb5px7bCqK9qOnUI=
github.com/nordcloud/go-pagerduty v1.1.5/go.mod h1:+X7DsceybbguTwV3CspD04jZ0J1nWTerdaoejRK7fAA=
github.com/nordcloud/go-pagerduty v1.1.6 h1:jhxmNywPz2BwvXlJaiQDT4aOOCpVZ+HZf8lrdto8EM8=
github.com/nordcloud/go-pagerduty v1.1.6/go.mod h1:+X7DsceybbguTwV3CspD04jZ0J1nWTerdaoejRK7fAA=
github.com/nsf/jsondiff v0.0.0-20200515183724-f29ed568f4ce/go.mod h1:uFMI8w+ref4v2r9jz+c9i1IfIttS/OkmLfrk1jne5hs=
github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw=
github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
Expand Down
47 changes: 28 additions & 19 deletions pagerduty/data_source_pagerduty_business_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ package pagerduty
import (
"fmt"
"log"
"time"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/nordcloud/go-pagerduty/pagerduty"
)
Expand All @@ -28,31 +30,38 @@ func dataSourcePagerDutyBusinessServiceRead(d *schema.ResourceData, meta interfa

searchName := d.Get("name").(string)

resp, _, err := client.BusinessServices.List()
if err != nil {
errResp := handleNotFoundError(err, d)
if errResp != nil {
return errResp
return resource.Retry(2*time.Minute, func() *resource.RetryError {
resp, _, err := client.BusinessServices.List()
if err != nil {
if isErrCode(err, 429) {
// Delaying retry by 30s as recommended by PagerDuty
// https://developer.pagerduty.com/docs/rest-api-v2/rate-limiting/#what-are-possible-workarounds-to-the-events-api-rate-limit
time.Sleep(30 * time.Second)
return resource.RetryableError(err)
}

return resource.NonRetryableError(err)
}

return nil
}
var found *pagerduty.BusinessService

var found *pagerduty.BusinessService
for _, businessService := range resp.BusinessServices {
if businessService.Name == searchName {
found = businessService
break
}
}

for _, businessService := range resp.BusinessServices {
if businessService.Name == searchName {
found = businessService
break
if found == nil {
return resource.NonRetryableError(
fmt.Errorf("Unable to locate any business service with the name: %s", searchName),
)
}
}

if found == nil {
return fmt.Errorf("Unable to locate any business service with the name: %s", searchName)
}
d.SetId(found.ID)
d.Set("name", found.Name)

d.SetId(found.ID)
d.Set("name", found.Name)
return nil
})

return nil
}
11 changes: 6 additions & 5 deletions pagerduty/data_source_pagerduty_escalation_policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,14 @@ func dataSourcePagerDutyEscalationPolicyRead(d *schema.ResourceData, meta interf
return resource.Retry(3*time.Minute, func() *resource.RetryError {
resp, _, err := client.EscalationPolicies.List(o)
if err != nil {
errResp := handleNotFoundError(err, d)
if errResp != nil {
time.Sleep(10 * time.Second)
return resource.RetryableError(errResp)
if isErrCode(err, 429) {
// Delaying retry by 30s as recommended by PagerDuty
// https://developer.pagerduty.com/docs/rest-api-v2/rate-limiting/#what-are-possible-workarounds-to-the-events-api-rate-limit
time.Sleep(30 * time.Second)
return resource.RetryableError(err)
}

return nil
return resource.NonRetryableError(err)
}

var found *pagerduty.EscalationPolicy
Expand Down
11 changes: 6 additions & 5 deletions pagerduty/data_source_pagerduty_extension_schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,14 @@ func dataSourcePagerDutyExtensionSchemaRead(d *schema.ResourceData, meta interfa
return resource.Retry(3*time.Minute, func() *resource.RetryError {
resp, _, err := client.ExtensionSchemas.List(&pagerduty.ListExtensionSchemasOptions{Query: searchName})
if err != nil {
errResp := handleNotFoundError(err, d)
if errResp != nil {
time.Sleep(10 * time.Second)
return resource.RetryableError(errResp)
if isErrCode(err, 429) {
// Delaying retry by 30s as recommended by PagerDuty
// https://developer.pagerduty.com/docs/rest-api-v2/rate-limiting/#what-are-possible-workarounds-to-the-events-api-rate-limit
time.Sleep(30 * time.Second)
return resource.RetryableError(err)
}

return nil
return resource.NonRetryableError(err)
}

var found *pagerduty.ExtensionSchema
Expand Down
50 changes: 29 additions & 21 deletions pagerduty/data_source_pagerduty_priority.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ import (
"fmt"
"log"
"strings"
"time"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/nordcloud/go-pagerduty/pagerduty"
)
Expand Down Expand Up @@ -34,32 +36,38 @@ func dataSourcePagerDutyPriorityRead(d *schema.ResourceData, meta interface{}) e

searchTeam := d.Get("name").(string)

resp, _, err := client.Priorities.List()
if err != nil {
errResp := handleNotFoundError(err, d)
if errResp != nil {
return errResp
}
return resource.Retry(2*time.Minute, func() *resource.RetryError {
resp, _, err := client.Priorities.List()
if err != nil {
if isErrCode(err, 429) {
// Delaying retry by 30s as recommended by PagerDuty
// https://developer.pagerduty.com/docs/rest-api-v2/rate-limiting/#what-are-possible-workarounds-to-the-events-api-rate-limit
time.Sleep(30 * time.Second)
return resource.RetryableError(err)
}

return nil
}
return resource.NonRetryableError(err)
}

var found *pagerduty.Priority
var found *pagerduty.Priority

for _, priority := range resp.Priorities {
if strings.EqualFold(priority.Name, searchTeam) {
found = priority
break
for _, priority := range resp.Priorities {
if strings.EqualFold(priority.Name, searchTeam) {
found = priority
break
}
}
}

if found == nil {
return fmt.Errorf("Unable to locate any priority with name: %s", searchTeam)
}
if found == nil {
return resource.NonRetryableError(
fmt.Errorf("Unable to locate any priority with name: %s", searchTeam),
)
}

d.SetId(found.ID)
d.Set("name", found.Name)
d.Set("description", found.Description)
d.SetId(found.ID)
d.Set("name", found.Name)
d.Set("description", found.Description)

return nil
return nil
})
}
56 changes: 36 additions & 20 deletions pagerduty/data_source_pagerduty_ruleset.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ package pagerduty
import (
"fmt"
"log"
"time"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/nordcloud/go-pagerduty/pagerduty"
)
Expand All @@ -17,6 +19,13 @@ func dataSourcePagerDutyRuleset() *schema.Resource {
Type: schema.TypeString,
Required: true,
},
"routing_keys": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
},
}
}
Expand All @@ -28,31 +37,38 @@ func dataSourcePagerDutyRulesetRead(d *schema.ResourceData, meta interface{}) er

searchName := d.Get("name").(string)

resp, _, err := client.Rulesets.List()
if err != nil {
errResp := handleNotFoundError(err, d)
if errResp != nil {
return errResp
}
return resource.Retry(2*time.Minute, func() *resource.RetryError {
resp, _, err := client.Rulesets.List()
if err != nil {
if isErrCode(err, 429) {
// Delaying retry by 30s as recommended by PagerDuty
// https://developer.pagerduty.com/docs/rest-api-v2/rate-limiting/#what-are-possible-workarounds-to-the-events-api-rate-limit
time.Sleep(30 * time.Second)
return resource.RetryableError(err)
}

return nil
}
return resource.NonRetryableError(err)
}

var found *pagerduty.Ruleset
var found *pagerduty.Ruleset

for _, ruleset := range resp.Rulesets {
if ruleset.Name == searchName {
found = ruleset
break
for _, ruleset := range resp.Rulesets {
if ruleset.Name == searchName {
found = ruleset
break
}
}
}

if found == nil {
return fmt.Errorf("Unable to locate any ruleset with the name: %s", searchName)
}
if found == nil {
return resource.NonRetryableError(
fmt.Errorf("Unable to locate any ruleset with the name: %s", searchName),
)
}

d.SetId(found.ID)
d.Set("name", found.Name)
d.SetId(found.ID)
d.Set("name", found.Name)
d.Set("routing_keys", found.RoutingKeys)

return nil
return nil
})
}
11 changes: 6 additions & 5 deletions pagerduty/data_source_pagerduty_schedule.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,14 @@ func dataSourcePagerDutyScheduleRead(d *schema.ResourceData, meta interface{}) e
return resource.Retry(3*time.Minute, func() *resource.RetryError {
resp, _, err := client.Schedules.List(o)
if err != nil {
errResp := handleNotFoundError(err, d)
if errResp != nil {
time.Sleep(10 * time.Second)
return resource.RetryableError(errResp)
if isErrCode(err, 429) {
// Delaying retry by 30s as recommended by PagerDuty
// https://developer.pagerduty.com/docs/rest-api-v2/rate-limiting/#what-are-possible-workarounds-to-the-events-api-rate-limit
time.Sleep(30 * time.Second)
return resource.RetryableError(err)
}

return nil
return resource.NonRetryableError(err)
}

var found *pagerduty.Schedule
Expand Down
11 changes: 6 additions & 5 deletions pagerduty/data_source_pagerduty_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,14 @@ func dataSourcePagerDutyServiceRead(d *schema.ResourceData, meta interface{}) er
return resource.Retry(3*time.Minute, func() *resource.RetryError {
resp, _, err := client.Services.List(o)
if err != nil {
errResp := handleNotFoundError(err, d)
if errResp != nil {
time.Sleep(10 * time.Second)
return resource.RetryableError(errResp)
if isErrCode(err, 429) {
// Delaying retry by 30s as recommended by PagerDuty
// https://developer.pagerduty.com/docs/rest-api-v2/rate-limiting/#what-are-possible-workarounds-to-the-events-api-rate-limit
time.Sleep(30 * time.Second)
return resource.RetryableError(err)
}

return nil
return resource.NonRetryableError(err)
}

var found *pagerduty.Service
Expand Down
11 changes: 6 additions & 5 deletions pagerduty/data_source_pagerduty_team.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,14 @@ func dataSourcePagerDutyTeamRead(d *schema.ResourceData, meta interface{}) error
return resource.Retry(3*time.Minute, func() *resource.RetryError {
resp, _, err := client.Teams.List(o)
if err != nil {
errResp := handleNotFoundError(err, d)
if errResp != nil {
time.Sleep(10 * time.Second)
return resource.RetryableError(errResp)
if isErrCode(err, 429) {
// Delaying retry by 30s as recommended by PagerDuty
// https://developer.pagerduty.com/docs/rest-api-v2/rate-limiting/#what-are-possible-workarounds-to-the-events-api-rate-limit
time.Sleep(30 * time.Second)
return resource.RetryableError(err)
}

return nil
return resource.NonRetryableError(err)
}

var found *pagerduty.Team
Expand Down
Loading

0 comments on commit 3134dfc

Please sign in to comment.