diff --git a/examples/BUILD b/examples/BUILD index 20dda34149b..65c8be3a6c1 100644 --- a/examples/BUILD +++ b/examples/BUILD @@ -40,6 +40,7 @@ go_test( "//pkg/registry/batch/job:go_default_library", "//pkg/scheduler/api:go_default_library", "//pkg/scheduler/api/latest:go_default_library", + "//pkg/scheduler/api/validation:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/examples/examples_test.go b/examples/examples_test.go index ebf9269932f..23532c5b0d4 100644 --- a/examples/examples_test.go +++ b/examples/examples_test.go @@ -44,6 +44,7 @@ import ( "k8s.io/kubernetes/pkg/registry/batch/job" schedulerapi "k8s.io/kubernetes/pkg/scheduler/api" schedulerapilatest "k8s.io/kubernetes/pkg/scheduler/api/latest" + schedulerapivalidation "k8s.io/kubernetes/pkg/scheduler/api/validation" ) func validateObject(obj runtime.Object) (errors field.ErrorList) { @@ -144,6 +145,15 @@ func validateObject(obj runtime.Object) (errors field.ErrorList) { return errors } +func validateschedulerpolicy(obj runtime.Object) error { + switch t := obj.(type) { + case *schedulerapi.Policy: + return schedulerapivalidation.ValidatePolicy(*t) + default: + return fmt.Errorf("obj type is not schedulerapi.Policy") + } +} + func walkJSONFiles(inDir string, fn func(name, path string, data []byte)) error { return filepath.Walk(inDir, func(path string, info os.FileInfo, err error) error { if err != nil { @@ -351,7 +361,10 @@ func TestExampleObjectSchemas(t *testing.T) { t.Errorf("%s did not decode correctly: %v\n%s", path, err, string(data)) return } - //TODO: Add validate method for &schedulerapi.Policy + if err := validateschedulerpolicy(expectedType); err != nil { + t.Errorf("%s did not validate correctly: %v\n%s", path, err, string(data)) + return + } } else { codec, err := testapi.GetCodecForObject(expectedType) if err != nil {