Browse code

Validate if the openshift master is running with mutitenant network plugin

xiangpengzhao authored on 2016/11/02 12:13:17
Showing 1 changed files
... ...
@@ -11,6 +11,7 @@ import (
11 11
 	"github.com/spf13/cobra"
12 12
 
13 13
 	kapi "k8s.io/kubernetes/pkg/api"
14
+	kapierrors "k8s.io/kubernetes/pkg/api/errors"
14 15
 	"k8s.io/kubernetes/pkg/api/meta"
15 16
 	kclient "k8s.io/kubernetes/pkg/client/unversioned"
16 17
 	"k8s.io/kubernetes/pkg/kubectl/resource"
... ...
@@ -84,7 +85,17 @@ func (p *ProjectOptions) Validate() error {
84 84
 		errList = append(errList, errors.New("must provide --selector=<project_selector> or projects"))
85 85
 	}
86 86
 
87
-	// TODO: Validate if the openshift master is running with mutitenant network plugin
87
+	clusterNetwork, err := p.Oclient.ClusterNetwork().Get(sdnapi.ClusterNetworkDefault)
88
+	if err != nil {
89
+		if kapierrors.IsNotFound(err) {
90
+			errList = append(errList, errors.New("Managing pod network is only supported for openshift multitenant network plugin"))
91
+		} else {
92
+			errList = append(errList, errors.New("Failed to fetch current network plugin info"))
93
+		}
94
+	} else if !sdnapi.IsOpenShiftMultitenantNetworkPlugin(clusterNetwork.PluginName) {
95
+		errList = append(errList, fmt.Errorf("Using plugin: %q, managing pod network is only supported for openshift multitenant network plugin", clusterNetwork.PluginName))
96
+	}
97
+
88 98
 	return kerrors.NewAggregate(errList)
89 99
 }
90 100