...
1
16
17 package topologymanager
18
19 type restrictedPolicy struct {
20 bestEffortPolicy
21 }
22
23 var _ Policy = &restrictedPolicy{}
24
25
26 const PolicyRestricted string = "restricted"
27
28
29 func NewRestrictedPolicy(numaInfo *NUMAInfo, opts PolicyOptions) Policy {
30 return &restrictedPolicy{bestEffortPolicy{numaInfo: numaInfo, opts: opts}}
31 }
32
33 func (p *restrictedPolicy) Name() string {
34 return PolicyRestricted
35 }
36
37 func (p *restrictedPolicy) canAdmitPodResult(hint *TopologyHint) bool {
38 return hint.Preferred
39 }
40
41 func (p *restrictedPolicy) Merge(providersHints []map[string][]TopologyHint) (TopologyHint, bool) {
42 filteredHints := filterProvidersHints(providersHints)
43 merger := NewHintMerger(p.numaInfo, filteredHints, p.Name(), p.opts)
44 bestHint := merger.Merge()
45 admit := p.canAdmitPodResult(&bestHint)
46 return bestHint, admit
47 }
48
View as plain text