virtcontainers: change pass by value to pass by reference

container.config does not point to sandbox.config.Containers.ContainerConfig
which caused the ContainerConfig not sync.

Fixes: #2129

Signed-off-by: Wang Liang <wangliangzz@inspur.com>
This commit is contained in:
Wang Liang 2019-10-11 23:04:32 -04:00
parent c7b4c5eab9
commit 24d7aff60c
3 changed files with 8 additions and 8 deletions

View File

@ -717,7 +717,7 @@ func (c *Container) createBlockDevices() error {
}
// newContainer creates a Container structure from a sandbox and a container configuration.
func newContainer(sandbox *Sandbox, contConfig ContainerConfig) (*Container, error) {
func newContainer(sandbox *Sandbox, contConfig *ContainerConfig) (*Container, error) {
span, _ := sandbox.trace("newContainer")
defer span.Finish()
@ -729,7 +729,7 @@ func newContainer(sandbox *Sandbox, contConfig ContainerConfig) (*Container, err
id: contConfig.ID,
sandboxID: sandbox.id,
rootFs: contConfig.RootFs,
config: &contConfig,
config: contConfig,
sandbox: sandbox,
runPath: store.ContainerRuntimeRootPath(sandbox.id, contConfig.ID),
configPath: store.ContainerConfigurationRootPath(sandbox.id, contConfig.ID),
@ -812,7 +812,7 @@ func (c *Container) createMounts() error {
return nil
}
func (c *Container) createDevices(contConfig ContainerConfig) error {
func (c *Container) createDevices(contConfig *ContainerConfig) error {
// If sandbox supports "newstore", only newly created container can reach this function,
// so we don't call restore when `supportNewStore` is true
if !c.sandbox.supportNewStore() {

View File

@ -1099,7 +1099,7 @@ func (s *Sandbox) fetchContainers() error {
contConfig.Spec = &spec
s.config.Containers[i] = contConfig
c, err := newContainer(s, contConfig)
c, err := newContainer(s, &s.config.Containers[i])
if err != nil {
return err
}
@ -1118,7 +1118,7 @@ func (s *Sandbox) fetchContainers() error {
func (s *Sandbox) CreateContainer(contConfig ContainerConfig) (VCContainer, error) {
storeAlreadyExists := store.VCContainerStoreExists(s.ctx, s.id, contConfig.ID)
// Create the container.
c, err := newContainer(s, contConfig)
c, err := newContainer(s, &contConfig)
if err != nil {
return nil, err
}
@ -1417,7 +1417,7 @@ func (s *Sandbox) createContainers() error {
for _, contConfig := range s.config.Containers {
c, err := newContainer(s, contConfig)
c, err := newContainer(s, &contConfig)
if err != nil {
return err
}

View File

@ -621,7 +621,7 @@ func TestSandboxGetContainer(t *testing.T) {
contID := "999"
contConfig := newTestContainerConfigNoop(contID)
nc, err := newContainer(p, contConfig)
nc, err := newContainer(p, &contConfig)
assert.NoError(err)
err = p.addContainer(nc)
@ -1043,7 +1043,7 @@ func TestDeleteStoreWhenNewContainerFail(t *testing.T) {
DevType: "",
},
}
_, err = newContainer(p, contConfig)
_, err = newContainer(p, &contConfig)
assert.NotNil(t, err, "New container with invalid device info should fail")
storePath := store.ContainerConfigurationRootPath(testSandboxID, contID)
_, err = os.Stat(storePath)