in api/v1beta1/cloudstackmachine_webhook.go [75:99]
func (r *CloudStackMachine) ValidateUpdate(old runtime.Object) error {
cloudstackmachinelog.Info("validate update", "name", r.Name)
var (
errorList field.ErrorList
spec = r.Spec
)
oldMachine, ok := old.(*CloudStackMachine)
if !ok {
return errors.NewBadRequest(fmt.Sprintf("expected a CloudStackMachine but got a %T", old))
}
oldSpec := oldMachine.Spec
errorList = webhook_utilities.EnsureStringFieldsAreEqual(spec.Offering, oldSpec.Offering, "offering", errorList)
errorList = webhook_utilities.EnsureStringFieldsAreEqual(spec.SSHKey, oldSpec.SSHKey, "sshkey", errorList)
errorList = webhook_utilities.EnsureStringFieldsAreEqual(spec.Template, oldSpec.Template, "template", errorList)
errorList = webhook_utilities.EnsureStringStringMapFieldsAreEqual(&spec.Details, &oldSpec.Details, "details", errorList)
if spec.IdentityRef != nil && oldSpec.IdentityRef != nil {
errorList = webhook_utilities.EnsureStringFieldsAreEqual(spec.IdentityRef.Kind, oldSpec.IdentityRef.Kind, "identityRef.Kind", errorList)
errorList = webhook_utilities.EnsureStringFieldsAreEqual(spec.IdentityRef.Name, oldSpec.IdentityRef.Name, "identityRef.Name", errorList)
}
return webhook_utilities.AggregateObjErrors(r.GroupVersionKind().GroupKind(), r.Name, errorList)
}