// ValidateObjectMetaUpdate validates an object's metadata when updated func ValidateObjectMetaUpdate(old, meta *api.ObjectMeta) errs.ValidationErrorList { allErrs := errs.ValidationErrorList{} // in the event it is left empty, set it, to allow clients more flexibility if len(meta.UID) == 0 { meta.UID = old.UID } if meta.CreationTimestamp.IsZero() { meta.CreationTimestamp = old.CreationTimestamp } if old.Name != meta.Name { allErrs = append(allErrs, errs.NewFieldInvalid("name", meta.Name, "field is immutable")) } if old.Namespace != meta.Namespace { allErrs = append(allErrs, errs.NewFieldInvalid("namespace", meta.Namespace, "field is immutable")) } if old.UID != meta.UID { allErrs = append(allErrs, errs.NewFieldInvalid("uid", meta.UID, "field is immutable")) } if old.CreationTimestamp != meta.CreationTimestamp { allErrs = append(allErrs, errs.NewFieldInvalid("creationTimestamp", meta.CreationTimestamp, "field is immutable")) } allErrs = append(allErrs, ValidateLabels(meta.Labels, "labels")...) allErrs = append(allErrs, ValidateAnnotations(meta.Annotations, "annotations")...) return allErrs }
func exportObjectMeta(objMeta *kapi.ObjectMeta, exact bool) { objMeta.UID = "" if !exact { objMeta.Namespace = "" } objMeta.CreationTimestamp = util.Time{} objMeta.DeletionTimestamp = nil objMeta.ResourceVersion = "" objMeta.SelfLink = "" if len(objMeta.GenerateName) > 0 && !exact { objMeta.Name = "" } }