mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 19:31:44 +00:00
Merge pull request #83609 from avalluri/fix-storage-e2e-tests
Remove e2e/common package usage in volumemode testsuite
This commit is contained in:
commit
1bb7835f0a
@ -44,7 +44,6 @@ go_library(
|
|||||||
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||||
"//staging/src/k8s.io/csi-translation-lib:go_default_library",
|
"//staging/src/k8s.io/csi-translation-lib:go_default_library",
|
||||||
"//staging/src/k8s.io/csi-translation-lib/plugins:go_default_library",
|
"//staging/src/k8s.io/csi-translation-lib/plugins:go_default_library",
|
||||||
"//test/e2e/common:go_default_library",
|
|
||||||
"//test/e2e/framework:go_default_library",
|
"//test/e2e/framework:go_default_library",
|
||||||
"//test/e2e/framework/metrics:go_default_library",
|
"//test/e2e/framework/metrics:go_default_library",
|
||||||
"//test/e2e/framework/node:go_default_library",
|
"//test/e2e/framework/node:go_default_library",
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/onsi/ginkgo"
|
"github.com/onsi/ginkgo"
|
||||||
"github.com/onsi/gomega"
|
"github.com/onsi/gomega"
|
||||||
@ -28,10 +29,10 @@ import (
|
|||||||
storagev1 "k8s.io/api/storage/v1"
|
storagev1 "k8s.io/api/storage/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/fields"
|
"k8s.io/apimachinery/pkg/fields"
|
||||||
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
volevents "k8s.io/kubernetes/pkg/controller/volume/events"
|
volevents "k8s.io/kubernetes/pkg/controller/volume/events"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/events"
|
"k8s.io/kubernetes/pkg/kubelet/events"
|
||||||
"k8s.io/kubernetes/test/e2e/common"
|
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
|
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
|
||||||
e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
|
e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
|
||||||
@ -230,7 +231,7 @@ func (t *volumeModeTestSuite) defineTests(driver TestDriver, pattern testpattern
|
|||||||
}.AsSelector().String()
|
}.AsSelector().String()
|
||||||
msg := "Unable to attach or mount volumes"
|
msg := "Unable to attach or mount volumes"
|
||||||
|
|
||||||
err = common.WaitTimeoutForEvent(l.cs, l.ns.Name, eventSelector, msg, framework.PodStartTimeout)
|
err = waitTimeoutForEvent(l.cs, l.ns.Name, eventSelector, msg, framework.PodStartTimeout)
|
||||||
// Events are unreliable, don't depend on the event. It's used only to speed up the test.
|
// Events are unreliable, don't depend on the event. It's used only to speed up the test.
|
||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Logf("Warning: did not get event about FailedMountVolume")
|
framework.Logf("Warning: did not get event about FailedMountVolume")
|
||||||
@ -267,7 +268,7 @@ func (t *volumeModeTestSuite) defineTests(driver TestDriver, pattern testpattern
|
|||||||
}.AsSelector().String()
|
}.AsSelector().String()
|
||||||
msg := "does not support block volume provisioning"
|
msg := "does not support block volume provisioning"
|
||||||
|
|
||||||
err = common.WaitTimeoutForEvent(l.cs, l.ns.Name, eventSelector, msg, framework.ClaimProvisionTimeout)
|
err = waitTimeoutForEvent(l.cs, l.ns.Name, eventSelector, msg, framework.ClaimProvisionTimeout)
|
||||||
// Events are unreliable, don't depend on the event. It's used only to speed up the test.
|
// Events are unreliable, don't depend on the event. It's used only to speed up the test.
|
||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Logf("Warning: did not get event about provisioing failed")
|
framework.Logf("Warning: did not get event about provisioing failed")
|
||||||
@ -318,7 +319,7 @@ func (t *volumeModeTestSuite) defineTests(driver TestDriver, pattern testpattern
|
|||||||
} else {
|
} else {
|
||||||
msg = "has volumeMode Filesystem, but is specified in volumeDevices"
|
msg = "has volumeMode Filesystem, but is specified in volumeDevices"
|
||||||
}
|
}
|
||||||
err = common.WaitTimeoutForEvent(l.cs, l.ns.Name, eventSelector, msg, framework.PodStartTimeout)
|
err = waitTimeoutForEvent(l.cs, l.ns.Name, eventSelector, msg, framework.PodStartTimeout)
|
||||||
// Events are unreliable, don't depend on them. They're used only to speed up the test.
|
// Events are unreliable, don't depend on them. They're used only to speed up the test.
|
||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Logf("Warning: did not get event about mismatched volume use")
|
framework.Logf("Warning: did not get event about mismatched volume use")
|
||||||
@ -480,3 +481,32 @@ func listPodDirectory(h utils.HostExec, path string, node *v1.Node) ([]string, e
|
|||||||
}
|
}
|
||||||
return strings.Split(out, "\n"), nil
|
return strings.Split(out, "\n"), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NOTE(avalluri): The below code is intentionally copied from e2e/common package.
|
||||||
|
// Testsuites depending on common package is not desirable as that pulls quite
|
||||||
|
// many tests which are not interested by storage suites.
|
||||||
|
//
|
||||||
|
// waitTimeoutForEvent waits the given timeout duration for an event to occur.
|
||||||
|
func waitTimeoutForEvent(c clientset.Interface, namespace, eventSelector, msg string, timeout time.Duration) error {
|
||||||
|
interval := 2 * time.Second
|
||||||
|
return wait.PollImmediate(interval, timeout, eventOccurred(c, namespace, eventSelector, msg))
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOTE(avalluri): The below code is intentionally copied from e2e/common package.
|
||||||
|
// Testsuites depending on common package is not desirable as that pulls quite
|
||||||
|
// many tests which are not interested by storage suites.
|
||||||
|
func eventOccurred(c clientset.Interface, namespace, eventSelector, msg string) wait.ConditionFunc {
|
||||||
|
options := metav1.ListOptions{FieldSelector: eventSelector}
|
||||||
|
return func() (bool, error) {
|
||||||
|
events, err := c.CoreV1().Events(namespace).List(options)
|
||||||
|
if err != nil {
|
||||||
|
return false, fmt.Errorf("got error while getting events: %v", err)
|
||||||
|
}
|
||||||
|
for _, event := range events.Items {
|
||||||
|
if strings.Contains(event.Message, msg) {
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user