Merge pull request #241 from sameo/topic/sandbox_remove

Make RemovePodSandbox idempotent
This commit is contained in:
Mrunal Patel 2016-12-08 07:15:25 -08:00 committed by GitHub
commit 0fcb25cc97
2 changed files with 13 additions and 2 deletions

View file

@ -1,6 +1,7 @@
package server package server
import ( import (
"errors"
"fmt" "fmt"
"github.com/docker/docker/pkg/stringid" "github.com/docker/docker/pkg/stringid"
@ -26,6 +27,10 @@ const (
podDefaultNamespace = "default" podDefaultNamespace = "default"
) )
var (
errSandboxIDEmpty = errors.New("PodSandboxId should not be empty")
)
func (s *sandbox) addContainer(c *oci.Container) { func (s *sandbox) addContainer(c *oci.Container) {
s.containers.Add(c.Name(), c) s.containers.Add(c.Name(), c)
} }
@ -60,7 +65,7 @@ type podSandboxRequest interface {
func (s *Server) getPodSandboxFromRequest(req podSandboxRequest) (*sandbox, error) { func (s *Server) getPodSandboxFromRequest(req podSandboxRequest) (*sandbox, error) {
sbID := req.GetPodSandboxId() sbID := req.GetPodSandboxId()
if sbID == "" { if sbID == "" {
return nil, fmt.Errorf("PodSandboxId should not be empty") return nil, errSandboxIDEmpty
} }
sandboxID, err := s.podIDIndex.Get(sbID) sandboxID, err := s.podIDIndex.Get(sbID)

View file

@ -18,7 +18,13 @@ func (s *Server) RemovePodSandbox(ctx context.Context, req *pb.RemovePodSandboxR
logrus.Debugf("RemovePodSandboxRequest %+v", req) logrus.Debugf("RemovePodSandboxRequest %+v", req)
sb, err := s.getPodSandboxFromRequest(req) sb, err := s.getPodSandboxFromRequest(req)
if err != nil { if err != nil {
return nil, err if err == errSandboxIDEmpty {
return nil, err
}
resp := &pb.RemovePodSandboxResponse{}
logrus.Warnf("could not get sandbox %s, it's probably been removed already: %v", req.GetPodSandboxId(), err)
return resp, nil
} }
podInfraContainer := sb.infraContainer podInfraContainer := sb.infraContainer