Skip to content

Commit 3f28f1b

Browse files
committed
refactor cpumem addnode stage2
1 parent 5cd2c9f commit 3f28f1b

File tree

3 files changed

+22
-63
lines changed

3 files changed

+22
-63
lines changed

resource/plugins/cpumem/client/node.go

Lines changed: 11 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ package client
22

33
import (
44
"encoding/json"
5-
"strconv"
6-
"strings"
75

86
"github.com/projecteru2/core/resource/plugins/cpumem/types"
97
)
@@ -14,53 +12,23 @@ type cpuType interface {
1412

1513
// NodeResourceRequest includes all possible fields passed by eru-core for editing node, it not parsed!
1614
type NodeResourceRequest[T cpuType] struct {
17-
CPU T `json:"cpu"`
18-
Share int64 `json:"share"`
19-
Memory int64 `json:"memory"`
20-
NUMA []string `json:"numa-cpu"`
21-
NUMAMemory []int64 `json:"numa-memory"`
15+
CPU T `json:"cpu"`
16+
Share int64 `json:"share"`
17+
Memory int64 `json:"memory"`
2218

23-
NUMACPUMap types.NUMA `json:"-"`
24-
NUMAMemoryMap types.NUMAMemory `json:"-"`
19+
NUMA types.NUMA `json:"numa-cpu"`
20+
NUMAMemory types.NUMAMemory `json:"numa-memory"`
2521
}
2622

2723
// NewNodeResourceRequest .
28-
func NewNodeResourceRequest[T cpuType](cpu T, share, memory int64, NUMACPUMap types.NUMA, NUMAMemoryMap types.NUMAMemory) (*NodeResourceRequest[T], error) {
24+
func NewNodeResourceRequest[T cpuType](cpu T, share, memory int64, NUMA types.NUMA, NUMAMemory types.NUMAMemory) (*NodeResourceRequest[T], error) {
2925
r := &NodeResourceRequest[T]{
30-
CPU: cpu,
31-
Share: share,
32-
Memory: memory,
26+
CPU: cpu,
27+
Share: share,
28+
Memory: memory,
29+
NUMA: NUMA,
30+
NUMAMemory: NUMAMemory,
3331
}
34-
tmpNUMA := map[int][]string{}
35-
for cpuID, nodeID := range NUMACPUMap {
36-
nID, err := strconv.Atoi(nodeID)
37-
if err != nil {
38-
return nil, err
39-
}
40-
if tmpNUMA[nID] == nil {
41-
tmpNUMA[nID] = []string{cpuID}
42-
continue
43-
}
44-
tmpNUMA[nID] = append(tmpNUMA[nID], cpuID)
45-
}
46-
r.NUMA = make([]string, len(tmpNUMA))
47-
for nodeID, cpus := range tmpNUMA {
48-
r.NUMA[nodeID] = strings.Join(cpus, ",")
49-
}
50-
51-
tmpNUMAMemory := map[int]int64{}
52-
for nodeID, memory := range NUMAMemoryMap {
53-
nID, err := strconv.Atoi(nodeID)
54-
if err != nil {
55-
return nil, err
56-
}
57-
tmpNUMAMemory[nID] = memory
58-
}
59-
r.NUMAMemory = make([]int64, len(tmpNUMAMemory))
60-
for nodeID, memory := range tmpNUMAMemory {
61-
r.NUMAMemory[nodeID] = memory
62-
}
63-
6432
return r, nil
6533
}
6634

resource/plugins/cpumem/types/node.go

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,6 @@ type NodeResourceRequest struct {
179179
}
180180

181181
func (n *NodeResourceRequest) Parse(config coretypes.Config, rawParams resourcetypes.RawParams) error {
182-
var err error
183-
184182
if n.CPUMap == nil {
185183
n.CPUMap = CPUMap{}
186184
}
@@ -208,30 +206,17 @@ func (n *NodeResourceRequest) Parse(config coretypes.Config, rawParams resourcet
208206
n.CPUMap[cpuID] = int(pieces)
209207
}
210208
}
211-
212-
if n.Memory, err = coreutils.ParseRAMInHuman(rawParams.String("memory")); err != nil {
213-
return err
214-
}
209+
n.Memory = rawParams.Int64("memory")
215210

216211
n.NUMA = NUMA{}
217212
n.NUMAMemory = NUMAMemory{}
218-
219-
for index, numaCPUList := range rawParams.StringSlice("numa-cpu") {
220-
nodeID := fmt.Sprintf("%d", index)
221-
for _, cpuID := range strings.Split(numaCPUList, ",") {
222-
n.NUMA[cpuID] = nodeID
223-
}
213+
for cpuID, nodeID := range rawParams.RawParams("numa-cpu") {
214+
n.NUMA[cpuID] = nodeID.(string)
224215
}
225216

226-
for index, nodeMemory := range rawParams.StringSlice("numa-memory") {
227-
nodeID := fmt.Sprintf("%d", index)
228-
mem, err := coreutils.ParseRAMInHuman(nodeMemory)
229-
if err != nil {
230-
return err
231-
}
232-
n.NUMAMemory[nodeID] = mem
217+
for nodeID, nodeMemory := range rawParams.RawParams("numa-memory") {
218+
n.NUMAMemory[nodeID] = int64(nodeMemory.(float64))
233219
}
234-
235220
return nil
236221
}
237222

rpc/transform.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
pb "github.com/projecteru2/core/rpc/gen"
1313
"github.com/projecteru2/core/types"
1414
"github.com/projecteru2/core/utils"
15+
"github.com/sanity-io/litter"
1516

1617
"golang.org/x/net/context"
1718
)
@@ -539,12 +540,17 @@ func toCoreRemoveImageOptions(opts *pb.RemoveImageOptions) *types.ImageOptions {
539540
func toCoreResources(resources map[string][]byte) resourcetypes.Resources {
540541
r := resourcetypes.Resources{}
541542
for k, v := range resources {
543+
fmt.Println("==============")
544+
fmt.Println(k, string(v))
545+
fmt.Println("==============")
542546
rp := resourcetypes.RawParams{}
543547
if err := json.Unmarshal(v, &rp); err != nil {
544548
log.WithFunc("toCoreResources").Errorf(nil, err, "%v", string(v)) // nolint
545549
continue
546550
}
547551
r[k] = rp
552+
litter.Dump(rp)
553+
fmt.Println("==============")
548554
}
549555
return r
550556
}

0 commit comments

Comments
 (0)