@@ -62,7 +62,7 @@ def object_types_to_template(template_definition, output, output_index_pattern,
6262 # in the group, and other settings applicable to groups such as
6363 # include_in_all, etc.
6464 skeleton ['mappings' ]['_default_' ].update (traverse_group_section (
65- default_mapping , default_mapping_yml ['field_defaults' ], process_leaf ))
65+ default_mapping , default_mapping_yml ['field_defaults' ], process_leaf , True ))
6666
6767 add_type_version (default_mapping_yml ["version" ],
6868 skeleton ['mappings' ]['_default_' ])
@@ -90,7 +90,7 @@ def object_types_to_template(template_definition, output, output_index_pattern,
9090 skeleton_index_pattern ["description" ] = skeleton_index_pattern ["description" ].replace ("<the_index_type>" , template_definition ['elasticsearch_template' ]['index_pattern' ])
9191 # get fields
9292 index_pattern_fields = (traverse_group_section_index_pattern (
93- default_mapping , default_mapping_yml ['field_defaults' ], process_leaf_index_pattern ))
93+ default_mapping , default_mapping_yml ['field_defaults' ], process_leaf_index_pattern , None , True ))
9494 skeleton_index_pattern ["fields" ] = json .dumps (index_pattern_fields )
9595 json .dump (
9696 skeleton_index_pattern , output_index_pattern , indent = 2 , separators = (',' , ': ' ), sort_keys = True )
@@ -119,7 +119,7 @@ def add_index_template_fields(rec):
119119 return ret
120120
121121
122- def traverse_group_section (group , leaf_defaults , leaf_handler ):
122+ def traverse_group_section (group , leaf_defaults , leaf_handler , toplevel = False ):
123123 """
124124 Traverse the sections tree and fill in the properties
125125 map.
@@ -135,10 +135,10 @@ def traverse_group_section(group, leaf_defaults, leaf_handler):
135135 parameters
136136 """
137137 field = add_index_template_fields (group )
138- if 'name' in group :
139- ret = {group ['name' ]: field }
140- else :
138+ if toplevel or not 'name' in group :
141139 ret = field
140+ else :
141+ ret = {group ['name' ]: field }
142142 if group ['type' ] == 'group' :
143143 fieldskey = 'properties'
144144 del field ['type' ]
@@ -190,7 +190,7 @@ def process_leaf(field, defaults):
190190 print ("Unknown field. Skipped adding field {}" .format (field ))
191191
192192
193- def traverse_group_section_index_pattern (group , defaults , leaf_handler , groupname = None ):
193+ def traverse_group_section_index_pattern (group , defaults , leaf_handler , groupname = None , toplevel = False ):
194194 """
195195 Traverse the sections tree and fill in the index pattern fields
196196 map.
@@ -208,6 +208,8 @@ def traverse_group_section_index_pattern(group, defaults, leaf_handler, groupnam
208208 for field in group ["fields" ]:
209209 if groupname :
210210 subgroupname = groupname + "." + group ["name" ]
211+ elif toplevel :
212+ subgroupname = None
211213 else :
212214 subgroupname = group .get ("name" , None )
213215 if field .get ("type" ) == "group" :
0 commit comments