Skip to content

Commit b4db160

Browse files
yuyang0CMGS
authored andcommitted
better way to extract resource from engine info
1 parent b123642 commit b4db160

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

engine/types/info.go

+1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ type Info struct {
77
NCPU int
88
MemTotal int64
99
StorageTotal int64
10+
Resources map[string][]byte
1011
}

engine/virt/virt.go

+1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ func (v *Virt) Info(ctx context.Context) (*enginetypes.Info, error) {
7474
NCPU: resp.CPU,
7575
MemTotal: resp.Mem,
7676
StorageTotal: resp.Storage,
77+
Resources: resp.Resources,
7778
}, nil
7879
}
7980

resource/plugins/cpumem/node.go

+16-1
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,31 @@ func (p Plugin) AddNode(ctx context.Context, nodename string, resource plugintyp
3737
return nil, err
3838
}
3939

40-
if info != nil {
40+
if info != nil { //nolint
41+
// extrace NodeResource from Resources
42+
var nodeRes cpumemtypes.NodeResource
43+
if b, ok := info.Resources[p.Name()]; ok {
44+
if err := json.Unmarshal(b, &nodeRes); err != nil {
45+
return nil, err
46+
}
47+
// NodeResource has higher priority
48+
info.NCPU = int(nodeRes.CPU)
49+
info.MemTotal = nodeRes.Memory
50+
}
4151
if len(req.CPUMap) == 0 {
4252
req.CPUMap = cpumemtypes.CPUMap{}
4353
for i := 0; i < info.NCPU; i++ {
4454
req.CPUMap[strconv.Itoa(i)] = p.config.Scheduler.ShareBase
4555
}
56+
req.NUMA = nodeRes.NUMA
4657
}
4758

4859
if req.Memory == 0 {
4960
req.Memory = info.MemTotal * rate / 10 // use 80% of real memory
61+
req.NUMAMemory = cpumemtypes.NUMAMemory{}
62+
for k, v := range nodeRes.NUMAMemory {
63+
req.NUMAMemory[k] = v * rate / 10
64+
}
5065
}
5166
}
5267

0 commit comments

Comments
 (0)