virtcontainers: update resources after adding container to sandbox

Status of container should know prior to calculate the number of CPU
and memory

Signed-off-by: Julio Montes <julio.montes@intel.com>
This commit is contained in:
Julio Montes 2019-11-22 18:09:00 +00:00
parent fea166d8eb
commit 43f051313e

View File

@ -1176,12 +1176,6 @@ func (s *Sandbox) CreateContainer(contConfig ContainerConfig) (VCContainer, erro
}
}()
// Sandbox is reponsable to update VM resources needed by Containers
err = s.updateResources()
if err != nil {
return nil, err
}
err = c.create()
if err != nil {
return nil, err
@ -1192,6 +1186,14 @@ func (s *Sandbox) CreateContainer(contConfig ContainerConfig) (VCContainer, erro
return nil, err
}
// Sandbox is reponsable to update VM resources needed by Containers
// Update resources after having added containers to the sandbox, since
// container status is requiered to know if more resources should be added.
err = s.updateResources()
if err != nil {
return nil, err
}
// Store it.
err = c.storeContainer()
if err != nil {
@ -1228,7 +1230,13 @@ func (s *Sandbox) StartContainer(containerID string) (VCContainer, error) {
}
s.Logger().Info("Container is started")
//Fixme Container delete from sandbox, need to update resources
// Update sandbox resources in case a stopped container
// is started
err = s.updateResources()
if err != nil {
return nil, err
}
return c, nil
}
@ -1487,10 +1495,6 @@ func (s *Sandbox) createContainers() error {
span, _ := s.trace("createContainers")
defer span.Finish()
if err := s.updateResources(); err != nil {
return err
}
for _, contConfig := range s.config.Containers {
c, err := newContainer(s, &contConfig)
@ -1506,6 +1510,12 @@ func (s *Sandbox) createContainers() error {
}
}
// Update resources after having added containers to the sandbox, since
// container status is requiered to know if more resources should be added.
if err := s.updateResources(); err != nil {
return err
}
if err := s.cgroupsUpdate(); err != nil {
return err
}