@@ -31,31 +31,43 @@ func CleanUpMapping(data string) (string, error) {
31
31
if err != nil {
32
32
return "" , errors .WithStack (err )
33
33
}
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
+ }
58
69
}
70
+
59
71
newData , err := json .MarshalIndent (dataMap , "" , " " )
60
72
if err != nil {
61
73
return "" , errors .WithStack (err )
0 commit comments