Enable NFSv4 and GlusterFS tests on cluster e2e tests

Enable NFSv4 and GlusterFS tests on cluster e2e tests for GCI images
only.
This commit is contained in:
Jing Xu
2016-11-15 14:46:35 -08:00
parent 28d273c8b2
commit 64955959e6

View File

@@ -353,7 +353,7 @@ var _ = framework.KubeDescribe("GCP Volumes", func() {
var namespace *api.Namespace var namespace *api.Namespace
BeforeEach(func() { BeforeEach(func() {
if !isTestEnabled() { if !isTestEnabled(f.ClientSet) {
framework.Skipf("NFS tests are not supported for this distro") framework.Skipf("NFS tests are not supported for this distro")
} }
namespace = f.Namespace namespace = f.Namespace
@@ -468,24 +468,32 @@ var _ = framework.KubeDescribe("GCP Volumes", func() {
}) })
}) })
func isTestEnabled() bool { func isTestEnabled(c clientset.Interface) bool {
// TODO(timstclair): Pass this through the image setup rather than hardcoding. // Enable the test If the node image is GCI. (this check only works for node e2e test)
if strings.Contains(framework.TestContext.NodeName, "-gci-dev-") { nodeName := framework.TestContext.NodeName
gciVersionRe := regexp.MustCompile("-gci-dev-([0-9]+)-") if nodeName != "" {
matches := gciVersionRe.FindStringSubmatch(framework.TestContext.NodeName) if strings.Contains(nodeName, "-gci-dev-") {
if len(matches) == 2 { gciVersionRe := regexp.MustCompile("-gci-dev-([0-9]+)-")
version, err := strconv.Atoi(matches[1]) matches := gciVersionRe.FindStringSubmatch(framework.TestContext.NodeName)
if err != nil { if len(matches) == 2 {
glog.Errorf("Error parsing GCI version from NodeName %q: %v", framework.TestContext.NodeName, err) version, err := strconv.Atoi(matches[1])
return false if err != nil {
glog.Errorf("Error parsing GCI version from NodeName %q: %v", nodeName, err)
return false
}
return version >= 54
} }
return version >= 54
} }
return false return false
} }
// Disable tests for containvm
if strings.Contains(framework.TestContext.NodeName, "-containervm-") { // For cluster e2e test, because nodeName is empty, retrieve the node objects from api server
//return true // and check their images. Only run NFSv4 and GlusterFS if nodes are using GCI image for now.
nodes := framework.GetReadySchedulableNodesOrDie(c)
for _, node := range nodes.Items {
if !strings.Contains(node.Status.NodeInfo.OSImage, "Google Container-VM") {
return false
}
} }
return false return true
} }