support merge strategy in list

This commit is contained in:
Donny Xia
2020-09-28 16:56:54 -07:00
parent dd8edb1b01
commit ff927fd11a
6 changed files with 424 additions and 10 deletions

View File

@@ -61,7 +61,7 @@ func (m Merger) VisitMap(nodes walk.Sources, s *openapi.ResourceSchema) (*yaml.R
return walk.ClearNode, nil
}
ps, err := determineMappingNodePatchStrategy(nodes.Origin())
ps, err := determineSmpDirective(nodes.Origin())
if err != nil {
return nil, err
}
@@ -115,8 +115,20 @@ func (m Merger) VisitList(nodes walk.Sources, s *openapi.ResourceSchema, kind wa
if nodes.Origin().IsTaggedNull() {
return walk.ClearNode, nil
}
// Recursively Merge dest
return nodes.Dest(), nil
ps, err := determineSmpDirective(nodes.Origin())
if err != nil {
return nil, err
}
switch ps {
case smpDelete:
return walk.ClearNode, nil
case smpReplace:
return nodes.Origin(), nil
default:
return nodes.Dest(), nil
}
}
func (m Merger) SetStyle(sources walk.Sources) error {