combine the ValidateRunOptions errors

Signed-off-by: PingWang <wang.ping5@zte.com.cn>

replace Aggregate with []error

Signed-off-by: PingWang <wang.ping5@zte.com.cn>

replace Aggregate with []error

Signed-off-by: PingWang <wang.ping5@zte.com.cn>
This commit is contained in:
PingWang 2016-08-26 17:30:39 +08:00
parent ecf24101d3
commit d89868ba8f

View File

@ -17,48 +17,67 @@ limitations under the License.
package validation package validation
import ( import (
"fmt"
"github.com/golang/glog" "github.com/golang/glog"
"k8s.io/kubernetes/pkg/genericapiserver/options" "k8s.io/kubernetes/pkg/genericapiserver/options"
utilerrors "k8s.io/kubernetes/pkg/util/errors"
) )
// TODO: Longer term we should read this from some config store, rather than a flag. // TODO: Longer term we should read this from some config store, rather than a flag.
func verifyClusterIPFlags(options *options.ServerRunOptions) { func verifyClusterIPFlags(options *options.ServerRunOptions) []error {
errors := []error{}
if options.ServiceClusterIPRange.IP == nil { if options.ServiceClusterIPRange.IP == nil {
glog.Fatal("No --service-cluster-ip-range specified") errors = append(errors, fmt.Errorf("No --service-cluster-ip-range specified"))
} }
var ones, bits = options.ServiceClusterIPRange.Mask.Size() var ones, bits = options.ServiceClusterIPRange.Mask.Size()
if bits-ones > 20 { if bits-ones > 20 {
glog.Fatal("Specified --service-cluster-ip-range is too large") errors = append(errors, fmt.Errorf("Specified --service-cluster-ip-range is too large"))
} }
return errors
} }
func verifyServiceNodePort(options *options.ServerRunOptions) { func verifyServiceNodePort(options *options.ServerRunOptions) []error {
errors := []error{}
if options.KubernetesServiceNodePort < 0 || options.KubernetesServiceNodePort > 65535 { if options.KubernetesServiceNodePort < 0 || options.KubernetesServiceNodePort > 65535 {
glog.Fatalf("--kubernetes-service-node-port %v must be between 0 and 65535, inclusive. If 0, the Kubernetes master service will be of type ClusterIP.", options.KubernetesServiceNodePort) errors = append(errors, fmt.Errorf("--kubernetes-service-node-port %v must be between 0 and 65535, inclusive. If 0, the Kubernetes master service will be of type ClusterIP.", options.KubernetesServiceNodePort))
} }
if options.KubernetesServiceNodePort > 0 && !options.ServiceNodePortRange.Contains(options.KubernetesServiceNodePort) { if options.KubernetesServiceNodePort > 0 && !options.ServiceNodePortRange.Contains(options.KubernetesServiceNodePort) {
glog.Fatalf("Kubernetes service port range %v doesn't contain %v", options.ServiceNodePortRange, (options.KubernetesServiceNodePort)) errors = append(errors, fmt.Errorf("Kubernetes service port range %v doesn't contain %v", options.ServiceNodePortRange, (options.KubernetesServiceNodePort)))
} }
return errors
} }
func verifySecureAndInsecurePort(options *options.ServerRunOptions) { func verifySecureAndInsecurePort(options *options.ServerRunOptions) []error {
errors := []error{}
if options.SecurePort < 0 || options.SecurePort > 65535 { if options.SecurePort < 0 || options.SecurePort > 65535 {
glog.Fatalf("--secure-port %v must be between 0 and 65535, inclusive. 0 for turning off secure port.", options.SecurePort) errors = append(errors, fmt.Errorf("--secure-port %v must be between 0 and 65535, inclusive. 0 for turning off secure port.", options.SecurePort))
} }
// TODO: Allow 0 to turn off insecure port. // TODO: Allow 0 to turn off insecure port.
if options.InsecurePort < 1 || options.InsecurePort > 65535 { if options.InsecurePort < 1 || options.InsecurePort > 65535 {
glog.Fatalf("--insecure-port %v must be between 1 and 65535, inclusive.", options.InsecurePort) errors = append(errors, fmt.Errorf("--insecure-port %v must be between 1 and 65535, inclusive.", options.InsecurePort))
} }
if options.SecurePort == options.InsecurePort { if options.SecurePort == options.InsecurePort {
glog.Fatalf("--secure-port and --insecure-port cannot use the same port.") errors = append(errors, fmt.Errorf("--secure-port and --insecure-port cannot use the same port."))
} }
return errors
} }
func ValidateRunOptions(options *options.ServerRunOptions) { func ValidateRunOptions(options *options.ServerRunOptions) {
verifyClusterIPFlags(options) errors := []error{}
verifyServiceNodePort(options) if errs := verifyClusterIPFlags(options); len(errs) > 0 {
verifySecureAndInsecurePort(options) errors = append(errors, errs...)
}
if errs := verifyServiceNodePort(options); len(errs) > 0 {
errors = append(errors, errs...)
}
if errs := verifySecureAndInsecurePort(options); len(errs) > 0 {
errors = append(errors, errs...)
}
if err := utilerrors.NewAggregate(errors); err != nil {
glog.Fatalf("Validate server run options failed: %v", err)
}
} }