This is an automated email from the ASF dual-hosted git repository.

chenyulin0719 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-k8shim.git


The following commit(s) were added to refs/heads/master by this push:
     new af118173 [YUNIKORN-3061] Refactor recovery_and_restart E2E test suite 
structure (#970)
af118173 is described below

commit af1181739ba511a9d8ab4efb0cb8cdae32ddbe1a
Author: Michael Chu <[email protected]>
AuthorDate: Mon Apr 28 15:23:37 2025 +0000

    [YUNIKORN-3061] Refactor recovery_and_restart E2E test suite structure 
(#970)
    
    Closes: #970
    
    Signed-off-by: Yu-Lin Chen <[email protected]>
---
 .../recovery_and_restart_suite_test.go             |  41 ++++++++
 .../recovery_and_restart_test.go                   | 106 ++++++---------------
 2 files changed, 72 insertions(+), 75 deletions(-)

diff --git a/test/e2e/recovery_and_restart/recovery_and_restart_suite_test.go 
b/test/e2e/recovery_and_restart/recovery_and_restart_suite_test.go
index b79653f4..142eccf1 100644
--- a/test/e2e/recovery_and_restart/recovery_and_restart_suite_test.go
+++ b/test/e2e/recovery_and_restart/recovery_and_restart_suite_test.go
@@ -20,6 +20,7 @@ package recoveryandrestart_test
 
 import (
        "path/filepath"
+       "runtime"
        "testing"
 
        "github.com/onsi/ginkgo/v2"
@@ -28,6 +29,8 @@ import (
 
        "github.com/apache/yunikorn-k8shim/test/e2e/framework/configmanager"
        "github.com/apache/yunikorn-k8shim/test/e2e/framework/helpers/common"
+       "github.com/apache/yunikorn-k8shim/test/e2e/framework/helpers/k8s"
+       "github.com/apache/yunikorn-k8shim/test/e2e/framework/helpers/yunikorn"
 )
 
 func init() {
@@ -49,5 +52,43 @@ func TestRecoveryAndRestart(t *testing.T) {
        ginkgo.RunSpecs(t, "RecoveryAndRestart Suite")
 }
 
+var _ = ginkgo.BeforeSuite(func() {
+       _, filename, _, _ := runtime.Caller(0)
+       suiteName = common.GetSuiteName(filename)
+       // Initializing kubectl client
+       kClient = k8s.KubeCtl{}
+       Ω(kClient.SetClient()).To(gomega.BeNil())
+       // Initializing rest client
+       restClient = yunikorn.RClient{}
+
+       yunikorn.EnsureYuniKornConfigsPresent()
+       yunikorn.UpdateConfigMapWrapper(oldConfigMap, "")
+
+       ginkgo.By("Restart the scheduler pod")
+       yunikorn.RestartYunikorn(&kClient)
+
+       ginkgo.By("Port-forward scheduler pod after restart")
+       yunikorn.RestorePortForwarding(&kClient)
+})
+
+var _ = ginkgo.AfterSuite(func() {
+
+       // call the healthCheck api to check scheduler health
+       ginkgo.By("Check Yunikorn's health")
+       checks, err2 := yunikorn.GetFailedHealthChecks()
+       Ω(err2).NotTo(gomega.HaveOccurred())
+       Ω(checks).To(gomega.Equal(""), checks)
+
+       ginkgo.By("Restoring the old config maps")
+       var c, err1 = 
kClient.GetConfigMaps(configmanager.YuniKornTestConfig.YkNamespace,
+               configmanager.DefaultYuniKornConfigMap)
+       Ω(err1).NotTo(gomega.HaveOccurred())
+       Ω(c).NotTo(gomega.BeNil())
+       c.Data = oldConfigMap.Data
+       var e, err3 = kClient.UpdateConfigMap(c, 
configmanager.YuniKornTestConfig.YkNamespace)
+       Ω(err3).NotTo(gomega.HaveOccurred())
+       Ω(e).NotTo(gomega.BeNil())
+})
+
 var Ω = gomega.Ω
 var dev string
diff --git a/test/e2e/recovery_and_restart/recovery_and_restart_test.go 
b/test/e2e/recovery_and_restart/recovery_and_restart_test.go
index f554891c..eb8ba73f 100644
--- a/test/e2e/recovery_and_restart/recovery_and_restart_test.go
+++ b/test/e2e/recovery_and_restart/recovery_and_restart_test.go
@@ -20,7 +20,6 @@ package recoveryandrestart_test
 
 import (
        "fmt"
-       "runtime"
        "strings"
        "time"
 
@@ -30,7 +29,6 @@ import (
        "k8s.io/apimachinery/pkg/api/resource"
 
        tests "github.com/apache/yunikorn-k8shim/test/e2e"
-       "github.com/apache/yunikorn-k8shim/test/e2e/framework/configmanager"
        "github.com/apache/yunikorn-k8shim/test/e2e/framework/helpers/common"
        "github.com/apache/yunikorn-k8shim/test/e2e/framework/helpers/k8s"
        "github.com/apache/yunikorn-k8shim/test/e2e/framework/helpers/yunikorn"
@@ -57,80 +55,35 @@ var sleepRespPod *v1.Pod
 var sleepPodConfigs = k8s.SleepPodConfig{Name: "sleepjob", NS: dev}
 var sleepPod2Configs = k8s.SleepPodConfig{Name: "sleepjob2", NS: dev}
 
-var _ = ginkgo.BeforeSuite(func() {
-       _, filename, _, _ := runtime.Caller(0)
-       suiteName = common.GetSuiteName(filename)
-       // Initializing kubectl client
-       kClient = k8s.KubeCtl{}
-       Ω(kClient.SetClient()).To(gomega.BeNil())
-       // Initializing rest client
-       restClient = yunikorn.RClient{}
-
-       yunikorn.EnsureYuniKornConfigsPresent()
-       yunikorn.UpdateConfigMapWrapper(oldConfigMap, "")
-
-       ginkgo.By("Restart the scheduler pod")
-       yunikorn.RestartYunikorn(&kClient)
-
-       ginkgo.By("Port-forward scheduler pod after restart")
-       yunikorn.RestorePortForwarding(&kClient)
-})
-
-var _ = ginkgo.BeforeEach(func() {
-       dev = "dev" + common.RandSeq(5)
-       ginkgo.By("create development namespace")
-       ns1, err := kClient.CreateNamespace(dev, nil)
-       gomega.Ω(err).NotTo(gomega.HaveOccurred())
-       gomega.Ω(ns1.Status.Phase).To(gomega.Equal(v1.NamespaceActive))
-
-       ginkgo.By("Deploy the sleep pod to the development namespace")
-       sleepObj, podErr := k8s.InitSleepPod(sleepPodConfigs)
-       Ω(podErr).NotTo(gomega.HaveOccurred())
-       sleepRespPod, err = kClient.CreatePod(sleepObj, dev)
-       gomega.Ω(err).NotTo(gomega.HaveOccurred())
-       // Wait for pod to move to running state
-       err = kClient.WaitForPodBySelectorRunning(dev,
-               fmt.Sprintf("applicationId=%s", 
sleepRespPod.ObjectMeta.Labels["applicationId"]),
-               60)
-       gomega.Ω(err).NotTo(gomega.HaveOccurred())
-       ginkgo.By("Deploy 2nd sleep pod to the development namespace")
-       sleepObj2, podErr := k8s.InitSleepPod(sleepPod2Configs)
-       Ω(podErr).NotTo(gomega.HaveOccurred())
-       sleepRespPod2, err := kClient.CreatePod(sleepObj2, dev)
-       gomega.Ω(err).NotTo(gomega.HaveOccurred())
-       // Wait for pod to move to running state
-       err = kClient.WaitForPodBySelectorRunning(dev,
-               fmt.Sprintf("applicationId=%s", 
sleepRespPod2.ObjectMeta.Labels["applicationId"]),
-               60)
-       gomega.Ω(err).NotTo(gomega.HaveOccurred())
-})
-
-var _ = ginkgo.AfterEach(func() {
-       ginkgo.By("Tear down namespace: " + dev)
-       err := kClient.TearDownNamespace(dev)
-       Ω(err).NotTo(gomega.HaveOccurred())
-})
-
-var _ = ginkgo.AfterSuite(func() {
-
-       // call the healthCheck api to check scheduler health
-       ginkgo.By("Check Yunikorn's health")
-       checks, err2 := yunikorn.GetFailedHealthChecks()
-       Ω(err2).NotTo(gomega.HaveOccurred())
-       Ω(checks).To(gomega.Equal(""), checks)
-
-       ginkgo.By("Restoring the old config maps")
-       var c, err1 = 
kClient.GetConfigMaps(configmanager.YuniKornTestConfig.YkNamespace,
-               configmanager.DefaultYuniKornConfigMap)
-       Ω(err1).NotTo(gomega.HaveOccurred())
-       Ω(c).NotTo(gomega.BeNil())
-       c.Data = oldConfigMap.Data
-       var e, err3 = kClient.UpdateConfigMap(c, 
configmanager.YuniKornTestConfig.YkNamespace)
-       Ω(err3).NotTo(gomega.HaveOccurred())
-       Ω(e).NotTo(gomega.BeNil())
-})
-
 var _ = ginkgo.Describe("", func() {
+       ginkgo.BeforeEach(func() {
+               dev = "dev" + common.RandSeq(5)
+               ginkgo.By("create development namespace")
+               ns1, err := kClient.CreateNamespace(dev, nil)
+               gomega.Ω(err).NotTo(gomega.HaveOccurred())
+               gomega.Ω(ns1.Status.Phase).To(gomega.Equal(v1.NamespaceActive))
+
+               ginkgo.By("Deploy the sleep pod to the development namespace")
+               sleepObj, podErr := k8s.InitSleepPod(sleepPodConfigs)
+               Ω(podErr).NotTo(gomega.HaveOccurred())
+               sleepRespPod, err = kClient.CreatePod(sleepObj, dev)
+               gomega.Ω(err).NotTo(gomega.HaveOccurred())
+               // Wait for pod to move to running state
+               err = kClient.WaitForPodBySelectorRunning(dev,
+                       fmt.Sprintf("applicationId=%s", 
sleepRespPod.ObjectMeta.Labels["applicationId"]),
+                       60)
+               gomega.Ω(err).NotTo(gomega.HaveOccurred())
+               ginkgo.By("Deploy 2nd sleep pod to the development namespace")
+               sleepObj2, podErr := k8s.InitSleepPod(sleepPod2Configs)
+               Ω(podErr).NotTo(gomega.HaveOccurred())
+               sleepRespPod2, err := kClient.CreatePod(sleepObj2, dev)
+               gomega.Ω(err).NotTo(gomega.HaveOccurred())
+               // Wait for pod to move to running state
+               err = kClient.WaitForPodBySelectorRunning(dev,
+                       fmt.Sprintf("applicationId=%s", 
sleepRespPod2.ObjectMeta.Labels["applicationId"]),
+                       60)
+               gomega.Ω(err).NotTo(gomega.HaveOccurred())
+       })
 
        ginkgo.It("Verify_Pod_Alloc_Props", func() {
                err := restClient.WaitForAppStateTransition("default", 
"root."+dev, sleepRespPod.ObjectMeta.Labels["applicationId"], "Running", 30)
@@ -368,6 +321,9 @@ var _ = ginkgo.Describe("", func() {
        })
 
        ginkgo.AfterEach(func() {
+               ginkgo.By("Tear down namespace: " + dev)
+               err := kClient.TearDownNamespace(dev)
+               Ω(err).NotTo(gomega.HaveOccurred())
                tests.DumpClusterInfoIfSpecFailed(suiteName, []string{dev})
        })
 })


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to