Skip to content

Commit cefc1cd

Browse files
committed
Merge branch 'bug/error-message' into 'master'
citadel knows nothing about core error See merge request !22
2 parents 8bc542b + 40c708a commit cefc1cd

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

cluster/calcium/create_container.go

+21-2
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,35 @@ func (c *calcium) CreateContainer(specs types.Specs, opts *types.DeployOptions)
3030
}
3131
}
3232

33+
// when shits go wrong before doCreateContainerWithCPUPeriod, don't just return
34+
// the channel and return an error, because citadel don't know what's going on
35+
func (c *calcium) createErrorMessage(err error) *types.CreateContainerMessage {
36+
log.Errorf("Got error %s", err.Error())
37+
m := &types.CreateContainerMessage{
38+
Podname: "",
39+
Nodename: "",
40+
ContainerID: "",
41+
ContainerName: "",
42+
Error: err.Error(),
43+
Success: false,
44+
CPU: nil,
45+
Memory: 0,
46+
}
47+
return m
48+
}
49+
3350
func (c *calcium) createContainerWithCPUPeriod(specs types.Specs, opts *types.DeployOptions) (chan *types.CreateContainerMessage, error) {
3451
ch := make(chan *types.CreateContainerMessage)
3552

3653
if opts.Memory < 4194304 { // 4194304 Byte = 4 MB, docker 创建容器的内存最低标准
37-
return ch, fmt.Errorf("Minimum memory limit allowed is 4MB")
54+
err := fmt.Errorf("Minimum memory limit allowed is 4MB")
55+
ch <- c.createErrorMessage(err)
56+
return ch, err
3857
}
3958

4059
cpuandmem, _, err := c.getCPUAndMem(opts.Podname, opts.Nodename, 1.0)
4160
if err != nil {
42-
log.Errorf("Got error %v after getCPUAndMem", err)
61+
ch <- c.createErrorMessage(err)
4362
return ch, err
4463
}
4564
nodesInfo := utils.GetNodesInfo(cpuandmem)

0 commit comments

Comments
 (0)