From 4efdab4181cd2bfd243600def27f70f0580942a3 Mon Sep 17 00:00:00 2001 From: Mat Schaffer Date: Fri, 27 Jul 2018 17:17:56 +0900 Subject: Replace contact_id with contact_group This allows for multiple contacts per test. --- statuscake/resource_statuscaketest.go | 14 ++++++++------ statuscake/resource_statuscaketest_test.go | 21 +++++++++++---------- 2 files changed, 19 insertions(+), 16 deletions(-) (limited to 'statuscake') diff --git a/statuscake/resource_statuscaketest.go b/statuscake/resource_statuscaketest.go index 866cdce..b0dc84f 100644 --- a/statuscake/resource_statuscaketest.go +++ b/statuscake/resource_statuscaketest.go @@ -51,9 +51,11 @@ func resourceStatusCakeTest() *schema.Resource { Required: true, }, - "contact_id": { - Type: schema.TypeInt, + "contact_group": { + Type: schema.TypeSet, + Elem: &schema.Schema{Type: schema.TypeString}, Optional: true, + Set: schema.HashString, }, "check_rate": { @@ -223,7 +225,7 @@ func CreateTest(d *schema.ResourceData, meta interface{}) error { TestType: d.Get("test_type").(string), Paused: d.Get("paused").(bool), Timeout: d.Get("timeout").(int), - ContactID: d.Get("contact_id").(int), + ContactGroup: castSetToSliceStrings(d.Get("contact_group").(*schema.Set).List()), Confirmation: d.Get("confirmations").(int), Port: d.Get("port").(int), TriggerRate: d.Get("trigger_rate").(int), @@ -312,7 +314,7 @@ func ReadTest(d *schema.ResourceData, meta interface{}) error { d.Set("test_type", testResp.TestType) d.Set("paused", testResp.Paused) d.Set("timeout", testResp.Timeout) - d.Set("contact_id", testResp.ContactID) + d.Set("contact_group", testResp.ContactGroup) d.Set("confirmations", testResp.Confirmation) d.Set("port", testResp.Port) d.Set("trigger_rate", testResp.TriggerRate) @@ -356,8 +358,8 @@ func getStatusCakeTestInput(d *schema.ResourceData) *statuscake.Test { if v, ok := d.GetOk("check_rate"); ok { test.CheckRate = v.(int) } - if v, ok := d.GetOk("contact_id"); ok { - test.ContactID = v.(int) + if v, ok := d.GetOk("contact_group"); ok { + test.ContactGroup = castSetToSliceStrings(v.(*schema.Set).List()) } if v, ok := d.GetOk("test_type"); ok { test.TestType = v.(string) diff --git a/statuscake/resource_statuscaketest_test.go b/statuscake/resource_statuscaketest_test.go index c10b5d3..0ea1e2b 100644 --- a/statuscake/resource_statuscaketest_test.go +++ b/statuscake/resource_statuscaketest_test.go @@ -72,7 +72,6 @@ func TestAccStatusCake_withUpdate(t *testing.T) { resource.TestCheckResourceAttr("statuscake_test.google", "check_rate", "500"), resource.TestCheckResourceAttr("statuscake_test.google", "paused", "true"), resource.TestCheckResourceAttr("statuscake_test.google", "timeout", "40"), - resource.TestCheckResourceAttr("statuscake_test.google", "contact_id", "0"), resource.TestCheckResourceAttr("statuscake_test.google", "confirmations", "0"), resource.TestCheckResourceAttr("statuscake_test.google", "trigger_rate", "20"), resource.TestCheckResourceAttr("statuscake_test.google", "custom_header", "{ \"Content-Type\": \"application/x-www-form-urlencoded\" }"), @@ -159,8 +158,13 @@ func testAccTestCheckAttributes(rn string, test *statuscake.Test) resource.TestC err = check(key, value, strconv.FormatBool(test.Paused)) case "timeout": err = check(key, value, strconv.Itoa(test.Timeout)) - case "contact_id": - err = check(key, value, strconv.Itoa(test.ContactID)) + case "contact_group": + for _, tv := range test.ContactGroup { + err = check(key, value, tv) + if err != nil { + return err + } + } case "confirmations": err = check(key, value, strconv.Itoa(test.Confirmation)) case "trigger_rate": @@ -214,13 +218,10 @@ func testAccTestCheckDestroy(test *statuscake.Test) resource.TestCheckFunc { } func interpolateTerraformTemplate(template string) string { - testContactGroupId := 43402 + testContactGroupId := "43402" if v := os.Getenv("STATUSCAKE_TEST_CONTACT_GROUP_ID"); v != "" { - id, err := strconv.Atoi(v) - if err == nil { - testContactGroupId = id - } + testContactGroupId = v } return fmt.Sprintf(template, testContactGroupId) @@ -233,7 +234,7 @@ resource "statuscake_test" "google" { test_type = "HTTP" check_rate = 300 timeout = 10 - contact_id = %d + contact_group = ["%s"] confirmations = 1 trigger_rate = 10 } @@ -277,7 +278,7 @@ resource "statuscake_test" "google" { test_type = "TCP" check_rate = 300 timeout = 10 - contact_id = %d + contact_group = ["%s"] confirmations = 1 port = 80 } -- cgit v1.2.3