Ejemplo n.º 1
0
Archivo: pod.go Proyecto: ZJU-SEL/hyper
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
}
Ejemplo n.º 2
0
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
}
Ejemplo n.º 3
0
Archivo: run.go Proyecto: juito/hyper
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
}