func (daemon *Daemon) createPodInternal(podId, podArgs string, autoremove, withinLock bool) (*Pod, error) { glog.V(2).Infof("podArgs: %s", podArgs) pod, err := NewPod([]byte(podArgs), podId, daemon, autoremove) if err != nil { return nil, err } // Creation if err = pod.DoCreate(daemon); err != nil { return nil, err } if !withinLock { daemon.PodList.Lock() glog.V(2).Infof("lock PodList") defer glog.V(2).Infof("unlock PodList") defer daemon.PodList.Unlock() } if err = daemon.AddPod(pod, podArgs); err != nil { return nil, err } return pod, nil }
func (daemon *Daemon) createPodInternal(podId string, podSpec *apitypes.UserPod, withinLock bool) (*Pod, error) { glog.V(2).Infof("podArgs: %s", podSpec.String()) pod, err := NewPod(podSpec, podId, daemon) if err != nil { return nil, err } // Creation if err = pod.DoCreate(daemon); err != nil { return nil, err } return pod, nil }
func (daemon *Daemon) createPodInternal(podId string, podSpec *apitypes.UserPod, withinLock bool) (*Pod, error) { glog.V(2).Infof("podArgs: %s", podSpec.String()) pod, err := NewPod(podSpec, podId, daemon) if err != nil { return nil, err } defer func() { if err != nil { pod.Lock() glog.Infof("create pod %s failed, cleanup", podId) pod.Cleanup(daemon) pod.Unlock() } }() // Creation if err = pod.DoCreate(daemon); err != nil { return nil, err } return pod, nil }