mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	pkg/apiserver: move validation.go into pkg/registry
This commit is contained in:
		@@ -1,5 +1,5 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
Copyright 2016 The Kubernetes Authors.
 | 
					Copyright 2014 The Kubernetes Authors.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Licensed under the Apache License, Version 2.0 (the "License");
 | 
					Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
you may not use this file except in compliance with 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
 | 
						return errors
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Validate checks ServerRunOptions and return a slice of found errors.
 | 
				
			||||||
func (options *ServerRunOptions) Validate() []error {
 | 
					func (options *ServerRunOptions) Validate() []error {
 | 
				
			||||||
	var errors []error
 | 
						var errors []error
 | 
				
			||||||
	if errs := options.Etcd.Validate(); len(errs) > 0 {
 | 
						if errs := options.Etcd.Validate(); len(errs) > 0 {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,19 +23,18 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apiserver"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/probe"
 | 
						"k8s.io/kubernetes/pkg/probe"
 | 
				
			||||||
	httpprober "k8s.io/kubernetes/pkg/probe/http"
 | 
						httpprober "k8s.io/kubernetes/pkg/probe/http"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
						"k8s.io/kubernetes/pkg/runtime"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type REST struct {
 | 
					type REST struct {
 | 
				
			||||||
	GetServersToValidate func() map[string]apiserver.Server
 | 
						GetServersToValidate func() map[string]Server
 | 
				
			||||||
	prober               httpprober.HTTPProber
 | 
						prober               httpprober.HTTPProber
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// NewStorage returns a new REST.
 | 
					// NewStorage returns a new REST.
 | 
				
			||||||
func NewStorage(serverRetriever func() map[string]apiserver.Server) *REST {
 | 
					func NewStorage(serverRetriever func() map[string]Server) *REST {
 | 
				
			||||||
	return &REST{
 | 
						return &REST{
 | 
				
			||||||
		GetServersToValidate: serverRetriever,
 | 
							GetServersToValidate: serverRetriever,
 | 
				
			||||||
		prober:               httpprober.New(),
 | 
							prober:               httpprober.New(),
 | 
				
			||||||
@@ -59,7 +58,7 @@ func (rs *REST) List(ctx api.Context, options *api.ListOptions) (runtime.Object,
 | 
				
			|||||||
	wait.Add(len(servers))
 | 
						wait.Add(len(servers))
 | 
				
			||||||
	statuses := make(chan api.ComponentStatus, len(servers))
 | 
						statuses := make(chan api.ComponentStatus, len(servers))
 | 
				
			||||||
	for k, v := range servers {
 | 
						for k, v := range servers {
 | 
				
			||||||
		go func(name string, server apiserver.Server) {
 | 
							go func(name string, server Server) {
 | 
				
			||||||
			defer wait.Done()
 | 
								defer wait.Done()
 | 
				
			||||||
			status := rs.getComponentStatus(name, server)
 | 
								status := rs.getComponentStatus(name, server)
 | 
				
			||||||
			statuses <- *status
 | 
								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)
 | 
						status, msg, err := server.DoServerCheck(rs.prober)
 | 
				
			||||||
	errorMsg := ""
 | 
						errorMsg := ""
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,7 +28,6 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apiserver"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/probe"
 | 
						"k8s.io/kubernetes/pkg/probe"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util/diff"
 | 
						"k8s.io/kubernetes/pkg/util/diff"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -51,8 +50,8 @@ type testResponse struct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func NewTestREST(resp testResponse) *REST {
 | 
					func NewTestREST(resp testResponse) *REST {
 | 
				
			||||||
	return &REST{
 | 
						return &REST{
 | 
				
			||||||
		GetServersToValidate: func() map[string]apiserver.Server {
 | 
							GetServersToValidate: func() map[string]Server {
 | 
				
			||||||
			return map[string]apiserver.Server{
 | 
								return map[string]Server{
 | 
				
			||||||
				"test1": {Addr: "testserver1", Port: 8000, Path: "/healthz"},
 | 
									"test1": {Addr: "testserver1", Port: 8000, Path: "/healthz"},
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
 | 
				
			|||||||
limitations under the License.
 | 
					limitations under the License.
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package apiserver
 | 
					package componentstatus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"net/http"
 | 
						"net/http"
 | 
				
			||||||
@@ -14,32 +14,16 @@ See the License for the specific language governing permissions and
 | 
				
			|||||||
limitations under the License.
 | 
					limitations under the License.
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package apiserver
 | 
					package componentstatus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"errors"
 | 
						"errors"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"net/http"
 | 
					 | 
				
			||||||
	"net/url"
 | 
					 | 
				
			||||||
	"time"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/probe"
 | 
						"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 {
 | 
					func matchError(data []byte) error {
 | 
				
			||||||
	if string(data) != "bar" {
 | 
						if string(data) != "bar" {
 | 
				
			||||||
		return errors.New("match error")
 | 
							return errors.New("match error")
 | 
				
			||||||
@@ -30,7 +30,6 @@ import (
 | 
				
			|||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/rest"
 | 
						"k8s.io/kubernetes/pkg/api/rest"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apimachinery/registered"
 | 
						"k8s.io/kubernetes/pkg/apimachinery/registered"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apiserver"
 | 
					 | 
				
			||||||
	policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion"
 | 
						policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/client/restclient"
 | 
						"k8s.io/kubernetes/pkg/client/restclient"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/genericapiserver"
 | 
						"k8s.io/kubernetes/pkg/genericapiserver"
 | 
				
			||||||
@@ -243,8 +242,8 @@ type componentStatusStorage struct {
 | 
				
			|||||||
	storageFactory genericapiserver.StorageFactory
 | 
						storageFactory genericapiserver.StorageFactory
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (s componentStatusStorage) serversToValidate() map[string]apiserver.Server {
 | 
					func (s componentStatusStorage) serversToValidate() map[string]componentstatus.Server {
 | 
				
			||||||
	serversToValidate := map[string]apiserver.Server{
 | 
						serversToValidate := map[string]componentstatus.Server{
 | 
				
			||||||
		"controller-manager": {Addr: "127.0.0.1", Port: ports.ControllerManagerPort, Path: "/healthz"},
 | 
							"controller-manager": {Addr: "127.0.0.1", Port: ports.ControllerManagerPort, Path: "/healthz"},
 | 
				
			||||||
		"scheduler":          {Addr: "127.0.0.1", Port: ports.SchedulerPort, 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
 | 
								port = 2379
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		// TODO: etcd health checking should be abstracted in the storage tier
 | 
							// 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,
 | 
								Addr:        addr,
 | 
				
			||||||
			EnableHTTPS: etcdUrl.Scheme == "https",
 | 
								EnableHTTPS: etcdUrl.Scheme == "https",
 | 
				
			||||||
			Port:        port,
 | 
								Port:        port,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user