From b6f19b140e3023e88ab8fec3bb7d78b722262609 Mon Sep 17 00:00:00 2001 From: mqliang Date: Fri, 16 Oct 2015 18:24:34 +0800 Subject: [PATCH] fix validation for HorizontalPodAutoscalerSpec --- pkg/apis/extensions/validation/validation.go | 2 +- .../extensions/validation/validation_test.go | 86 +++++++++++-------- 2 files changed, 50 insertions(+), 38 deletions(-) diff --git a/pkg/apis/extensions/validation/validation.go b/pkg/apis/extensions/validation/validation.go index c8980090096..3dd9702fd52 100644 --- a/pkg/apis/extensions/validation/validation.go +++ b/pkg/apis/extensions/validation/validation.go @@ -63,7 +63,7 @@ func validateHorizontalPodAutoscalerSpec(autoscaler extensions.HorizontalPodAuto allErrs = append(allErrs, errs.NewFieldInvalid("maxReplicas", autoscaler.MaxReplicas, `must be bigger or equal to minReplicas`)) } if autoscaler.CPUUtilization != nil && autoscaler.CPUUtilization.TargetPercentage < 1 { - allErrs = append(allErrs, errs.NewFieldInvalid("cpuUtilization.targetPercentage", autoscaler.CPUUtilization.TargetPercentage, isNegativeErrorMsg)) + allErrs = append(allErrs, errs.NewFieldInvalid("cpuUtilization.targetPercentage", autoscaler.CPUUtilization.TargetPercentage, `must be bigger or equal to 1`)) } return allErrs } diff --git a/pkg/apis/extensions/validation/validation_test.go b/pkg/apis/extensions/validation/validation_test.go index 47b97390fdf..f0fbad786fd 100644 --- a/pkg/apis/extensions/validation/validation_test.go +++ b/pkg/apis/extensions/validation/validation_test.go @@ -63,55 +63,67 @@ func TestValidateHorizontalPodAutoscaler(t *testing.T) { } } - errorCases := map[string]extensions.HorizontalPodAutoscaler{ - "must be bigger or equal to 1": { - ObjectMeta: api.ObjectMeta{ - Name: "myautoscaler", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.HorizontalPodAutoscalerSpec{ - ScaleRef: extensions.SubresourceReference{ - Subresource: "scale", + errorCases := []struct { + horizontalPodAutoscaler extensions.HorizontalPodAutoscaler + msg string + }{ + { + horizontalPodAutoscaler: extensions.HorizontalPodAutoscaler{ + ObjectMeta: api.ObjectMeta{ + Name: "myautoscaler", + Namespace: api.NamespaceDefault, + }, + Spec: extensions.HorizontalPodAutoscalerSpec{ + ScaleRef: extensions.SubresourceReference{ + Subresource: "scale", + }, + MinReplicas: newInt(-1), + MaxReplicas: 5, }, - MinReplicas: newInt(-1), - MaxReplicas: 5, }, + msg: "must be bigger or equal to 1", }, - "must be bigger or equal to minReplicas": { - ObjectMeta: api.ObjectMeta{ - Name: "myautoscaler", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.HorizontalPodAutoscalerSpec{ - ScaleRef: extensions.SubresourceReference{ - Subresource: "scale", + { + horizontalPodAutoscaler: extensions.HorizontalPodAutoscaler{ + ObjectMeta: api.ObjectMeta{ + Name: "myautoscaler", + Namespace: api.NamespaceDefault, + }, + Spec: extensions.HorizontalPodAutoscalerSpec{ + ScaleRef: extensions.SubresourceReference{ + Subresource: "scale", + }, + MinReplicas: newInt(7), + MaxReplicas: 5, }, - MinReplicas: newInt(7), - MaxReplicas: 5, }, + msg: "must be bigger or equal to minReplicas", }, - "must be non-negative": { - ObjectMeta: api.ObjectMeta{ - Name: "myautoscaler", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.HorizontalPodAutoscalerSpec{ - ScaleRef: extensions.SubresourceReference{ - Subresource: "scale", + { + horizontalPodAutoscaler: extensions.HorizontalPodAutoscaler{ + ObjectMeta: api.ObjectMeta{ + Name: "myautoscaler", + Namespace: api.NamespaceDefault, + }, + Spec: extensions.HorizontalPodAutoscalerSpec{ + ScaleRef: extensions.SubresourceReference{ + Subresource: "scale", + }, + MinReplicas: newInt(1), + MaxReplicas: 5, + CPUUtilization: &extensions.CPUTargetUtilization{TargetPercentage: -70}, }, - MinReplicas: newInt(1), - MaxReplicas: 5, - CPUUtilization: &extensions.CPUTargetUtilization{TargetPercentage: -70}, }, + msg: "must be bigger or equal to 1", }, } - for k, v := range errorCases { - errs := ValidateHorizontalPodAutoscaler(&v) + for _, c := range errorCases { + errs := ValidateHorizontalPodAutoscaler(&c.horizontalPodAutoscaler) if len(errs) == 0 { - t.Errorf("expected failure for %s", k) - } else if !strings.Contains(errs[0].Error(), k) { - t.Errorf("unexpected error: %v, expected: %s", errs[0], k) + t.Errorf("expected failure for %s", c.msg) + } else if !strings.Contains(errs[0].Error(), c.msg) { + t.Errorf("unexpected error: %v, expected: %s", errs[0], c.msg) } } }