Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Qiang Huang authored on 2015/11/30 14:10:18... | ... |
@@ -31,7 +31,13 @@ func (daemon *Daemon) ContainerCreate(params *ContainerCreateConfig) (types.Cont |
31 | 31 |
return types.ContainerCreateResponse{ID: "", Warnings: warnings}, err |
32 | 32 |
} |
33 | 33 |
|
34 |
- daemon.adaptContainerSettings(params.HostConfig, params.AdjustCPUShares) |
|
34 |
+ if params.HostConfig == nil { |
|
35 |
+ params.HostConfig = &runconfig.HostConfig{} |
|
36 |
+ } |
|
37 |
+ err = daemon.adaptContainerSettings(params.HostConfig, params.AdjustCPUShares) |
|
38 |
+ if err != nil { |
|
39 |
+ return types.ContainerCreateResponse{ID: "", Warnings: warnings}, err |
|
40 |
+ } |
|
35 | 41 |
|
36 | 42 |
container, err := daemon.create(params) |
37 | 43 |
if err != nil { |
... | ... |
@@ -62,15 +68,6 @@ func (daemon *Daemon) create(params *ContainerCreateConfig) (retC *Container, re |
62 | 62 |
return nil, err |
63 | 63 |
} |
64 | 64 |
|
65 |
- if params.HostConfig == nil { |
|
66 |
- params.HostConfig = &runconfig.HostConfig{} |
|
67 |
- } |
|
68 |
- if params.HostConfig.SecurityOpt == nil { |
|
69 |
- params.HostConfig.SecurityOpt, err = daemon.generateSecurityOpt(params.HostConfig.IpcMode, params.HostConfig.PidMode) |
|
70 |
- if err != nil { |
|
71 |
- return nil, err |
|
72 |
- } |
|
73 |
- } |
|
74 | 65 |
if container, err = daemon.newContainer(params.Name, params.Config, imgID); err != nil { |
75 | 66 |
return nil, err |
76 | 67 |
} |
... | ... |
@@ -112,11 +112,7 @@ func checkKernel() error { |
112 | 112 |
|
113 | 113 |
// adaptContainerSettings is called during container creation to modify any |
114 | 114 |
// settings necessary in the HostConfig structure. |
115 |
-func (daemon *Daemon) adaptContainerSettings(hostConfig *runconfig.HostConfig, adjustCPUShares bool) { |
|
116 |
- if hostConfig == nil { |
|
117 |
- return |
|
118 |
- } |
|
119 |
- |
|
115 |
+func (daemon *Daemon) adaptContainerSettings(hostConfig *runconfig.HostConfig, adjustCPUShares bool) error { |
|
120 | 116 |
if adjustCPUShares && hostConfig.CPUShares > 0 { |
121 | 117 |
// Handle unsupported CPUShares |
122 | 118 |
if hostConfig.CPUShares < linuxMinCPUShares { |
... | ... |
@@ -135,6 +131,15 @@ func (daemon *Daemon) adaptContainerSettings(hostConfig *runconfig.HostConfig, a |
135 | 135 |
shmSize := runconfig.DefaultSHMSize |
136 | 136 |
hostConfig.ShmSize = &shmSize |
137 | 137 |
} |
138 |
+ var err error |
|
139 |
+ if hostConfig.SecurityOpt == nil { |
|
140 |
+ hostConfig.SecurityOpt, err = daemon.generateSecurityOpt(hostConfig.IpcMode, hostConfig.PidMode) |
|
141 |
+ if err != nil { |
|
142 |
+ return err |
|
143 |
+ } |
|
144 |
+ } |
|
145 |
+ |
|
146 |
+ return nil |
|
138 | 147 |
} |
139 | 148 |
|
140 | 149 |
// verifyPlatformContainerSettings performs platform-specific validation of the |