File tree Expand file tree Collapse file tree 1 file changed +19
-0
lines changed
Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -221,6 +221,25 @@ func MatchCNRTaint(taintToMatch apis.Taint, taint *apis.Taint) bool {
221221func MergeResources (dst , src apis.Resources ) apis.Resources {
222222 dst .Capacity = native .MergeResources (dst .Capacity , src .Capacity )
223223 dst .Allocatable = native .MergeResources (dst .Allocatable , src .Allocatable )
224+ dst .ResourcePackages = mergeResourcePackages (dst .ResourcePackages , src .ResourcePackages )
225+ return dst
226+ }
227+
228+ // mergeResourcePackages merge two resource packages, returns the merged result.
229+ func mergeResourcePackages (dst , src []apis.ResourcePackage ) []apis.ResourcePackage {
230+ dstPkgIdx := make (map [string ]int , len (dst ))
231+ for i , pkg := range dst {
232+ dstPkgIdx [pkg .PackageName ] = i
233+ }
234+
235+ for _ , srcPkg := range src {
236+ if idx , ok := dstPkgIdx [srcPkg .PackageName ]; ok {
237+ dst [idx ].Allocatable = native .MergeResources (dst [idx ].Allocatable , srcPkg .Allocatable )
238+ } else {
239+ dst = append (dst , srcPkg )
240+ dstPkgIdx [srcPkg .PackageName ] = len (dst ) - 1
241+ }
242+ }
224243 return dst
225244}
226245
You can’t perform that action at this time.
0 commit comments