Skip to content

Commit c3fa9ed

Browse files
authored
Merge pull request #10 from rebuy-de/fix-data-tiering
2 parents 3323fc6 + 28e99d6 commit c3fa9ed

File tree

5 files changed

+38
-8
lines changed

5 files changed

+38
-8
lines changed

graylog/convert/json.go

+7
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ func DataToJSON(data map[string]interface{}, keys ...string) error {
3232
return nil
3333
}
3434
for _, key := range keys {
35+
if data[key] == nil {
36+
continue
37+
}
3538
s, err := json.Marshal(data[key])
3639
if err != nil {
3740
return fmt.Errorf("failed to marshal the '%s' as JSON: %w", key, err)
@@ -58,6 +61,10 @@ func JSONToData(data map[string]interface{}, keys ...string) error {
5861
if !ok {
5962
continue
6063
}
64+
if v.(string) == "" {
65+
data[key] = nil
66+
continue
67+
}
6168
attr, err := dataeq.JSON.ConvertByte([]byte(v.(string)))
6269
if err != nil {
6370
return fmt.Errorf("failed to parse the '%s'. '%s' must be a JSON string: %w", key, key, err)

graylog/resource/system/indices/indexset/create.go

+5
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ func create(d *schema.ResourceData, m interface{}) error {
1515
if err != nil {
1616
return err
1717
}
18+
19+
if d.Get("data_tiering") != "" {
20+
d.Set("use_legacy_rotation", false)
21+
}
22+
1823
data, err := getDataFromResourceData(d)
1924
if err != nil {
2025
return err

graylog/resource/system/indices/indexset/resource.go

+5
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,11 @@ func Resource() *schema.Resource {
9696
DiffSuppressFunc: util.SchemaDiffSuppressJSONString,
9797
ValidateFunc: util.ValidateIsJSON,
9898
},
99+
"use_legacy_rotation": {
100+
Type: schema.TypeBool,
101+
Optional: true,
102+
Default: true,
103+
},
99104
// field_type_refresh_interval was added from Graylog API v3
100105
"field_type_refresh_interval": {
101106
Type: schema.TypeInt,

graylog/resource/system/indices/indexset/resource_test.go

+16-8
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package indexset
22

33
import (
44
"encoding/json"
5-
"io/ioutil"
5+
"io"
66
"net/http"
77
"strings"
88
"testing"
@@ -37,7 +37,7 @@ func TestAccIndexSet(t *testing.T) {
3737
Response: func(req *http.Request) (*http.Response, error) {
3838
return &http.Response{
3939
StatusCode: 200,
40-
Body: ioutil.NopCloser(strings.NewReader(indexsetBody)),
40+
Body: io.NopCloser(strings.NewReader(indexsetBody)),
4141
}, nil
4242
},
4343
},
@@ -62,7 +62,7 @@ func TestAccIndexSet(t *testing.T) {
6262
"retention_strategy", "retention_strategy_class",
6363
"index_analyzer", "index_optimization_max_num_segments",
6464
"index_optimization_disabled", "field_type_refresh_interval",
65-
"creation_date", "writable",
65+
"creation_date", "writable", "use_legacy_rotation", "data_tiering",
6666
}
6767
if err := testutil.EqualMapKeys(body, keys...); err != nil {
6868
t.Fatal(err)
@@ -101,7 +101,9 @@ func TestAccIndexSet(t *testing.T) {
101101
"index_optimization_disabled": true,
102102
"field_type_refresh_interval": 5000,
103103
"writable": true,
104-
"default": false
104+
"default": false,
105+
"data_tiering": null,
106+
"use_legacy_rotation": true
105107
}`
106108
},
107109
},
@@ -132,7 +134,9 @@ func TestAccIndexSet(t *testing.T) {
132134
"index_optimization_disabled": true,
133135
"field_type_refresh_interval": 5000,
134136
"writable": true,
135-
"default": false
137+
"default": false,
138+
"data_tiering": null,
139+
"use_legacy_rotation": true
136140
}`,
137141
},
138142
}
@@ -212,7 +216,7 @@ EOF
212216
"retention_strategy", "retention_strategy_class",
213217
"index_analyzer", "index_optimization_max_num_segments",
214218
"index_optimization_disabled", "field_type_refresh_interval",
215-
"creation_date", "writable",
219+
"creation_date", "writable", "data_tiering", "use_legacy_rotation",
216220
}
217221
if err := testutil.EqualMapKeys(body, keys...); err != nil {
218222
t.Fatal(err)
@@ -251,7 +255,9 @@ EOF
251255
"index_optimization_disabled": true,
252256
"field_type_refresh_interval": 5000,
253257
"writable": true,
254-
"default": false
258+
"default": false,
259+
"data_tiering": null,
260+
"use_legacy_rotation": true
255261
}`
256262
},
257263
},
@@ -282,7 +288,9 @@ EOF
282288
"index_optimization_disabled": true,
283289
"field_type_refresh_interval": 5000,
284290
"writable": true,
285-
"default": false
291+
"default": false,
292+
"data_tiering": null,
293+
"use_legacy_rotation": true
286294
}`,
287295
},
288296
}

graylog/resource/system/indices/indexset/update.go

+5
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ func update(d *schema.ResourceData, m interface{}) error {
1515
if err != nil {
1616
return err
1717
}
18+
19+
if d.Get("data_tiering") != "" {
20+
d.Set("use_legacy_rotation", false)
21+
}
22+
1823
data, err := getDataFromResourceData(d)
1924
if err != nil {
2025
return err

0 commit comments

Comments
 (0)