diff --git a/go.mod b/go.mod index a1c072521..3586aa367 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/PagerDuty/terraform-provider-pagerduty go 1.20 require ( - github.com/PagerDuty/go-pagerduty v1.8.1-0.20241104145658-2a0050d437ac + github.com/PagerDuty/go-pagerduty v1.8.1-0.20241111225923-0ef8f340dd3c github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 github.com/hashicorp/go-version v1.6.0 github.com/hashicorp/hc-install v0.6.2 diff --git a/go.sum b/go.sum index a710df66d..e62897a25 100644 --- a/go.sum +++ b/go.sum @@ -1,11 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/PagerDuty/go-pagerduty v1.8.1-0.20241002154647-8ceedfd04d88 h1:y/icahuphX4xGMW4nLN+Bl4MbFUU4rEA9spwgcPIDJk= -github.com/PagerDuty/go-pagerduty v1.8.1-0.20241002154647-8ceedfd04d88/go.mod h1:ilimTqwHSBjmvKeYA/yayDBZvzf/CX4Pwa9Qbhekzok= -github.com/PagerDuty/go-pagerduty v1.8.1-0.20241025123418-0c3fc7303be4 h1:egkL94FTYFe3GfnJMpY2aAj6tA2wXXYRfGPJPfC90BQ= -github.com/PagerDuty/go-pagerduty v1.8.1-0.20241025123418-0c3fc7303be4/go.mod h1:ilimTqwHSBjmvKeYA/yayDBZvzf/CX4Pwa9Qbhekzok= -github.com/PagerDuty/go-pagerduty v1.8.1-0.20241104145658-2a0050d437ac h1:GtkaaoQH3DSWt9hxC71pAp31pyhKFxU1nBfa5iZWecE= -github.com/PagerDuty/go-pagerduty v1.8.1-0.20241104145658-2a0050d437ac/go.mod h1:ilimTqwHSBjmvKeYA/yayDBZvzf/CX4Pwa9Qbhekzok= +github.com/PagerDuty/go-pagerduty v1.8.1-0.20241111225923-0ef8f340dd3c h1:Bnw38sqsVdQVOiuTealk57GnuRb86zyd5v/XW3BcPl8= +github.com/PagerDuty/go-pagerduty v1.8.1-0.20241111225923-0ef8f340dd3c/go.mod h1:ilimTqwHSBjmvKeYA/yayDBZvzf/CX4Pwa9Qbhekzok= github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c h1:kMFnB0vCcX7IL/m9Y5LO+KQYv+t1CQOiFe6+SV2J7bE= github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= diff --git a/pagerdutyplugin/resource_pagerduty_alert_grouping_setting_test.go b/pagerdutyplugin/resource_pagerduty_alert_grouping_setting_test.go index abee54526..cec9f0681 100644 --- a/pagerdutyplugin/resource_pagerduty_alert_grouping_setting_test.go +++ b/pagerdutyplugin/resource_pagerduty_alert_grouping_setting_test.go @@ -213,6 +213,28 @@ func TestAccPagerDutyAlertGroupingSetting_Time_WithTimeoutZero(t *testing.T) { }) } +func TestAccPagerDutyAlertGroupingSetting_serviceNotExist(t *testing.T) { + ref := fmt.Sprint("tf-", acctest.RandString(5)) + service := fmt.Sprint("tf-", acctest.RandString(5)) + name := fmt.Sprintf("%s grouping", service) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(), + CheckDestroy: testAccCheckPagerDutyAlertGroupingSettingDestroy, + Steps: []resource.TestStep{ + { + Config: testAccPagerDutyAlertGroupingSettingServiceNotExist(ref, service, name), + Check: resource.ComposeTestCheckFunc( + testAccCheckPagerDutyAlertGroupingSettingExists("pagerduty_alert_grouping_setting."+ref), + resource.TestCheckResourceAttr("pagerduty_alert_grouping_setting."+ref, "name", name), + resource.TestCheckResourceAttrSet("pagerduty_alert_grouping_setting."+ref, "description"), + ), + }, + }, + }) +} + func testAccCheckPagerDutyAlertGroupingSettingDestroy(s *terraform.State) error { for _, r := range s.RootModule().Resources { if r.Type != "pagerduty_alert_grouping_setting" { @@ -407,3 +429,37 @@ resource "pagerduty_alert_grouping_setting" "foo" { services = [pagerduty_service.foo.id] }`, service1, name) } + +func testAccPagerDutyAlertGroupingSettingServiceNotExist(ref, service, name string) string { + return fmt.Sprintf(` +data "pagerduty_escalation_policy" "default" { + name = "Default" +} + +resource "pagerduty_service" "foo" { + name = "%[2]s" + auto_resolve_timeout = "null" + acknowledgement_timeout = 1800 + escalation_policy = data.pagerduty_escalation_policy.default.id + alert_creation = "create_alerts_and_incidents" + + auto_pause_notifications_parameters { + enabled = true + timeout = 120 + } + + incident_urgency_rule { + type = "constant" + urgency = "high" + } +} + +resource "pagerduty_alert_grouping_setting" "%[1]s" { + name = "%[3]s" + services = [pagerduty_service.foo.id] + type = "intelligent" + config { + time_window = 300 + } +}`, ref, service, name) +} diff --git a/vendor/github.com/PagerDuty/go-pagerduty/alert_grouping_setting.go b/vendor/github.com/PagerDuty/go-pagerduty/alert_grouping_setting.go index c7e0cb3c7..a7f08180f 100644 --- a/vendor/github.com/PagerDuty/go-pagerduty/alert_grouping_setting.go +++ b/vendor/github.com/PagerDuty/go-pagerduty/alert_grouping_setting.go @@ -107,6 +107,12 @@ func (c *Client) ListAlertGroupingSettings(ctx context.Context, o ListAlertGroup } resp, err := c.get(ctx, "/alert_grouping_settings?"+v.Encode(), nil) + + // If there are no alert grouping settings, return an empty response. + if resp.StatusCode == 404 { + return &ListAlertGroupingSettingsResponse{}, nil + } + if err != nil { return nil, err } diff --git a/vendor/modules.txt b/vendor/modules.txt index bc372a9cb..5e46b9f90 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,4 +1,4 @@ -# github.com/PagerDuty/go-pagerduty v1.8.1-0.20241104145658-2a0050d437ac +# github.com/PagerDuty/go-pagerduty v1.8.1-0.20241111225923-0ef8f340dd3c ## explicit; go 1.19 github.com/PagerDuty/go-pagerduty # github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c