Skip to content

Commit 4628546

Browse files
authored
throw error for version key in schema_ref (#199)
* change datatype of schema_ref field to ListType to avoid additional key value pairs in schema_ref definiton * update test and docs * revert back to typeMap and add error message
1 parent f4c7997 commit 4628546

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

sumologic/resource_sumologic_cloud_to_cloud_source.go

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

33
import (
44
"encoding/json"
5+
"errors"
56
"log"
67
"strconv"
78

@@ -46,7 +47,10 @@ func resourceSumologicCloudToCloudSourceCreate(d *schema.ResourceData, meta inte
4647
c := meta.(*Client)
4748

4849
if d.Id() == "" {
49-
source := resourceToCloudToCloudSource(d)
50+
source, err := resourceToCloudToCloudSource(d)
51+
if err != nil {
52+
return err
53+
}
5054
log.Printf("SchemaRef %s", source.SchemaRef)
5155
log.Printf("Config: %s", source.Config)
5256

@@ -65,9 +69,12 @@ func resourceSumologicCloudToCloudSourceCreate(d *schema.ResourceData, meta inte
6569
func resourceSumologicCloudToCloudSourceUpdate(d *schema.ResourceData, meta interface{}) error {
6670
c := meta.(*Client)
6771

68-
source := resourceToCloudToCloudSource(d)
72+
source, err := resourceToCloudToCloudSource(d)
73+
if err != nil {
74+
return err
75+
}
6976

70-
err := c.UpdateCloudToCloudSource(*source, d.Get("collector_id").(int))
77+
err = c.UpdateCloudToCloudSource(*source, d.Get("collector_id").(int))
7178

7279
if err != nil {
7380
return err
@@ -86,7 +93,7 @@ func resourceSumologicCloudToCloudSourceDelete(d *schema.ResourceData, meta inte
8693

8794
}
8895

89-
func resourceToCloudToCloudSource(d *schema.ResourceData) *CloudToCloudSource {
96+
func resourceToCloudToCloudSource(d *schema.ResourceData) (*CloudToCloudSource, error) {
9097
id, _ := strconv.Atoi(d.Id())
9198
var cloudToCloudSource CloudToCloudSource
9299
var jsonRawConf json.RawMessage
@@ -98,14 +105,19 @@ func resourceToCloudToCloudSource(d *schema.ResourceData) *CloudToCloudSource {
98105
err := json.Unmarshal(conf, &jsonRawConf)
99106
if err != nil {
100107
log.Println("Unable to unmarshal the Json configuration")
101-
return nil
108+
return &cloudToCloudSource, nil
102109
}
103110

104111
cloudToCloudSource.ID = id
105112
cloudToCloudSource.Config = jsonRawConf
106-
cloudToCloudSource.SchemaRef = getSourceSchemaRef(d)
113+
schemaRef, errSchemaRef := getSourceSchemaRef(d)
114+
115+
if errSchemaRef != nil {
116+
return &cloudToCloudSource, errSchemaRef
117+
}
107118

108-
return &cloudToCloudSource
119+
cloudToCloudSource.SchemaRef = schemaRef
120+
return &cloudToCloudSource, nil
109121
}
110122

111123
func resourceSumologicCloudToCloudSourceRead(d *schema.ResourceData, meta interface{}) error {
@@ -127,13 +139,19 @@ func resourceSumologicCloudToCloudSourceRead(d *schema.ResourceData, meta interf
127139

128140
return nil
129141
}
130-
func getSourceSchemaRef(d *schema.ResourceData) SchemaReference {
142+
func getSourceSchemaRef(d *schema.ResourceData) (SchemaReference, error) {
131143
sourceSchema := d.Get("schema_ref").(map[string]interface{})
132144
schemaR := SchemaReference{}
133145

134146
if len(sourceSchema) > 0 {
135147
schemaR.Type = sourceSchema["type"].(string)
148+
if sourceSchema["version"] != nil {
149+
errorMessage := "[Error] Unsupported argument 'version' specified for schemaRef"
150+
log.Print(errorMessage)
151+
return schemaR, errors.New(errorMessage)
152+
153+
}
136154
}
137155

138-
return schemaR
156+
return schemaR, nil
139157
}

0 commit comments

Comments
 (0)