|  | @@ -23,6 +23,29 @@ setup:
 | 
	
		
			
				|  |  |                            type:   string
 | 
	
		
			
				|  |  |                            index_name: t3
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +        indices.create:
 | 
	
		
			
				|  |  | +          index: test_index_2
 | 
	
		
			
				|  |  | +          body:
 | 
	
		
			
				|  |  | +              mappings:
 | 
	
		
			
				|  |  | +                test_type_2:
 | 
	
		
			
				|  |  | +                  properties:
 | 
	
		
			
				|  |  | +                    t1:
 | 
	
		
			
				|  |  | +                      type:     string
 | 
	
		
			
				|  |  | +                    t2:
 | 
	
		
			
				|  |  | +                      type:     string
 | 
	
		
			
				|  |  | +                    obj:
 | 
	
		
			
				|  |  | +                      path:     just_name
 | 
	
		
			
				|  |  | +                      properties:
 | 
	
		
			
				|  |  | +                        t1:
 | 
	
		
			
				|  |  | +                          type:   string
 | 
	
		
			
				|  |  | +                        i_t1:
 | 
	
		
			
				|  |  | +                          type:   string
 | 
	
		
			
				|  |  | +                          index_name: t1
 | 
	
		
			
				|  |  | +                        i_t3:
 | 
	
		
			
				|  |  | +                          type:   string
 | 
	
		
			
				|  |  | +                          index_name: t3
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  ---
 | 
	
		
			
				|  |  |  "Get field mapping with * for fields":
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -30,43 +53,92 @@ setup:
 | 
	
		
			
				|  |  |        indices.get_field_mapping:
 | 
	
		
			
				|  |  |          field: "*"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  - match: {test_index.test_type.t1.full_name:     t1     }
 | 
	
		
			
				|  |  | -  - match: {test_index.test_type.t2.full_name:     t2     }
 | 
	
		
			
				|  |  | -  - match: {test_index.test_type.obj\.t1.full_name: obj.t1 }
 | 
	
		
			
				|  |  | -  - match: {test_index.test_type.obj\.i_t1.full_name: obj.i_t1 }
 | 
	
		
			
				|  |  | -  - match: {test_index.test_type.obj\.i_t3.full_name: obj.i_t3 }
 | 
	
		
			
				|  |  | +  - match: {test_index.mappings.test_type.t1.full_name:     t1     }
 | 
	
		
			
				|  |  | +  - match: {test_index.mappings.test_type.t2.full_name:     t2     }
 | 
	
		
			
				|  |  | +  - match: {test_index.mappings.test_type.obj\.t1.full_name: obj.t1 }
 | 
	
		
			
				|  |  | +  - match: {test_index.mappings.test_type.obj\.i_t1.full_name: obj.i_t1 }
 | 
	
		
			
				|  |  | +  - match: {test_index.mappings.test_type.obj\.i_t3.full_name: obj.i_t3 }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ---
 | 
	
		
			
				|  |  |  "Get field mapping with t* for fields":
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    - do:
 | 
	
		
			
				|  |  |        indices.get_field_mapping:
 | 
	
		
			
				|  |  | +        index: test_index
 | 
	
		
			
				|  |  |          field: "t*"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # i_t1 matches the pattern using it's index name, but t1 already means a full name
 | 
	
		
			
				|  |  |  # of a field and thus takes precedence.
 | 
	
		
			
				|  |  | -  - match:  {test_index.test_type.t1.full_name:     t1       }
 | 
	
		
			
				|  |  | -  - match:  {test_index.test_type.t2.full_name:     t2       }
 | 
	
		
			
				|  |  | -  - match:  {test_index.test_type.t3.full_name:     obj.i_t3 }
 | 
	
		
			
				|  |  | -  - length: {test_index.test_type: 3}
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.t1.full_name:     t1       }
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.t2.full_name:     t2       }
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.t3.full_name:     obj.i_t3 }
 | 
	
		
			
				|  |  | +  - length: {test_index.mappings.test_type: 3}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ---
 | 
	
		
			
				|  |  |  "Get field mapping with *t1 for fields":
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    - do:
 | 
	
		
			
				|  |  |        indices.get_field_mapping:
 | 
	
		
			
				|  |  | +        index: test_index
 | 
	
		
			
				|  |  |          field: "*t1"
 | 
	
		
			
				|  |  | -  - match:  {test_index.test_type.t1.full_name:        t1       }
 | 
	
		
			
				|  |  | -  - match:  {test_index.test_type.obj\.t1.full_name:   obj.t1   }
 | 
	
		
			
				|  |  | -  - match:  {test_index.test_type.obj\.i_t1.full_name: obj.i_t1 }
 | 
	
		
			
				|  |  | -  - length: {test_index.test_type: 3}
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.t1.full_name:        t1       }
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.obj\.t1.full_name:   obj.t1   }
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.obj\.i_t1.full_name: obj.i_t1 }
 | 
	
		
			
				|  |  | +  - length: {test_index.mappings.test_type: 3}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ---
 | 
	
		
			
				|  |  |  "Get field mapping with wildcarded relative names":
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    - do:
 | 
	
		
			
				|  |  |        indices.get_field_mapping:
 | 
	
		
			
				|  |  | +        index: test_index
 | 
	
		
			
				|  |  | +        field: "i_*"
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.i_t1.full_name: obj.i_t1 }
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.i_t3.full_name: obj.i_t3 }
 | 
	
		
			
				|  |  | +  - length: {test_index.mappings.test_type: 2}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +---
 | 
	
		
			
				|  |  | +"Get field mapping should work using '_all' for indices and types":
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      indices.get_field_mapping:
 | 
	
		
			
				|  |  | +        index: _all
 | 
	
		
			
				|  |  | +        type: _all
 | 
	
		
			
				|  |  | +        field: "i_*"
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.i_t1.full_name: obj.i_t1 }
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.i_t3.full_name: obj.i_t3 }
 | 
	
		
			
				|  |  | +  - length: {test_index.mappings.test_type: 2}
 | 
	
		
			
				|  |  | +  - match:  {test_index_2.mappings.test_type_2.i_t1.full_name: obj.i_t1 }
 | 
	
		
			
				|  |  | +  - match:  {test_index_2.mappings.test_type_2.i_t3.full_name: obj.i_t3 }
 | 
	
		
			
				|  |  | +  - length: {test_index_2.mappings.test_type_2: 2}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +---
 | 
	
		
			
				|  |  | +"Get field mapping should work using '*' for indices and types":
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      indices.get_field_mapping:
 | 
	
		
			
				|  |  | +        index: '*'
 | 
	
		
			
				|  |  | +        type: '*'
 | 
	
		
			
				|  |  | +        field: "i_*"
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.i_t1.full_name: obj.i_t1 }
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.i_t3.full_name: obj.i_t3 }
 | 
	
		
			
				|  |  | +  - length: {test_index.mappings.test_type: 2}
 | 
	
		
			
				|  |  | +  - match:  {test_index_2.mappings.test_type_2.i_t1.full_name: obj.i_t1 }
 | 
	
		
			
				|  |  | +  - match:  {test_index_2.mappings.test_type_2.i_t3.full_name: obj.i_t3 }
 | 
	
		
			
				|  |  | +  - length: {test_index_2.mappings.test_type_2: 2}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +---
 | 
	
		
			
				|  |  | +"Get field mapping should work using comma_separated values for indices and types":
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      indices.get_field_mapping:
 | 
	
		
			
				|  |  | +        index: 'test_index,test_index_2'
 | 
	
		
			
				|  |  | +        type: 'test_type,test_type_2'
 | 
	
		
			
				|  |  |          field: "i_*"
 | 
	
		
			
				|  |  | -  - match:  {test_index.test_type.i_t1.full_name: obj.i_t1 }
 | 
	
		
			
				|  |  | -  - match:  {test_index.test_type.i_t3.full_name: obj.i_t3 }
 | 
	
		
			
				|  |  | -  - length: {test_index.test_type: 2}
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.i_t1.full_name: obj.i_t1 }
 | 
	
		
			
				|  |  | +  - match:  {test_index.mappings.test_type.i_t3.full_name: obj.i_t3 }
 | 
	
		
			
				|  |  | +  - length: {test_index.mappings.test_type: 2}
 | 
	
		
			
				|  |  | +  - match:  {test_index_2.mappings.test_type_2.i_t1.full_name: obj.i_t1 }
 | 
	
		
			
				|  |  | +  - match:  {test_index_2.mappings.test_type_2.i_t3.full_name: obj.i_t3 }
 | 
	
		
			
				|  |  | +  - length: {test_index_2.mappings.test_type_2: 2}
 | 
	
		
			
				|  |  | +
 |