Browse code

Move security opt adaption to adapt function

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>

Qiang Huang authored on 2015/11/30 14:10:18
Showing 2 changed files
... ...
@@ -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