Add verify config to verifyContainerSettings

Signed-off-by: Lei Jitang <leijitang@huawei.com>
Upstream-commit: b37832e353327481579cbe2709f63a34453bf83b
Component: engine
This commit is contained in:
Lei Jitang
2015-06-13 09:31:19 +08:00
parent 1a52506c99
commit 2046248b9d
4 changed files with 13 additions and 11 deletions
+1 -8
View File
@@ -19,18 +19,11 @@ func (daemon *Daemon) ContainerCreate(name string, config *runconfig.Config, hos
return "", nil, fmt.Errorf("Config cannot be empty in order to create a container")
}
warnings, err := daemon.verifyContainerSettings(hostConfig)
warnings, err := daemon.verifyContainerSettings(hostConfig, config)
if err != nil {
return "", warnings, err
}
// The check for a valid workdir path is made on the server rather than in the
// client. This is because we don't know the type of path (Linux or Windows)
// to validate on the client.
if config.WorkingDir != "" && !filepath.IsAbs(config.WorkingDir) {
return "", warnings, fmt.Errorf("The working directory '%s' is invalid. It needs to be an absolute path.", config.WorkingDir)
}
container, buildWarnings, err := daemon.Create(config, hostConfig, name)
if err != nil {
if daemon.Graph().IsNotExist(err, config.Image) {
+10 -1
View File
@@ -112,9 +112,18 @@ func checkKernel() error {
return nil
}
func (daemon *Daemon) verifyContainerSettings(hostConfig *runconfig.HostConfig) ([]string, error) {
func (daemon *Daemon) verifyContainerSettings(hostConfig *runconfig.HostConfig, config *runconfig.Config) ([]string, error) {
var warnings []string
if config != nil {
// The check for a valid workdir path is made on the server rather than in the
// client. This is because we don't know the type of path (Linux or Windows)
// to validate on the client.
if config.WorkingDir != "" && !filepath.IsAbs(config.WorkingDir) {
return warnings, fmt.Errorf("The working directory '%s' is invalid. It needs to be an absolute path.", config.WorkingDir)
}
}
if hostConfig == nil {
return warnings, nil
}
+1 -1
View File
@@ -42,7 +42,7 @@ func checkKernel() error {
return nil
}
func (daemon *Daemon) verifyContainerSettings(hostConfig *runconfig.HostConfig) ([]string, error) {
func (daemon *Daemon) verifyContainerSettings(hostConfig *runconfig.HostConfig, config *runconfig.HostConfig) ([]string, error) {
// TODO Windows. Verifications TBC
return nil, nil
}
+1 -1
View File
@@ -20,7 +20,7 @@ func (daemon *Daemon) ContainerStart(name string, hostConfig *runconfig.HostConf
return fmt.Errorf("Container already started")
}
if _, err = daemon.verifyContainerSettings(hostConfig); err != nil {
if _, err = daemon.verifyContainerSettings(hostConfig, nil); err != nil {
return err
}