pkg/apiserver: move validation.go into pkg/registry

This commit is contained in:
Dr. Stefan Schimanski 2016-12-14 11:11:25 +01:00
parent 3be6b3c045
commit aa81e1d51d
6 changed files with 13 additions and 31 deletions

View File

@ -1,5 +1,5 @@
/*
Copyright 2016 The Kubernetes Authors.
Copyright 2014 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -45,6 +45,7 @@ func validateServiceNodePort(options *ServerRunOptions) []error {
return errors
}
// Validate checks ServerRunOptions and return a slice of found errors.
func (options *ServerRunOptions) Validate() []error {
var errors []error
if errs := options.Etcd.Validate(); len(errs) > 0 {

View File

@ -23,19 +23,18 @@ import (
"k8s.io/kubernetes/pkg/api"
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/apiserver"
"k8s.io/kubernetes/pkg/probe"
httpprober "k8s.io/kubernetes/pkg/probe/http"
"k8s.io/kubernetes/pkg/runtime"
)
type REST struct {
GetServersToValidate func() map[string]apiserver.Server
GetServersToValidate func() map[string]Server
prober httpprober.HTTPProber
}
// NewStorage returns a new REST.
func NewStorage(serverRetriever func() map[string]apiserver.Server) *REST {
func NewStorage(serverRetriever func() map[string]Server) *REST {
return &REST{
GetServersToValidate: serverRetriever,
prober: httpprober.New(),
@ -59,7 +58,7 @@ func (rs *REST) List(ctx api.Context, options *api.ListOptions) (runtime.Object,
wait.Add(len(servers))
statuses := make(chan api.ComponentStatus, len(servers))
for k, v := range servers {
go func(name string, server apiserver.Server) {
go func(name string, server Server) {
defer wait.Done()
status := rs.getComponentStatus(name, server)
statuses <- *status
@ -96,7 +95,7 @@ func ToConditionStatus(s probe.Result) api.ConditionStatus {
}
}
func (rs *REST) getComponentStatus(name string, server apiserver.Server) *api.ComponentStatus {
func (rs *REST) getComponentStatus(name string, server Server) *api.ComponentStatus {
status, msg, err := server.DoServerCheck(rs.prober)
errorMsg := ""
if err != nil {

View File

@ -28,7 +28,6 @@ import (
"k8s.io/kubernetes/pkg/api"
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/apiserver"
"k8s.io/kubernetes/pkg/probe"
"k8s.io/kubernetes/pkg/util/diff"
)
@ -51,8 +50,8 @@ type testResponse struct {
func NewTestREST(resp testResponse) *REST {
return &REST{
GetServersToValidate: func() map[string]apiserver.Server {
return map[string]apiserver.Server{
GetServersToValidate: func() map[string]Server {
return map[string]Server{
"test1": {Addr: "testserver1", Port: 8000, Path: "/healthz"},
}
},

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package apiserver
package componentstatus
import (
"net/http"

View File

@ -14,32 +14,16 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package apiserver
package componentstatus
import (
"errors"
"fmt"
"testing"
"net/http"
"net/url"
"time"
"k8s.io/kubernetes/pkg/probe"
)
type fakeHttpProber struct {
result probe.Result
body string
err error
}
func (f *fakeHttpProber) Probe(*url.URL, http.Header, time.Duration) (probe.Result, string, error) {
return f.result, f.body, f.err
}
func alwaysError([]byte) error { return errors.New("test error") }
func matchError(data []byte) error {
if string(data) != "bar" {
return errors.New("match error")

View File

@ -30,7 +30,6 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/apiserver"
policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion"
"k8s.io/kubernetes/pkg/client/restclient"
"k8s.io/kubernetes/pkg/genericapiserver"
@ -243,8 +242,8 @@ type componentStatusStorage struct {
storageFactory genericapiserver.StorageFactory
}
func (s componentStatusStorage) serversToValidate() map[string]apiserver.Server {
serversToValidate := map[string]apiserver.Server{
func (s componentStatusStorage) serversToValidate() map[string]componentstatus.Server {
serversToValidate := map[string]componentstatus.Server{
"controller-manager": {Addr: "127.0.0.1", Port: ports.ControllerManagerPort, Path: "/healthz"},
"scheduler": {Addr: "127.0.0.1", Port: ports.SchedulerPort, Path: "/healthz"},
}
@ -270,7 +269,7 @@ func (s componentStatusStorage) serversToValidate() map[string]apiserver.Server
port = 2379
}
// TODO: etcd health checking should be abstracted in the storage tier
serversToValidate[fmt.Sprintf("etcd-%d", ix)] = apiserver.Server{
serversToValidate[fmt.Sprintf("etcd-%d", ix)] = componentstatus.Server{
Addr: addr,
EnableHTTPS: etcdUrl.Scheme == "https",
Port: port,