Skip to content

Commit b6461c9

Browse files
committed
simplify realloc: accept single container ID
1 parent 7f41a7a commit b6461c9

29 files changed

+6050
-3758
lines changed

cluster/calcium/create.go

+12-12
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func (c *Calcium) doCreateWorkloads(ctx context.Context, opts *types.DeployOptio
4242

4343
var (
4444
err error
45-
planMap map[types.ResourceType]resourcetypes.ResourcePlans
45+
plans []resourcetypes.ResourcePlans
4646
deployMap map[string]int
4747
rollbackMap map[string][]int
4848
)
@@ -71,14 +71,14 @@ func (c *Calcium) doCreateWorkloads(ctx context.Context, opts *types.DeployOptio
7171
}()
7272

7373
// calculate plans
74-
if planMap, deployMap, err = c.doAllocResource(ctx, nodeMap, opts); err != nil {
74+
if plans, deployMap, err = c.doAllocResource(ctx, nodeMap, opts); err != nil {
7575
return errors.WithStack(err)
7676
}
7777

7878
// commit changes
7979
nodes := []*types.Node{}
8080
for nodename, deploy := range deployMap {
81-
for _, plan := range planMap {
81+
for _, plan := range plans {
8282
plan.ApplyChangesOnNode(nodeMap[nodename], utils.Range(deploy)...)
8383
}
8484
nodes = append(nodes, nodeMap[nodename])
@@ -92,15 +92,15 @@ func (c *Calcium) doCreateWorkloads(ctx context.Context, opts *types.DeployOptio
9292

9393
// then: deploy containers
9494
func(ctx context.Context) error {
95-
rollbackMap, err = c.doDeployWorkloads(ctx, ch, opts, planMap, deployMap)
95+
rollbackMap, err = c.doDeployWorkloads(ctx, ch, opts, plans, deployMap)
9696
return errors.WithStack(err)
9797
},
9898

9999
// rollback: give back resources
100100
func(ctx context.Context) (err error) {
101101
for nodename, rollbackIndices := range rollbackMap {
102102
if e := c.withNodeLocked(ctx, nodename, func(node *types.Node) error {
103-
for _, plan := range planMap {
103+
for _, plan := range plans {
104104
plan.RollbackChangesOnNode(node, rollbackIndices...)
105105
}
106106
return errors.WithStack(c.store.UpdateNodes(ctx, node))
@@ -120,7 +120,7 @@ func (c *Calcium) doCreateWorkloads(ctx context.Context, opts *types.DeployOptio
120120
return ch, err
121121
}
122122

123-
func (c *Calcium) doDeployWorkloads(ctx context.Context, ch chan *types.CreateContainerMessage, opts *types.DeployOptions, planMap map[types.ResourceType]resourcetypes.ResourcePlans, deployMap map[string]int) (_ map[string][]int, err error) {
123+
func (c *Calcium) doDeployWorkloads(ctx context.Context, ch chan *types.CreateContainerMessage, opts *types.DeployOptions, plans []resourcetypes.ResourcePlans, deployMap map[string]int) (_ map[string][]int, err error) {
124124
wg := sync.WaitGroup{}
125125
wg.Add(len(deployMap))
126126

@@ -130,7 +130,7 @@ func (c *Calcium) doDeployWorkloads(ctx context.Context, ch chan *types.CreateCo
130130
go metrics.Client.SendDeployCount(deploy)
131131
go func(nodename string, deploy, seq int) {
132132
defer wg.Done()
133-
if indices, e := c.doDeployWorkloadsOnNode(ctx, ch, nodename, opts, deploy, planMap, seq); e != nil {
133+
if indices, e := c.doDeployWorkloadsOnNode(ctx, ch, nodename, opts, deploy, plans, seq); e != nil {
134134
err = e
135135
rollbackMap[nodename] = indices
136136
}
@@ -144,7 +144,7 @@ func (c *Calcium) doDeployWorkloads(ctx context.Context, ch chan *types.CreateCo
144144
}
145145

146146
// deploy scheduled containers on one node
147-
func (c *Calcium) doDeployWorkloadsOnNode(ctx context.Context, ch chan *types.CreateContainerMessage, nodename string, opts *types.DeployOptions, deploy int, planMap map[types.ResourceType]resourcetypes.ResourcePlans, seq int) (indices []int, err error) {
147+
func (c *Calcium) doDeployWorkloadsOnNode(ctx context.Context, ch chan *types.CreateContainerMessage, nodename string, opts *types.DeployOptions, deploy int, plans []resourcetypes.ResourcePlans, seq int) (indices []int, err error) {
148148
node, err := c.doGetAndPrepareNode(ctx, nodename, opts.Image)
149149
if err != nil {
150150
for i := 0; i < deploy; i++ {
@@ -170,18 +170,18 @@ func (c *Calcium) doDeployWorkloadsOnNode(ctx context.Context, ch chan *types.Cr
170170
ch <- createMsg
171171
}()
172172

173-
var r *types.Resource1
173+
var r *types.ResourceMeta
174174
o := resourcetypes.DispenseOptions{
175175
Node: node,
176176
Index: idx,
177177
}
178-
for _, plan := range planMap {
178+
for _, plan := range plans {
179179
if r, e = plan.Dispense(o, r); e != nil {
180180
return
181181
}
182182
}
183183

184-
createMsg.Resource1 = *r
184+
createMsg.ResourceMeta = *r
185185
e = c.doDeployOneWorkload(ctx, node, opts, createMsg, seq+idx, deploy-1-idx)
186186
return e
187187
}
@@ -210,7 +210,7 @@ func (c *Calcium) doDeployOneWorkload(
210210
) (err error) {
211211
config := c.doMakeContainerOptions(no, msg, opts, node)
212212
container := &types.Container{
213-
Resource1: types.Resource1{
213+
ResourceMeta: types.ResourceMeta{
214214
CPU: msg.CPU,
215215
CPUQuotaRequest: msg.CPUQuotaRequest,
216216
CPUQuotaLimit: msg.CPUQuotaLimit,

cluster/calcium/dissociate.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func (c *Calcium) DissociateContainer(ctx context.Context, IDs []string) (chan *
2626
// then
2727
func(ctx context.Context) error {
2828
log.Infof("[DissociateContainer] Container %s dissociated", container.ID)
29-
return c.store.UpdateNodeResource(ctx, node, &container.Resource1, store.ActionIncr)
29+
return c.store.UpdateNodeResource(ctx, node, &container.ResourceMeta, store.ActionIncr)
3030
},
3131
// rollback
3232
nil,

cluster/calcium/dissociate_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func TestDissociateContainer(t *testing.T) {
2323
lock.On("Unlock", mock.Anything).Return(nil)
2424

2525
c1 := &types.Container{
26-
Resource1: types.Resource1{
26+
ResourceMeta: types.ResourceMeta{
2727
MemoryLimit: 5 * int64(units.MiB),
2828
MemoryRequest: 5 * int64(units.MiB),
2929
CPUQuotaLimit: 0.9,

0 commit comments

Comments
 (0)