// TODO: add other common fields that require global validation. func validateCommonFields(obj, old runtime.Object) (field.ErrorList, error) { allErrs := field.ErrorList{} objectMeta, err := api.ObjectMetaFor(obj) if err != nil { return nil, fmt.Errorf("failed to get new object metadata: %v", err) } oldObjectMeta, err := api.ObjectMetaFor(old) if err != nil { return nil, fmt.Errorf("failed to get old object metadata: %v", err) } allErrs = append(allErrs, validation.ValidateObjectMetaUpdate(objectMeta, oldObjectMeta, field.NewPath("metadata"))...) return allErrs, nil }
func (t *Tester) getObjectMetaOrFail(obj runtime.Object) *api.ObjectMeta { meta, err := api.ObjectMetaFor(obj) if err != nil { t.Fatalf("object does not have ObjectMeta: %v\n%#v", err, obj) } return meta }
func (t *Tester) delete(ctx api.Context, obj runtime.Object) error { objectMeta, err := api.ObjectMetaFor(obj) if err != nil { return err } deleter, ok := t.storage.(rest.GracefulDeleter) if !ok { return fmt.Errorf("Expected deleting storage, got %v", t.storage) } _, err = deleter.Delete(ctx, objectMeta.Name, nil) return err }
func checkPreconditions(key string, preconditions *storage.Preconditions, out runtime.Object) error { if preconditions == nil { return nil } objMeta, err := api.ObjectMetaFor(out) if err != nil { return storage.NewInternalErrorf("can't enforce preconditions %v on un-introspectable object %v, got error: %v", *preconditions, out, err) } if preconditions.UID != nil && *preconditions.UID != objMeta.UID { errMsg := fmt.Sprintf("Precondition failed: UID in precondition: %v, UID in object meta: %v", preconditions.UID, objMeta.UID) return storage.NewInvalidObjError(key, errMsg) } return nil }