api: add sandbox CreateContainer API

And make CreateContainer in api.go a wrapper of it.

Signed-off-by: Peng Tao <bergwolf@gmail.com>
This commit is contained in:
Peng Tao
2018-04-18 17:25:10 +08:00
parent ef89131b85
commit f6aa8a23fc
5 changed files with 49 additions and 22 deletions

View File

@@ -299,36 +299,17 @@ func CreateContainer(sandboxID string, containerConfig ContainerConfig) (VCSandb
}
defer unlockSandbox(lockFile)
p, err := fetchSandbox(sandboxID)
s, err := fetchSandbox(sandboxID)
if err != nil {
return nil, nil, err
}
// Create the container.
c, err := createContainer(p, containerConfig)
c, err := s.CreateContainer(containerConfig)
if err != nil {
return nil, nil, err
}
// Add the container to the containers list in the sandbox.
if err := p.addContainer(c); err != nil {
return nil, nil, err
}
// Store it.
err = c.storeContainer()
if err != nil {
return nil, nil, err
}
// Update sandbox config.
p.config.Containers = append(p.config.Containers, containerConfig)
err = p.storage.storeSandboxResource(sandboxID, configFileType, *(p.config))
if err != nil {
return nil, nil, err
}
return p, c, nil
return s, c, nil
}
// DeleteContainer is the virtcontainers container deletion entry point.