func (rs *RegistryStorage) Update(obj interface{}) (<-chan interface{}, error) { pod := obj.(*api.Pod) if errs := api.ValidatePod(pod); len(errs) > 0 { return nil, fmt.Errorf("Validation errors: %v", errs) } return apiserver.MakeAsync(func() (interface{}, error) { if err := rs.registry.UpdatePod(*pod); err != nil { return nil, err } return rs.waitForPodRunning(*pod) }), nil }
func (rs *RegistryStorage) Update(obj interface{}) (<-chan interface{}, error) { pod := obj.(*api.Pod) if errs := api.ValidatePod(pod); len(errs) > 0 { return nil, apiserver.NewInvalidErr("pod", pod.ID, errs) } return apiserver.MakeAsync(func() (interface{}, error) { if err := rs.registry.UpdatePod(*pod); err != nil { return nil, err } return rs.registry.GetPod(pod.ID) }), nil }
func (rs *RegistryStorage) Create(obj interface{}) (<-chan interface{}, error) { pod := obj.(*api.Pod) if len(pod.ID) == 0 { pod.ID = uuid.NewUUID().String() } pod.DesiredState.Manifest.ID = pod.ID if errs := api.ValidatePod(pod); len(errs) > 0 { return nil, fmt.Errorf("Validation errors: %v", errs) } return apiserver.MakeAsync(func() (interface{}, error) { if err := rs.scheduleAndCreatePod(*pod); err != nil { return nil, err } return rs.waitForPodRunning(*pod) }), nil }
func (rs *RegistryStorage) Create(obj interface{}) (<-chan interface{}, error) { pod := obj.(*api.Pod) if len(pod.ID) == 0 { pod.ID = uuid.NewUUID().String() } pod.DesiredState.Manifest.ID = pod.ID if errs := api.ValidatePod(pod); len(errs) > 0 { return nil, apiserver.NewInvalidErr("pod", pod.ID, errs) } pod.CreationTimestamp = util.Now() return apiserver.MakeAsync(func() (interface{}, error) { if err := rs.registry.CreatePod(*pod); err != nil { return nil, err } return rs.registry.GetPod(pod.ID) }), nil }