Make PodTemplateSpec for Job not a pointer, since it's a required field

This commit is contained in:
Maciej Szulik
2015-09-25 21:07:06 +02:00
parent 4f6ac7ec79
commit 98fa29adfd
16 changed files with 43 additions and 85 deletions

View File

@@ -351,19 +351,15 @@ func ValidateJobSpec(spec *extensions.JobSpec) errs.ValidationErrorList {
allErrs = append(allErrs, errs.NewFieldRequired("selector"))
}
if spec.Template == nil {
allErrs = append(allErrs, errs.NewFieldRequired("template"))
} else {
labels := labels.Set(spec.Template.Labels)
if !selector.Matches(labels) {
allErrs = append(allErrs, errs.NewFieldInvalid("template.labels", spec.Template.Labels, "selector does not match template"))
}
allErrs = append(allErrs, apivalidation.ValidatePodTemplateSpec(spec.Template).Prefix("template")...)
if spec.Template.Spec.RestartPolicy != api.RestartPolicyOnFailure &&
spec.Template.Spec.RestartPolicy != api.RestartPolicyNever {
allErrs = append(allErrs, errs.NewFieldValueNotSupported("template.spec.restartPolicy",
spec.Template.Spec.RestartPolicy, []string{string(api.RestartPolicyOnFailure), string(api.RestartPolicyNever)}))
}
labels := labels.Set(spec.Template.Labels)
if !selector.Matches(labels) {
allErrs = append(allErrs, errs.NewFieldInvalid("template.labels", spec.Template.Labels, "selector does not match template"))
}
allErrs = append(allErrs, apivalidation.ValidatePodTemplateSpec(&spec.Template).Prefix("template")...)
if spec.Template.Spec.RestartPolicy != api.RestartPolicyOnFailure &&
spec.Template.Spec.RestartPolicy != api.RestartPolicyNever {
allErrs = append(allErrs, errs.NewFieldValueNotSupported("template.spec.restartPolicy",
spec.Template.Spec.RestartPolicy, []string{string(api.RestartPolicyOnFailure), string(api.RestartPolicyNever)}))
}
return allErrs
}

View File

@@ -744,7 +744,7 @@ func TestValidateJob(t *testing.T) {
},
Spec: extensions.JobSpec{
Selector: validSelector,
Template: &validPodTemplateSpec,
Template: validPodTemplateSpec,
},
},
}
@@ -763,7 +763,7 @@ func TestValidateJob(t *testing.T) {
Spec: extensions.JobSpec{
Parallelism: &negative,
Selector: validSelector,
Template: &validPodTemplateSpec,
Template: validPodTemplateSpec,
},
},
"spec.completions:must be non-negative": {
@@ -774,7 +774,7 @@ func TestValidateJob(t *testing.T) {
Spec: extensions.JobSpec{
Completions: &negative,
Selector: validSelector,
Template: &validPodTemplateSpec,
Template: validPodTemplateSpec,
},
},
"spec.selector:required value": {
@@ -784,16 +784,7 @@ func TestValidateJob(t *testing.T) {
},
Spec: extensions.JobSpec{
Selector: map[string]string{},
Template: &validPodTemplateSpec,
},
},
"spec.template:required value": {
ObjectMeta: api.ObjectMeta{
Name: "myjob",
Namespace: api.NamespaceDefault,
},
Spec: extensions.JobSpec{
Selector: validSelector,
Template: validPodTemplateSpec,
},
},
"spec.template.labels:selector does not match template": {
@@ -803,7 +794,7 @@ func TestValidateJob(t *testing.T) {
},
Spec: extensions.JobSpec{
Selector: validSelector,
Template: &api.PodTemplateSpec{
Template: api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{
Labels: map[string]string{"y": "z"},
},
@@ -822,7 +813,7 @@ func TestValidateJob(t *testing.T) {
},
Spec: extensions.JobSpec{
Selector: validSelector,
Template: &api.PodTemplateSpec{
Template: api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{
Labels: validSelector,
},