Skip to content

Commit 4efc542

Browse files
authored
Merge pull request #11 from Cazzar/allow-no-settings-map
Support mappings to have no settings object
2 parents bb64d48 + 56e0da3 commit 4efc542

File tree

1 file changed

+36
-24
lines changed

1 file changed

+36
-24
lines changed

pkg/mapping/cleanup.go

+36-24
Original file line numberDiff line numberDiff line change
@@ -31,31 +31,43 @@ func CleanUpMapping(data string) (string, error) {
3131
if err != nil {
3232
return "", errors.WithStack(err)
3333
}
34-
settingsData := dataMap["settings"]
35-
var settingsMap map[string]json.RawMessage
36-
err = json.Unmarshal(settingsData, &settingsMap)
37-
if err != nil {
38-
return "", errors.WithStack(err)
39-
}
40-
indexSettingData := settingsMap["index"]
41-
var indexSettingMap map[string]json.RawMessage
42-
err = json.Unmarshal(indexSettingData, &indexSettingMap)
43-
if err != nil {
44-
return "", errors.WithStack(err)
45-
}
46-
// delete .settings.index unused fields
47-
for _, key := range []string{"creation_date", "uuid", "version", "provided_name", "routing", "creation_date_string"} {
48-
delete(indexSettingMap, key)
49-
}
50-
newIndexSettingData, err := json.Marshal(indexSettingMap)
51-
if err != nil {
52-
return "", errors.WithStack(err)
53-
}
54-
settingsMap["index"] = json.RawMessage(newIndexSettingData)
55-
dataMap["settings"], err = json.Marshal(settingsMap)
56-
if err != nil {
57-
return "", errors.WithStack(err)
34+
35+
//Handle possible lack of settings object in the mapping.
36+
if settingsData, ok := dataMap["settings"]; ok {
37+
var settingsMap map[string]json.RawMessage
38+
39+
err = json.Unmarshal(settingsData, &settingsMap)
40+
if err != nil {
41+
return "", errors.WithStack(err)
42+
}
43+
44+
indexSettingData := settingsMap["index"]
45+
var indexSettingMap map[string]json.RawMessage
46+
err = json.Unmarshal(indexSettingData, &indexSettingMap)
47+
48+
if err != nil {
49+
return "", errors.WithStack(err)
50+
}
51+
52+
// delete .settings.index unused fields
53+
for _, key := range []string{"creation_date", "uuid", "version", "provided_name", "routing", "creation_date_string"} {
54+
delete(indexSettingMap, key)
55+
}
56+
57+
newIndexSettingData, err := json.Marshal(indexSettingMap)
58+
59+
if err != nil {
60+
return "", errors.WithStack(err)
61+
}
62+
63+
settingsMap["index"] = json.RawMessage(newIndexSettingData)
64+
dataMap["settings"], err = json.Marshal(settingsMap)
65+
66+
if err != nil {
67+
return "", errors.WithStack(err)
68+
}
5869
}
70+
5971
newData, err := json.MarshalIndent(dataMap, "", " ")
6072
if err != nil {
6173
return "", errors.WithStack(err)

0 commit comments

Comments
 (0)