mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 20:53:33 +00:00
Merge pull request #4392 from zmerlynn/error_helper
Add expectNoError helper, minor cleanups
This commit is contained in:
commit
18c1dfd61b
@ -31,12 +31,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func runLivenessTest(c *client.Client, podDescr *api.Pod) {
|
func runLivenessTest(c *client.Client, podDescr *api.Pod) {
|
||||||
defer GinkgoRecover()
|
|
||||||
ns := "e2e-test-" + string(util.NewUUID())
|
ns := "e2e-test-" + string(util.NewUUID())
|
||||||
|
|
||||||
By(fmt.Sprintf("Creating pod %s in namespace %s", podDescr.Name, ns))
|
By(fmt.Sprintf("Creating pod %s in namespace %s", podDescr.Name, ns))
|
||||||
_, err := c.Pods(ns).Create(podDescr)
|
_, err := c.Pods(ns).Create(podDescr)
|
||||||
Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("creating pod %s", podDescr.Name))
|
expectNoError(err, fmt.Sprintf("creating pod %s", podDescr.Name))
|
||||||
|
|
||||||
// At the end of the test, clean up by removing the pod.
|
// At the end of the test, clean up by removing the pod.
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -48,14 +47,14 @@ func runLivenessTest(c *client.Client, podDescr *api.Pod) {
|
|||||||
// 'Pending' other than checking for 'Running', since when failures occur, we go to
|
// 'Pending' other than checking for 'Running', since when failures occur, we go to
|
||||||
// 'Terminated' which can cause indefinite blocking.)
|
// 'Terminated' which can cause indefinite blocking.)
|
||||||
By("waiting for the pod to be something other than pending")
|
By("waiting for the pod to be something other than pending")
|
||||||
err = waitForPodNotPending(c, ns, podDescr.Name, 60*time.Second)
|
expectNoError(waitForPodNotPending(c, ns, podDescr.Name, 60*time.Second),
|
||||||
Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("starting pod %s in namespace %s", podDescr.Name, ns))
|
fmt.Sprintf("starting pod %s in namespace %s", podDescr.Name, ns))
|
||||||
By(fmt.Sprintf("Started pod %s in namespace %s", podDescr.Name, ns))
|
By(fmt.Sprintf("Started pod %s in namespace %s", podDescr.Name, ns))
|
||||||
|
|
||||||
// Check the pod's current state and verify that restartCount is present.
|
// Check the pod's current state and verify that restartCount is present.
|
||||||
By("checking the pod's current state and verifying that restartCount is present")
|
By("checking the pod's current state and verifying that restartCount is present")
|
||||||
pod, err := c.Pods(ns).Get(podDescr.Name)
|
pod, err := c.Pods(ns).Get(podDescr.Name)
|
||||||
Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("getting pod %s in namespace %s", podDescr.Name, ns))
|
expectNoError(err, fmt.Sprintf("getting pod %s in namespace %s", podDescr.Name, ns))
|
||||||
initialRestartCount := pod.Status.Info["liveness"].RestartCount
|
initialRestartCount := pod.Status.Info["liveness"].RestartCount
|
||||||
By(fmt.Sprintf("Initial restart count of pod %s is %d", podDescr.Name, initialRestartCount))
|
By(fmt.Sprintf("Initial restart count of pod %s is %d", podDescr.Name, initialRestartCount))
|
||||||
|
|
||||||
@ -65,7 +64,7 @@ func runLivenessTest(c *client.Client, podDescr *api.Pod) {
|
|||||||
// Wait until restartCount is incremented.
|
// Wait until restartCount is incremented.
|
||||||
time.Sleep(5 * time.Second)
|
time.Sleep(5 * time.Second)
|
||||||
pod, err = c.Pods(ns).Get(podDescr.Name)
|
pod, err = c.Pods(ns).Get(podDescr.Name)
|
||||||
Expect(err).NotTo(HaveOccurred(), fmt.Sprintf("getting pod %s", podDescr.Name))
|
expectNoError(err, fmt.Sprintf("getting pod %s", podDescr.Name))
|
||||||
restartCount := pod.Status.Info["liveness"].RestartCount
|
restartCount := pod.Status.Info["liveness"].RestartCount
|
||||||
By(fmt.Sprintf("Restart count of pod %s in namespace %s is now %d", podDescr.Name, ns, restartCount))
|
By(fmt.Sprintf("Restart count of pod %s in namespace %s is now %d", podDescr.Name, ns, restartCount))
|
||||||
if restartCount > initialRestartCount {
|
if restartCount > initialRestartCount {
|
||||||
@ -86,7 +85,7 @@ var _ = Describe("Pods", func() {
|
|||||||
BeforeEach(func() {
|
BeforeEach(func() {
|
||||||
var err error
|
var err error
|
||||||
c, err = loadClient()
|
c, err = loadClient()
|
||||||
Expect(err).NotTo(HaveOccurred())
|
expectNoError(err)
|
||||||
})
|
})
|
||||||
|
|
||||||
It("should be submitted and removed", func() {
|
It("should be submitted and removed", func() {
|
||||||
@ -132,7 +131,6 @@ var _ = Describe("Pods", func() {
|
|||||||
// We call defer here in case there is a problem with
|
// We call defer here in case there is a problem with
|
||||||
// the test so we can ensure that we clean up after
|
// the test so we can ensure that we clean up after
|
||||||
// ourselves
|
// ourselves
|
||||||
defer GinkgoRecover()
|
|
||||||
podClient.Delete(pod.Name)
|
podClient.Delete(pod.Name)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@ -190,13 +188,11 @@ var _ = Describe("Pods", func() {
|
|||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
By("deleting the pod")
|
By("deleting the pod")
|
||||||
defer GinkgoRecover()
|
|
||||||
podClient.Delete(pod.Name)
|
podClient.Delete(pod.Name)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
By("waiting for the pod to start running")
|
By("waiting for the pod to start running")
|
||||||
err = waitForPodRunning(c, pod.Name, 300*time.Second)
|
expectNoError(waitForPodRunning(c, pod.Name, 300*time.Second))
|
||||||
Expect(err).NotTo(HaveOccurred())
|
|
||||||
|
|
||||||
By("verifying the pod is in kubernetes")
|
By("verifying the pod is in kubernetes")
|
||||||
pods, err := podClient.List(labels.SelectorFromSet(labels.Set(map[string]string{"time": value})))
|
pods, err := podClient.List(labels.SelectorFromSet(labels.Set(map[string]string{"time": value})))
|
||||||
@ -219,8 +215,7 @@ var _ = Describe("Pods", func() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
By("waiting for the updated pod to start running")
|
By("waiting for the updated pod to start running")
|
||||||
err = waitForPodRunning(c, pod.Name, 300*time.Second)
|
expectNoError(waitForPodRunning(c, pod.Name, 300*time.Second))
|
||||||
Expect(err).NotTo(HaveOccurred())
|
|
||||||
|
|
||||||
By("verifying the updated pod is in kubernetes")
|
By("verifying the updated pod is in kubernetes")
|
||||||
pods, err = podClient.List(labels.SelectorFromSet(labels.Set(map[string]string{"time": value})))
|
pods, err = podClient.List(labels.SelectorFromSet(labels.Set(map[string]string{"time": value})))
|
||||||
@ -252,11 +247,9 @@ var _ = Describe("Pods", func() {
|
|||||||
Fail(fmt.Sprintf("Failed to create serverPod: %v", err))
|
Fail(fmt.Sprintf("Failed to create serverPod: %v", err))
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
defer GinkgoRecover()
|
|
||||||
c.Pods(api.NamespaceDefault).Delete(serverPod.Name)
|
c.Pods(api.NamespaceDefault).Delete(serverPod.Name)
|
||||||
}()
|
}()
|
||||||
err = waitForPodRunning(c, serverPod.Name, 300*time.Second)
|
expectNoError(waitForPodRunning(c, serverPod.Name, 300*time.Second))
|
||||||
Expect(err).NotTo(HaveOccurred())
|
|
||||||
|
|
||||||
// This service exposes port 8080 of the test pod as a service on port 8765
|
// This service exposes port 8080 of the test pod as a service on port 8765
|
||||||
// TODO(filbranden): We would like to use a unique service name such as:
|
// TODO(filbranden): We would like to use a unique service name such as:
|
||||||
@ -287,7 +280,6 @@ var _ = Describe("Pods", func() {
|
|||||||
Fail(fmt.Sprintf("Failed to create service: %v", err))
|
Fail(fmt.Sprintf("Failed to create service: %v", err))
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
defer GinkgoRecover()
|
|
||||||
c.Services(api.NamespaceDefault).Delete(svc.Name)
|
c.Services(api.NamespaceDefault).Delete(svc.Name)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@ -318,13 +310,11 @@ var _ = Describe("Pods", func() {
|
|||||||
Fail(fmt.Sprintf("Failed to create pod: %v", err))
|
Fail(fmt.Sprintf("Failed to create pod: %v", err))
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
defer GinkgoRecover()
|
|
||||||
c.Pods(api.NamespaceDefault).Delete(clientPod.Name)
|
c.Pods(api.NamespaceDefault).Delete(clientPod.Name)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// Wait for client pod to complete.
|
// Wait for client pod to complete.
|
||||||
err = waitForPodSuccess(c, clientPod.Name, clientPod.Spec.Containers[0].Name, 60*time.Second)
|
expectNoError(waitForPodSuccess(c, clientPod.Name, clientPod.Spec.Containers[0].Name, 60*time.Second))
|
||||||
Expect(err).NotTo(HaveOccurred())
|
|
||||||
|
|
||||||
// Grab its logs. Get host first.
|
// Grab its logs. Get host first.
|
||||||
clientPodStatus, err := c.Pods(api.NamespaceDefault).Get(clientPod.Name)
|
clientPodStatus, err := c.Pods(api.NamespaceDefault).Get(clientPod.Name)
|
||||||
|
@ -28,6 +28,7 @@ import (
|
|||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/clientauth"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/clientauth"
|
||||||
|
|
||||||
. "github.com/onsi/ginkgo"
|
. "github.com/onsi/ginkgo"
|
||||||
|
. "github.com/onsi/gomega"
|
||||||
)
|
)
|
||||||
|
|
||||||
type testContextType struct {
|
type testContextType struct {
|
||||||
@ -45,7 +46,7 @@ func Logf(format string, a ...interface{}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Failf(format string, a ...interface{}) {
|
func Failf(format string, a ...interface{}) {
|
||||||
Fail(fmt.Sprintf(format, a...))
|
Fail(fmt.Sprintf(format, a...), 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func waitForPodRunning(c *client.Client, id string, tryFor time.Duration) error {
|
func waitForPodRunning(c *client.Client, id string, tryFor time.Duration) error {
|
||||||
@ -152,3 +153,7 @@ func randomSuffix() string {
|
|||||||
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||||
return strconv.Itoa(r.Int() % 10000)
|
return strconv.Itoa(r.Int() % 10000)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func expectNoError(err error, explain ...interface{}) {
|
||||||
|
ExpectWithOffset(1, err).NotTo(HaveOccurred(), explain...)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user