func (s *REST) Update(ctx kapi.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { oldObj, err := s.Get(ctx, name) if err != nil { return nil, false, err } obj, err := objInfo.UpdatedObject(ctx, oldObj) if err != nil { return nil, false, err } project, ok := obj.(*api.Project) if !ok { return nil, false, fmt.Errorf("not a project: %#v", obj) } s.updateStrategy.PrepareForUpdate(obj, oldObj) if errs := s.updateStrategy.ValidateUpdate(ctx, obj, oldObj); len(errs) > 0 { return nil, false, kerrors.NewInvalid(projectapi.Kind("Project"), project.Name, errs) } namespace, err := s.client.Update(projectutil.ConvertProject(project)) if err != nil { return nil, false, err } return projectutil.ConvertNamespace(namespace), false, nil }
// Create registers the given Project. func (s *REST) Create(ctx kapi.Context, obj runtime.Object) (runtime.Object, error) { project, ok := obj.(*api.Project) if !ok { return nil, fmt.Errorf("not a project: %#v", obj) } kapi.FillObjectMetaSystemFields(ctx, &project.ObjectMeta) s.createStrategy.PrepareForCreate(obj) if errs := s.createStrategy.Validate(ctx, obj); len(errs) > 0 { return nil, kerrors.NewInvalid(projectapi.Kind("Project"), project.Name, errs) } namespace, err := s.client.Create(projectutil.ConvertProject(project)) if err != nil { return nil, err } return projectutil.ConvertNamespace(namespace), nil }