Alert message improved according to standards

Signed-off-by: twelcon <mastermind12210@gmail.com>
This commit is contained in:
twelcon 2023-07-10 17:13:35 +05:30
parent 9d4b489107
commit 70f979c8da
No known key found for this signature in database
GPG Key ID: 0246EC33BB5116B5
2 changed files with 79 additions and 56 deletions

View File

@ -3070,7 +3070,7 @@ func validateResizePolicy(policyList []core.ContainerResizePolicy, fldPath *fiel
} }
if *podRestartPolicy == core.RestartPolicyNever && p.RestartPolicy != core.NotRequired { if *podRestartPolicy == core.RestartPolicyNever && p.RestartPolicy != core.NotRequired {
allErrors = append(allErrors, field.Invalid(fldPath, p.RestartPolicy, "Only NotRequired is allowed, if pod restartPolicy is Never")) allErrors = append(allErrors, field.Invalid(fldPath, p.RestartPolicy, "must be 'NotRequired' when `restartPolicy` is 'Never'"))
} }
} }
return allErrors return allErrors

View File

@ -6754,119 +6754,118 @@ func TestValidateResizePolicy(t *testing.T) {
Errors field.ErrorList Errors field.ErrorList
PodRestartPolicy core.RestartPolicy PodRestartPolicy core.RestartPolicy
} }
// var PodRestartPolicy core.RestartPolicy
// PodRestartPolicy = "Never"
testCases := map[string]T{ testCases := map[string]T{
"ValidCPUandMemoryPolicies": { "ValidCPUandMemoryPolicies": {
[]core.ContainerResizePolicy{ PolicyList: []core.ContainerResizePolicy{
{ResourceName: "cpu", RestartPolicy: "NotRequired"}, {ResourceName: "cpu", RestartPolicy: "NotRequired"},
{ResourceName: "memory", RestartPolicy: "RestartContainer"}, {ResourceName: "memory", RestartPolicy: "RestartContainer"},
}, },
false, ExpectError: false,
nil, Errors: nil,
"Always", PodRestartPolicy: "Always",
}, },
"ValidCPUPolicy": { "ValidCPUPolicy": {
[]core.ContainerResizePolicy{ PolicyList: []core.ContainerResizePolicy{
{ResourceName: "cpu", RestartPolicy: "RestartContainer"}, {ResourceName: "cpu", RestartPolicy: "RestartContainer"},
}, },
false, ExpectError: false,
nil, Errors: nil,
"Always", PodRestartPolicy: "Always",
}, },
"ValidMemoryPolicy": { "ValidMemoryPolicy": {
[]core.ContainerResizePolicy{ PolicyList: []core.ContainerResizePolicy{
{ResourceName: "memory", RestartPolicy: "NotRequired"}, {ResourceName: "memory", RestartPolicy: "NotRequired"},
}, },
false, ExpectError: false,
nil, Errors: nil,
"Always", PodRestartPolicy: "Always",
}, },
"NoPolicy": { "NoPolicy": {
[]core.ContainerResizePolicy{}, PolicyList: []core.ContainerResizePolicy{},
false, ExpectError: false,
nil, Errors: nil,
"Always", PodRestartPolicy: "Always",
}, },
"ValidCPUandInvalidMemoryPolicy": { "ValidCPUandInvalidMemoryPolicy": {
[]core.ContainerResizePolicy{ PolicyList: []core.ContainerResizePolicy{
{ResourceName: "cpu", RestartPolicy: "NotRequired"}, {ResourceName: "cpu", RestartPolicy: "NotRequired"},
{ResourceName: "memory", RestartPolicy: "Restarrrt"}, {ResourceName: "memory", RestartPolicy: "Restarrrt"},
}, },
true, ExpectError: true,
field.ErrorList{field.NotSupported(field.NewPath("field"), core.ResourceResizeRestartPolicy("Restarrrt"), tSupportedResizePolicies.List())}, Errors: field.ErrorList{field.NotSupported(field.NewPath("field"), core.ResourceResizeRestartPolicy("Restarrrt"), tSupportedResizePolicies.List())},
"Always", PodRestartPolicy: "Always",
}, },
"ValidMemoryandInvalidCPUPolicy": { "ValidMemoryandInvalidCPUPolicy": {
[]core.ContainerResizePolicy{ PolicyList: []core.ContainerResizePolicy{
{ResourceName: "cpu", RestartPolicy: "RestartNotRequirrred"}, {ResourceName: "cpu", RestartPolicy: "RestartNotRequirrred"},
{ResourceName: "memory", RestartPolicy: "RestartContainer"}, {ResourceName: "memory", RestartPolicy: "RestartContainer"},
}, },
true, ExpectError: true,
field.ErrorList{field.NotSupported(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartNotRequirrred"), tSupportedResizePolicies.List())}, Errors: field.ErrorList{field.NotSupported(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartNotRequirrred"), tSupportedResizePolicies.List())},
"Always", PodRestartPolicy: "Always",
}, },
"InvalidResourceNameValidPolicy": { "InvalidResourceNameValidPolicy": {
[]core.ContainerResizePolicy{ PolicyList: []core.ContainerResizePolicy{
{ResourceName: "cpuuu", RestartPolicy: "NotRequired"}, {ResourceName: "cpuuu", RestartPolicy: "NotRequired"},
}, },
true, ExpectError: true,
field.ErrorList{field.NotSupported(field.NewPath("field"), core.ResourceName("cpuuu"), tSupportedResizeResources.List())}, Errors: field.ErrorList{field.NotSupported(field.NewPath("field"), core.ResourceName("cpuuu"), tSupportedResizeResources.List())},
"Always", PodRestartPolicy: "Always",
}, },
"ValidResourceNameMissingPolicy": { "ValidResourceNameMissingPolicy": {
[]core.ContainerResizePolicy{ PolicyList: []core.ContainerResizePolicy{
{ResourceName: "memory", RestartPolicy: ""}, {ResourceName: "memory", RestartPolicy: ""},
}, },
true, ExpectError: true,
field.ErrorList{field.Required(field.NewPath("field"), "")}, Errors: field.ErrorList{field.Required(field.NewPath("field"), "")},
"Always", PodRestartPolicy: "Always",
}, },
"RepeatedPolicies": { "RepeatedPolicies": {
[]core.ContainerResizePolicy{ PolicyList: []core.ContainerResizePolicy{
{ResourceName: "cpu", RestartPolicy: "NotRequired"}, {ResourceName: "cpu", RestartPolicy: "NotRequired"},
{ResourceName: "memory", RestartPolicy: "RestartContainer"}, {ResourceName: "memory", RestartPolicy: "RestartContainer"},
{ResourceName: "cpu", RestartPolicy: "RestartContainer"}, {ResourceName: "cpu", RestartPolicy: "RestartContainer"},
}, },
true, ExpectError: true,
field.ErrorList{field.Duplicate(field.NewPath("field").Index(2), core.ResourceCPU)}, Errors: field.ErrorList{field.Duplicate(field.NewPath("field").Index(2), core.ResourceCPU)},
"Always", PodRestartPolicy: "Always",
}, },
"InvalidCPUPolicyWithPodRestartPolicy": { "InvalidCPUPolicyWithPodRestartPolicy": {
[]core.ContainerResizePolicy{ PolicyList: []core.ContainerResizePolicy{
{ResourceName: "cpu", RestartPolicy: "NotRequired"}, {ResourceName: "cpu", RestartPolicy: "NotRequired"},
{ResourceName: "memory", RestartPolicy: "RestartContainer"}, {ResourceName: "memory", RestartPolicy: "RestartContainer"},
}, },
true, ExpectError: true,
field.ErrorList{field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "Only NotRequired is allowed, if pod restartPolicy is Never")}, Errors: field.ErrorList{field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "must be 'NotRequired' when `restartPolicy` is 'Never'")},
"Never", PodRestartPolicy: "Never",
}, },
"InvalidMemoryPolicyWithPodRestartPolicy": { "InvalidMemoryPolicyWithPodRestartPolicy": {
[]core.ContainerResizePolicy{ PolicyList: []core.ContainerResizePolicy{
{ResourceName: "cpu", RestartPolicy: "RestartContainer"}, {ResourceName: "cpu", RestartPolicy: "RestartContainer"},
{ResourceName: "memory", RestartPolicy: "NotRequired"}, {ResourceName: "memory", RestartPolicy: "NotRequired"},
}, },
true, ExpectError: true,
field.ErrorList{field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "Only NotRequired is allowed, if pod restartPolicy is Never")}, Errors: field.ErrorList{field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "must be 'NotRequired' when `restartPolicy` is 'Never'")},
"Never", PodRestartPolicy: "Never",
}, },
"InvalidMemoryCPUPolicyWithPodRestartPolicy": { "InvalidMemoryCPUPolicyWithPodRestartPolicy": {
[]core.ContainerResizePolicy{ PolicyList: []core.ContainerResizePolicy{
{ResourceName: "cpu", RestartPolicy: "RestartContainer"}, {ResourceName: "cpu", RestartPolicy: "RestartContainer"},
{ResourceName: "memory", RestartPolicy: "RestartContainer"}, {ResourceName: "memory", RestartPolicy: "RestartContainer"},
}, },
true, ExpectError: true,
field.ErrorList{field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "Only NotRequired is allowed, if pod restartPolicy is Never"), field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "Only NotRequired is allowed, if pod restartPolicy is Never")}, Errors: field.ErrorList{field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "must be 'NotRequired' when `restartPolicy` is 'Never'"), field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "must be 'NotRequired' when `restartPolicy` is 'Never'")},
"Never", PodRestartPolicy: "Never",
}, },
"ValidMemoryCPUPolicyWithPodRestartPolicy": { "ValidMemoryCPUPolicyWithPodRestartPolicy": {
[]core.ContainerResizePolicy{ PolicyList: []core.ContainerResizePolicy{
{ResourceName: "cpu", RestartPolicy: "NotRequired"}, {ResourceName: "cpu", RestartPolicy: "NotRequired"},
{ResourceName: "memory", RestartPolicy: "NotRequired"}, {ResourceName: "memory", RestartPolicy: "NotRequired"},
}, },
false, ExpectError: false,
nil, Errors: nil,
"Never", PodRestartPolicy: "Never",
}, },
} }
for k, v := range testCases { for k, v := range testCases {
@ -6971,6 +6970,16 @@ func TestValidateEphemeralContainers(t *testing.T) {
if errs := validateEphemeralContainers(ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy); len(errs) != 0 { if errs := validateEphemeralContainers(ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy); len(errs) != 0 {
t.Errorf("expected success for '%s' but got errors: %v", title, errs) t.Errorf("expected success for '%s' but got errors: %v", title, errs)
} }
PodRestartPolicy = "Always"
if errs := validateEphemeralContainers(ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy); len(errs) != 0 {
t.Errorf("expected success for '%s' but got errors: %v", title, errs)
}
PodRestartPolicy = "OnFailure"
if errs := validateEphemeralContainers(ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy); len(errs) != 0 {
t.Errorf("expected success for '%s' but got errors: %v", title, errs)
}
} }
// Failure Cases // Failure Cases
@ -7223,14 +7232,28 @@ func TestValidateEphemeralContainers(t *testing.T) {
} }
var PodRestartPolicy core.RestartPolicy var PodRestartPolicy core.RestartPolicy
PodRestartPolicy = "Never"
for _, tc := range tcs { for _, tc := range tcs {
t.Run(tc.title+"__@L"+tc.line, func(t *testing.T) { t.Run(tc.title+"__@L"+tc.line, func(t *testing.T) {
PodRestartPolicy = "Never"
errs := validateEphemeralContainers(tc.ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy) errs := validateEphemeralContainers(tc.ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy)
if len(errs) == 0 { if len(errs) == 0 {
t.Fatal("expected error but received none") t.Fatal("expected error but received none")
} }
PodRestartPolicy = "Always"
errs = validateEphemeralContainers(tc.ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy)
if len(errs) == 0 {
t.Fatal("expected error but received none")
}
PodRestartPolicy = "OnFailure"
errs = validateEphemeralContainers(tc.ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy)
if len(errs) == 0 {
t.Fatal("expected error but received none")
}
if diff := cmp.Diff(tc.expectedErrors, errs, cmpopts.IgnoreFields(field.Error{}, "BadValue", "Detail")); diff != "" { if diff := cmp.Diff(tc.expectedErrors, errs, cmpopts.IgnoreFields(field.Error{}, "BadValue", "Detail")); diff != "" {
t.Errorf("unexpected diff in errors (-want, +got):\n%s", diff) t.Errorf("unexpected diff in errors (-want, +got):\n%s", diff)
t.Errorf("INFO: all errors:\n%s", prettyErrorList(errs)) t.Errorf("INFO: all errors:\n%s", prettyErrorList(errs))