fixed e2e test vsphere_volume_datastore.go

This commit is contained in:
Divyen Patel 2020-07-04 16:56:27 -07:00
parent 86096addb1
commit 950ed79e41
2 changed files with 36 additions and 5 deletions

View File

@ -24,6 +24,10 @@ import (
"k8s.io/kubernetes/test/e2e/framework"
)
// VSphereCSIMigrationEnabled is the environment variables to help
// determine test verification flow.
const VSphereCSIMigrationEnabled = "VSPHERE_CSI_MIGRATION_ENABLED"
// environment variables related to datastore parameters
const (
SPBMPolicyName = "VSPHERE_SPBM_POLICY_NAME"
@ -111,3 +115,15 @@ func GetAndExpectIntEnvVar(varName string) int {
framework.ExpectNoError(err, "Error Parsing "+varName)
return varIntValue
}
// GetAndExpectBoolEnvVar returns the bool value of an environment variable
// if environment variable is not set return false
func GetAndExpectBoolEnvVar(varName string) bool {
varValue := os.Getenv(varName)
if varValue == "" {
return false
}
varBoolValue, err := strconv.ParseBool(varValue)
framework.ExpectNoError(err, "Error Parsing "+varName)
return varBoolValue
}

View File

@ -26,6 +26,7 @@ import (
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
clientset "k8s.io/client-go/kubernetes"
"k8s.io/kubernetes/test/e2e/framework"
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
@ -51,9 +52,10 @@ const (
var _ = utils.SIGDescribe("Volume Provisioning on Datastore [Feature:vsphere]", func() {
f := framework.NewDefaultFramework("volume-datastore")
var (
client clientset.Interface
namespace string
scParameters map[string]string
client clientset.Interface
namespace string
scParameters map[string]string
vSphereCSIMigrationEnabled bool
)
ginkgo.BeforeEach(func() {
e2eskipper.SkipUnlessProviderIs("vsphere")
@ -63,6 +65,7 @@ var _ = utils.SIGDescribe("Volume Provisioning on Datastore [Feature:vsphere]",
scParameters = make(map[string]string)
_, err := e2enode.GetRandomReadySchedulableNode(f.ClientSet)
framework.ExpectNoError(err)
vSphereCSIMigrationEnabled = GetAndExpectBoolEnvVar(VSphereCSIMigrationEnabled)
})
ginkgo.It("verify dynamically provisioned pv using storageclass fails on an invalid datastore", func() {
@ -71,7 +74,12 @@ var _ = utils.SIGDescribe("Volume Provisioning on Datastore [Feature:vsphere]",
scParameters[DiskFormat] = ThinDisk
err := invokeInvalidDatastoreTestNeg(client, namespace, scParameters)
framework.ExpectError(err)
errorMsg := `Failed to provision volume with StorageClass \"` + datastoreSCName + `\": Datastore '` + invalidDatastore + `' not found`
var errorMsg string
if !vSphereCSIMigrationEnabled {
errorMsg = `Failed to provision volume with StorageClass \"` + datastoreSCName + `\": Datastore '` + invalidDatastore + `' not found`
} else {
errorMsg = `failed to find datastoreURL for datastore name: \"` + invalidDatastore + `\"`
}
if !strings.Contains(err.Error(), errorMsg) {
framework.ExpectNoError(err, errorMsg)
}
@ -95,5 +103,12 @@ func invokeInvalidDatastoreTestNeg(client clientset.Interface, namespace string,
eventList, err := client.CoreV1().Events(pvclaim.Namespace).List(context.TODO(), metav1.ListOptions{})
framework.ExpectNoError(err)
return fmt.Errorf("Failure message: %+q", eventList.Items[0].Message)
var eventErrorMessages string
for _, event := range eventList.Items {
if event.Type != v1.EventTypeNormal {
eventErrorMessages = eventErrorMessages + event.Message + ";"
}
}
return fmt.Errorf("event messages: %+q", eventErrorMessages)
}