do not allow to remove infra container
Infra container is special, sandbox won't work well without infra container. If user really want to remove it, they should remove sanbox instead. this also fix a panic due to c.state is nil. 1, remove infra container 2, restart ocid 3, ocic ctr list Signed-off-by: Gao feng <omarapazanadi@gmail.com>
This commit is contained in:
parent
0ef2fc937b
commit
a8e7e22a79
1 changed files with 10 additions and 0 deletions
|
@ -381,6 +381,16 @@ func (s *Server) RemoveContainer(ctx context.Context, req *pb.RemoveContainerReq
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sb := s.getSandbox(c.Sandbox())
|
||||||
|
if sb == nil {
|
||||||
|
return nil, fmt.Errorf("failed to find sandbox for container %s", c.ID())
|
||||||
|
}
|
||||||
|
|
||||||
|
podInfraContainerName := sb.name + "-infra"
|
||||||
|
if podInfraContainerName == c.Name() {
|
||||||
|
return nil, fmt.Errorf("can not delete Infra container %s\n", c.ID())
|
||||||
|
}
|
||||||
|
|
||||||
if err := s.runtime.UpdateStatus(c); err != nil {
|
if err := s.runtime.UpdateStatus(c); err != nil {
|
||||||
return nil, fmt.Errorf("failed to update container state: %v", err)
|
return nil, fmt.Errorf("failed to update container state: %v", err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue