fix templater & ctx: Correctly check resource set parent

This commit is contained in:
Vincent Ambo 2017-02-08 17:32:19 +01:00
parent 756a4c745d
commit dd2fdd63e5
2 changed files with 4 additions and 3 deletions

View file

@ -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)
} }

View file

@ -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
} }
} }