Skip to content

Commit c0c1629

Browse files
fix key names and 404 check. Add diff DiffSuppressFunc
1 parent 7955cd5 commit c0c1629

File tree

2 files changed

+41
-14
lines changed

2 files changed

+41
-14
lines changed

sumologic/resource_sumologic_connection.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package sumologic
22

33
import (
4+
"encoding/json"
45
"fmt"
56
"log"
67
"regexp"
@@ -36,6 +37,11 @@ func resourceSumologicConnection() *schema.Resource {
3637
validation.StringLenBetween(1, 128),
3738
validation.StringMatch(regexp.MustCompile(nameValidation), fmt.Sprintf("Must match regex %s", nameValidation)),
3839
),
40+
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
41+
newJSON, _ := normalizeJsonString(new)
42+
oldJSON, _ := normalizeJsonString(old)
43+
return newJSON == oldJSON
44+
},
3945
},
4046
"description": {
4147
Type: schema.TypeString,
@@ -85,6 +91,27 @@ func resourceSumologicConnection() *schema.Resource {
8591
}
8692
}
8793

94+
// Takes a value containing JSON string and passes it through
95+
// the JSON parser to normalize it, returns either a parsing
96+
// error or normalized JSON string.
97+
func normalizeJsonString(jsonString interface{}) (string, error) {
98+
var j interface{}
99+
100+
if jsonString == nil || jsonString.(string) == "" {
101+
return "", nil
102+
}
103+
104+
s := jsonString.(string)
105+
106+
err := json.Unmarshal([]byte(s), &j)
107+
if err != nil {
108+
return s, err
109+
}
110+
111+
bytes, _ := json.Marshal(j)
112+
return string(bytes[:]), nil
113+
}
114+
88115
func resourceSumologicConnectionRead(d *schema.ResourceData, meta interface{}) error {
89116
log.Println("====Begin Connection Read====")
90117

sumologic/resource_sumologic_connection_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ func TestAccConnection_create(t *testing.T) {
3030
Check: resource.ComposeTestCheckFunc(
3131
testAccCheckConnectionExists("sumologic_connection.test", &connection, t),
3232
testAccCheckConnectionAttributes("sumologic_connection.test"),
33-
resource.TestCheckResourceAttr("sumologic_connection.test", "connectionType", connectionType),
33+
resource.TestCheckResourceAttr("sumologic_connection.test", "type", connectionType),
3434
resource.TestCheckResourceAttr("sumologic_connection.test", "name", name),
3535
resource.TestCheckResourceAttr("sumologic_connection.test", "description", description),
3636
resource.TestCheckResourceAttr("sumologic_connection.test", "url", url),
37-
resource.TestCheckResourceAttr("sumologic_connection.test", "defaultPayload", defaultPayload),
38-
resource.TestCheckResourceAttr("sumologic_connection.test", "webhookType", webhookType),
37+
resource.TestCheckResourceAttr("sumologic_connection.test", "default_payload", defaultPayload),
38+
resource.TestCheckResourceAttr("sumologic_connection.test", "webhook_type", webhookType),
3939
),
4040
},
4141
},
@@ -46,7 +46,7 @@ func TestAccConnection_update(t *testing.T) {
4646
var connection Connection
4747
connectionType := "WebhookConnection"
4848
name := acctest.RandomWithPrefix("tf-connection-test-name")
49-
url := acctest.RandomWithPrefix("https://")
49+
url := "https://example.com"
5050
defaultPayload := `{"eventType" : "{{SearchName}}"}`
5151
webhookType := "Webhook"
5252
fDescription := acctest.RandomWithPrefix("tf-connection-test-description")
@@ -62,24 +62,24 @@ func TestAccConnection_update(t *testing.T) {
6262
Check: resource.ComposeTestCheckFunc(
6363
testAccCheckConnectionExists("sumologic_connection.test", &connection, t),
6464
testAccCheckConnectionAttributes("sumologic_connection.test"),
65-
resource.TestCheckResourceAttr("sumologic_connection.test", "connectionType", connectionType),
65+
resource.TestCheckResourceAttr("sumologic_connection.test", "type", connectionType),
6666
resource.TestCheckResourceAttr("sumologic_connection.test", "name", name),
6767
resource.TestCheckResourceAttr("sumologic_connection.test", "description", fDescription),
6868
resource.TestCheckResourceAttr("sumologic_connection.test", "url", url),
69-
resource.TestCheckResourceAttr("sumologic_connection.test", "defaultPayload", defaultPayload),
70-
resource.TestCheckResourceAttr("sumologic_connection.test", "webhookType", webhookType),
69+
resource.TestCheckResourceAttr("sumologic_connection.test", "default_payload", defaultPayload),
70+
resource.TestCheckResourceAttr("sumologic_connection.test", "webhook_type", webhookType),
7171
),
7272
}, {
7373
Config: createConnectionConfig(name, connectionType, sDescription, url, webhookType, defaultPayload),
7474
Check: resource.ComposeTestCheckFunc(
7575
testAccCheckConnectionExists("sumologic_connection.test", &connection, t),
7676
testAccCheckConnectionAttributes("sumologic_connection.test"),
77-
resource.TestCheckResourceAttr("sumologic_connection.test", "connectionType", connectionType),
77+
resource.TestCheckResourceAttr("sumologic_connection.test", "type", connectionType),
7878
resource.TestCheckResourceAttr("sumologic_connection.test", "name", name),
7979
resource.TestCheckResourceAttr("sumologic_connection.test", "description", sDescription),
8080
resource.TestCheckResourceAttr("sumologic_connection.test", "url", url),
81-
resource.TestCheckResourceAttr("sumologic_connection.test", "defaultPayload", defaultPayload),
82-
resource.TestCheckResourceAttr("sumologic_connection.test", "webhookType", webhookType),
81+
resource.TestCheckResourceAttr("sumologic_connection.test", "default_payload", defaultPayload),
82+
resource.TestCheckResourceAttr("sumologic_connection.test", "webhook_type", webhookType),
8383
),
8484
},
8585
},
@@ -120,11 +120,11 @@ func testAccCheckConnectionAttributes(name string) resource.TestCheckFunc {
120120
func testAccCheckConnectionDestroy(connection Connection) resource.TestCheckFunc {
121121
return func(s *terraform.State) error {
122122
client := testAccProvider.Meta().(*Client)
123-
_, err := client.GetConnection(connection.ID)
124-
if err == nil {
125-
return fmt.Errorf("Connection still exists")
123+
conn, err := client.GetConnection(connection.ID)
124+
if err == nil && conn == nil {
125+
return nil
126126
}
127-
return nil
127+
return fmt.Errorf("Connection still exists")
128128
}
129129
}
130130

0 commit comments

Comments
 (0)