mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 19:01:49 +00:00
fixed e2e test vsphere_volume_datastore.go
This commit is contained in:
parent
86096addb1
commit
950ed79e41
@ -24,6 +24,10 @@ import (
|
|||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"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
|
// environment variables related to datastore parameters
|
||||||
const (
|
const (
|
||||||
SPBMPolicyName = "VSPHERE_SPBM_POLICY_NAME"
|
SPBMPolicyName = "VSPHERE_SPBM_POLICY_NAME"
|
||||||
@ -111,3 +115,15 @@ func GetAndExpectIntEnvVar(varName string) int {
|
|||||||
framework.ExpectNoError(err, "Error Parsing "+varName)
|
framework.ExpectNoError(err, "Error Parsing "+varName)
|
||||||
return varIntValue
|
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
|
||||||
|
}
|
||||||
|
@ -26,6 +26,7 @@ import (
|
|||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
|
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
||||||
e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
|
e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
|
||||||
@ -54,6 +55,7 @@ var _ = utils.SIGDescribe("Volume Provisioning on Datastore [Feature:vsphere]",
|
|||||||
client clientset.Interface
|
client clientset.Interface
|
||||||
namespace string
|
namespace string
|
||||||
scParameters map[string]string
|
scParameters map[string]string
|
||||||
|
vSphereCSIMigrationEnabled bool
|
||||||
)
|
)
|
||||||
ginkgo.BeforeEach(func() {
|
ginkgo.BeforeEach(func() {
|
||||||
e2eskipper.SkipUnlessProviderIs("vsphere")
|
e2eskipper.SkipUnlessProviderIs("vsphere")
|
||||||
@ -63,6 +65,7 @@ var _ = utils.SIGDescribe("Volume Provisioning on Datastore [Feature:vsphere]",
|
|||||||
scParameters = make(map[string]string)
|
scParameters = make(map[string]string)
|
||||||
_, err := e2enode.GetRandomReadySchedulableNode(f.ClientSet)
|
_, err := e2enode.GetRandomReadySchedulableNode(f.ClientSet)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
|
vSphereCSIMigrationEnabled = GetAndExpectBoolEnvVar(VSphereCSIMigrationEnabled)
|
||||||
})
|
})
|
||||||
|
|
||||||
ginkgo.It("verify dynamically provisioned pv using storageclass fails on an invalid datastore", func() {
|
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
|
scParameters[DiskFormat] = ThinDisk
|
||||||
err := invokeInvalidDatastoreTestNeg(client, namespace, scParameters)
|
err := invokeInvalidDatastoreTestNeg(client, namespace, scParameters)
|
||||||
framework.ExpectError(err)
|
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) {
|
if !strings.Contains(err.Error(), errorMsg) {
|
||||||
framework.ExpectNoError(err, 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{})
|
eventList, err := client.CoreV1().Events(pvclaim.Namespace).List(context.TODO(), metav1.ListOptions{})
|
||||||
framework.ExpectNoError(err)
|
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)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user