fix templater & ctx: Correctly check resource set parent
This commit is contained in:
		
							parent
							
								
									756a4c745d
								
							
						
					
					
						commit
						dd2fdd63e5
					
				
					 2 changed files with 4 additions and 3 deletions
				
			
		|  | @ -17,7 +17,7 @@ type ResourceSet struct { | ||||||
| 
 | 
 | ||||||
| 	// Fields for resource set collections | 	// Fields for resource set collections | ||||||
| 	Include []ResourceSet `json:"include"` | 	Include []ResourceSet `json:"include"` | ||||||
| 	Parent  *string | 	Parent  string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type Context struct { | type Context struct { | ||||||
|  | @ -63,6 +63,7 @@ func LoadContextFromFile(filename string) (*Context, error) { | ||||||
| 		) | 		) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	c.ResourceSets = *flattenResourceSetCollections(&c.ResourceSets) | ||||||
| 	c.BaseDir = path.Dir(filename) | 	c.BaseDir = path.Dir(filename) | ||||||
| 
 | 
 | ||||||
| 	return &c, nil | 	return &c, nil | ||||||
|  | @ -79,7 +80,7 @@ func flattenResourceSetCollections(rs *[]ResourceSet) *[]ResourceSet { | ||||||
| 			flattened = append(flattened, r) | 			flattened = append(flattened, r) | ||||||
| 		} else { | 		} else { | ||||||
| 			for _, subResourceSet := range r.Include { | 			for _, subResourceSet := range r.Include { | ||||||
| 				subResourceSet.Parent = &r.Name | 				subResourceSet.Parent = r.Name | ||||||
| 				subResourceSet.Name = path.Join(r.Name, subResourceSet.Name) | 				subResourceSet.Name = path.Join(r.Name, subResourceSet.Name) | ||||||
| 				flattened = append(flattened, subResourceSet) | 				flattened = append(flattened, subResourceSet) | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
|  | @ -143,7 +143,7 @@ func applyLimits(rs *[]context.ResourceSet, include *[]string, exclude *[]string | ||||||
| // Check whether an include/exclude string slice matches a resource set | // Check whether an include/exclude string slice matches a resource set | ||||||
| func matchesResourceSet(s *[]string, rs *context.ResourceSet) bool { | func matchesResourceSet(s *[]string, rs *context.ResourceSet) bool { | ||||||
| 	for _, r := range *s { | 	for _, r := range *s { | ||||||
| 		if r == rs.Name || (rs.Parent != nil && r == *rs.Parent) { | 		if r == rs.Name || r == rs.Parent { | ||||||
| 			return true | 			return true | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue