You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@yunikorn.apache.org by wi...@apache.org on 2023/10/18 07:26:30 UTC

[yunikorn-k8shim] branch master updated: [YUNIKORN-2029] remove deprecated function (#688)

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

wilfreds 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 7b08702f [YUNIKORN-2029] remove deprecated function (#688)
7b08702f is described below

commit 7b08702fb873018892a563f5a63cb6601182248d
Author: PoAn Yang <pa...@apache.org>
AuthorDate: Wed Oct 18 18:22:44 2023 +1100

    [YUNIKORN-2029] remove deprecated function (#688)
    
    cleanup of deprecated functions in multiple packages
    * rand seed (go 1.20+ no longer needed)
    * ioutils (go 1.19)
    * K8s Poll & PollImmediate
    * ginkgo test description
    
    Signed-off-by: PoAn Yang <pa...@apache.org>
    
    Closes: #688
    
    Signed-off-by: Wilfred Spiegelenburg <wi...@apache.org>
---
 test/e2e/framework/helpers/common/utils.go         | 11 +++----
 test/e2e/framework/helpers/k8s/events.go           |  2 +-
 test/e2e/framework/helpers/k8s/k8s_utils.go        | 38 +++++++++++-----------
 .../framework/helpers/yunikorn/rest_api_utils.go   | 14 ++++----
 .../resource_fairness/resource_fairness_test.go    |  3 +-
 .../spark_jobs_scheduling_test.go                  |  3 +-
 .../drip_feed_schedule_test.go                     |  3 +-
 7 files changed, 36 insertions(+), 38 deletions(-)

diff --git a/test/e2e/framework/helpers/common/utils.go b/test/e2e/framework/helpers/common/utils.go
index 022875c1..66c5c3f1 100644
--- a/test/e2e/framework/helpers/common/utils.go
+++ b/test/e2e/framework/helpers/common/utils.go
@@ -22,14 +22,12 @@ import (
 	"bytes"
 	"errors"
 	"fmt"
-	"io/ioutil"
 	"math/rand"
 	"os"
 	"os/exec"
 	"path/filepath"
 	"reflect"
 	"strings"
-	"time"
 
 	"github.com/google/uuid"
 	"github.com/onsi/ginkgo/v2"
@@ -56,8 +54,8 @@ func GetAbsPath(p string) (string, error) {
 // GetTestName returns the test Name in a single string without spaces or /
 func GetTestName() string {
 	//nolint
-	testDesc := ginkgo.CurrentGinkgoTestDescription()
-	name := strings.Replace(testDesc.FullTestText, " ", "_", -1)
+	testReport := ginkgo.CurrentSpecReport()
+	name := strings.ReplaceAll(testReport.FullText(), " ", "_")
 	name = strings.Trim(name, "*")
 	return strings.Replace(name, "/", "-", -1)
 }
@@ -101,12 +99,12 @@ func CreateLogFile(filename string, data []byte) error {
 	}
 
 	finalPath := filepath.Join(path, filename)
-	err = ioutil.WriteFile(finalPath, data, configmanager.LogPerm)
+	err = os.WriteFile(finalPath, data, configmanager.LogPerm)
 	return err
 }
 
 func GetFileContents(filename string) ([]byte, error) {
-	data, err := ioutil.ReadFile(filename)
+	data, err := os.ReadFile(filename)
 	return data, err
 }
 
@@ -116,7 +114,6 @@ func GetUUID() string {
 
 func RandSeq(n int) string {
 	var letters = []rune("abcdefghijklmnopqrstuvwxyz0123456789")
-	rand.Seed(time.Now().UnixNano())
 	b := make([]rune, n)
 	for i := range b {
 		b[i] = letters[rand.Intn(len(letters))]
diff --git a/test/e2e/framework/helpers/k8s/events.go b/test/e2e/framework/helpers/k8s/events.go
index e8a5c454..06940f53 100644
--- a/test/e2e/framework/helpers/k8s/events.go
+++ b/test/e2e/framework/helpers/k8s/events.go
@@ -107,7 +107,7 @@ func ObserveEventAfterAction(c clientset.Interface, ns string, eventPredicate fu
 	// Wait up 2 minutes polling every second.
 	timeout := 2 * time.Minute
 	interval := 1 * time.Second
-	err = wait.Poll(interval, timeout, func() (bool, error) {
+	err = wait.PollUntilContextTimeout(context.TODO(), interval, timeout, false, func(context.Context) (bool, error) {
 		return observedMatchingEvent, nil
 	})
 	return err == nil, err
diff --git a/test/e2e/framework/helpers/k8s/k8s_utils.go b/test/e2e/framework/helpers/k8s/k8s_utils.go
index 6070d477..742a580b 100644
--- a/test/e2e/framework/helpers/k8s/k8s_utils.go
+++ b/test/e2e/framework/helpers/k8s/k8s_utils.go
@@ -361,7 +361,7 @@ func (k *KubeCtl) UpdateNamespace(namespace string, annotations map[string]strin
 }
 
 func (k *KubeCtl) WaitForServiceAccountPresent(namespace string, svcAcctName string, timeout time.Duration) error {
-	return wait.PollImmediate(time.Second, timeout, k.isServiceAccountPresent(namespace, svcAcctName))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Second, timeout, false, k.isServiceAccountPresent(namespace, svcAcctName).WithContext())
 }
 
 func (k *KubeCtl) isServiceAccountPresent(namespace string, svcAcctName string) wait.ConditionFunc {
@@ -720,47 +720,47 @@ func (k *KubeCtl) isNumPod(namespace string, wanted int) wait.ConditionFunc {
 }
 
 func (k *KubeCtl) WaitForJobPods(namespace string, jobName string, numPods int, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isNumJobPodsInDesiredState(jobName, namespace, numPods, v1.PodRunning))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isNumJobPodsInDesiredState(jobName, namespace, numPods, v1.PodRunning).WithContext())
 }
 func (k *KubeCtl) WaitForPodEvent(namespace string, podName string, expectedReason string, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isPodEventTriggered(namespace, podName, expectedReason))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isPodEventTriggered(namespace, podName, expectedReason).WithContext())
 }
 
 func (k *KubeCtl) WaitForPodTerminated(namespace string, podName string, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isPodNotInNS(podName, namespace))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isPodNotInNS(podName, namespace).WithContext())
 }
 
 func (k *KubeCtl) WaitForJobTerminated(namespace string, jobName string, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isJobNotInNS(jobName, namespace))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isJobNotInNS(jobName, namespace).WithContext())
 }
 
 // Poll up to timeout seconds for pod to enter running state.
 // Returns an error if the pod never enters the running state.
 func (k *KubeCtl) WaitForPodRunning(namespace string, podName string, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isPodInDesiredState(podName, namespace, v1.PodRunning))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isPodInDesiredState(podName, namespace, v1.PodRunning).WithContext())
 }
 
 func (k *KubeCtl) WaitForPodPending(namespace string, podName string, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isPodInDesiredState(podName, namespace, v1.PodPending))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isPodInDesiredState(podName, namespace, v1.PodPending).WithContext())
 }
 
 func (k *KubeCtl) WaitForPodSucceeded(namespace string, podName string, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isPodInDesiredState(podName, namespace, v1.PodSucceeded))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isPodInDesiredState(podName, namespace, v1.PodSucceeded).WithContext())
 }
 
 func (k *KubeCtl) WaitForPodFailed(namespace string, podName string, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isPodInDesiredState(podName, namespace, v1.PodFailed))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isPodInDesiredState(podName, namespace, v1.PodFailed).WithContext())
 }
 
 func (k *KubeCtl) WaitForPodCount(namespace string, wanted int, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isNumPod(namespace, wanted))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isNumPod(namespace, wanted).WithContext())
 }
 
 func (k *KubeCtl) WaitForPodStateStable(namespace string, podName string, timeout time.Duration) (error, v1.PodPhase) {
 	var lastPhase v1.PodPhase
 	samePhases := 0
 
-	err := wait.PollImmediate(time.Second, timeout, k.isPodStable(namespace, podName, &samePhases, 3, &lastPhase))
+	err := wait.PollUntilContextTimeout(context.TODO(), time.Second, timeout, false, k.isPodStable(namespace, podName, &samePhases, 3, &lastPhase).WithContext())
 	return err, lastPhase
 }
 
@@ -818,7 +818,7 @@ func (k *KubeCtl) WaitForPodBySelectorRunning(namespace string, selector string,
 
 // Wait up to timeout seconds for a pod in 'namespace' with given 'selector' to exist
 func (k *KubeCtl) WaitForPodBySelector(namespace string, selector string, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isPodSelectorInNs(selector, namespace))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isPodSelectorInNs(selector, namespace).WithContext())
 }
 
 func (k *KubeCtl) CreateSecret(secret *v1.Secret, namespace string) (*v1.Secret, error) {
@@ -920,7 +920,7 @@ func (k *KubeCtl) PodScheduled(podNamespace, podName string) wait.ConditionFunc
 }
 
 func (k *KubeCtl) WaitForPodScheduled(namespace string, podName string, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.PodScheduled(namespace, podName))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.PodScheduled(namespace, podName).WithContext())
 }
 
 // PodUnschedulable returns a condition function that returns true if the given pod
@@ -941,7 +941,7 @@ func (k *KubeCtl) PodUnschedulable(podNamespace, podName string) wait.ConditionF
 // WaitForPodUnschedulable waits for a pod to fail scheduling and returns
 // an error if it does not become unschedulable within the given timeout.
 func (k *KubeCtl) WaitForPodUnschedulable(pod *v1.Pod, timeout time.Duration) error {
-	return wait.PollImmediate(100*time.Millisecond, timeout, k.PodUnschedulable(pod.Namespace, pod.Name))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.PodUnschedulable(pod.Namespace, pod.Name).WithContext())
 }
 
 func (k *KubeCtl) CreatePriorityClass(pc *schedulingv1.PriorityClass) (*schedulingv1.PriorityClass, error) {
@@ -957,19 +957,19 @@ func (k *KubeCtl) CreateJob(job *batchv1.Job, namespace string) (*batchv1.Job, e
 }
 
 func (k *KubeCtl) WaitForJobPodsCreated(namespace string, jobName string, numPods int, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isNumJobPodsCreated(jobName, namespace, numPods))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isNumJobPodsCreated(jobName, namespace, numPods).WithContext())
 }
 
 func (k *KubeCtl) WaitForJobPodsRunning(namespace string, jobName string, numPods int, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isNumJobPodsInDesiredState(jobName, namespace, numPods, v1.PodRunning))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isNumJobPodsInDesiredState(jobName, namespace, numPods, v1.PodRunning).WithContext())
 }
 
 func (k *KubeCtl) WaitForJobPodsSucceeded(namespace string, jobName string, numPods int, timeout time.Duration) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isNumJobPodsInDesiredState(jobName, namespace, numPods, v1.PodSucceeded))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isNumJobPodsInDesiredState(jobName, namespace, numPods, v1.PodSucceeded).WithContext())
 }
 
 func (k *KubeCtl) WaitForPlaceholders(namespace string, podPrefix string, numPods int, timeout time.Duration, podPhase *v1.PodPhase) error {
-	return wait.PollImmediate(time.Millisecond*100, timeout, k.isNumPlaceholdersRunning(namespace, podPrefix, numPods, podPhase))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, timeout, false, k.isNumPlaceholdersRunning(namespace, podPrefix, numPods, podPhase).WithContext())
 }
 
 func (k *KubeCtl) ListPlaceholders(namespace string, podPrefix string) ([]v1.Pod, error) {
@@ -991,7 +991,7 @@ func (k *KubeCtl) ListPlaceholders(namespace string, podPrefix string) ([]v1.Pod
 func (k *KubeCtl) WaitForPlaceholdersStableState(namespace string, podPrefix string, timeout time.Duration) error {
 	samePhases := 0
 	podPhases := make(map[string]v1.PodPhase)
-	return wait.PollImmediate(time.Second, timeout, k.arePlaceholdersStable(namespace, podPrefix, &samePhases, 3, podPhases))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Second, timeout, false, k.arePlaceholdersStable(namespace, podPrefix, &samePhases, 3, podPhases).WithContext())
 }
 
 func (k *KubeCtl) isNumPlaceholdersRunning(namespace string, podPrefix string, num int, podPhase *v1.PodPhase) wait.ConditionFunc {
diff --git a/test/e2e/framework/helpers/yunikorn/rest_api_utils.go b/test/e2e/framework/helpers/yunikorn/rest_api_utils.go
index 26289dff..3487e810 100644
--- a/test/e2e/framework/helpers/yunikorn/rest_api_utils.go
+++ b/test/e2e/framework/helpers/yunikorn/rest_api_utils.go
@@ -20,6 +20,7 @@ package yunikorn
 
 import (
 	"bytes"
+	"context"
 	"encoding/json"
 	"errors"
 	"fmt"
@@ -107,10 +108,7 @@ func (c *RClient) GetHealthCheck() (dao.SchedulerHealthDAOInfo, error) {
 }
 
 func (c *RClient) WaitforQueueToAppear(partition string, queueName string, timeout int) error {
-	if err := wait.PollImmediate(300*time.Millisecond, time.Duration(timeout)*time.Second, c.IsQueuePresent(partition, queueName)); err != nil {
-		return err
-	}
-	return nil
+	return wait.PollUntilContextTimeout(context.TODO(), 300*time.Microsecond, time.Duration(timeout)*time.Second, false, c.IsQueuePresent(partition, queueName).WithContext())
 }
 
 func (c *RClient) IsQueuePresent(partition string, queueName string) wait.ConditionFunc {
@@ -198,7 +196,7 @@ func (c *RClient) isAllocLogPresent(partition string, queueName string, appID st
 }
 
 func (c *RClient) WaitForAllocationLog(partition string, queueName string, appID string, podName string, timeout int) error {
-	if err := wait.PollImmediate(time.Second, time.Duration(timeout)*time.Second, c.isAllocLogPresent(partition, queueName, appID, podName)); err != nil {
+	if err := wait.PollUntilContextTimeout(context.TODO(), time.Second, time.Duration(timeout)*time.Second, false, c.isAllocLogPresent(partition, queueName, appID, podName).WithContext()); err != nil {
 		return err
 	}
 
@@ -234,7 +232,7 @@ func (c *RClient) GetNodes(partition string) (*[]dao.NodeDAOInfo, error) {
 }
 
 func (c *RClient) WaitForAppStateTransition(partition string, queue string, appID string, state string, timeout int) error {
-	return wait.PollImmediate(time.Millisecond*300, time.Duration(timeout)*time.Second, c.isAppInDesiredState(partition, queue, appID, state))
+	return wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*300, time.Duration(timeout)*time.Second, false, c.isAppInDesiredState(partition, queue, appID, state).WithContext())
 }
 
 func (c *RClient) AreAllExecPodsAllotted(partition string, queueName string, appID string, execPodCount int) wait.ConditionFunc {
@@ -285,7 +283,7 @@ func isRootSched(policy string) wait.ConditionFunc {
 }
 
 func WaitForSchedPolicy(policy string, timeout time.Duration) error {
-	return wait.PollImmediate(2*time.Second, timeout, isRootSched(policy))
+	return wait.PollUntilContextTimeout(context.TODO(), 2*time.Second, timeout, false, isRootSched(policy).WithContext())
 }
 
 func GetFailedHealthChecks() (string, error) {
@@ -339,7 +337,7 @@ func compareQueueTS(queuePathStr string, ts string) wait.ConditionFunc {
 
 // Expects queuePath to use periods as delimiters. ie "root.queueA.child"
 func WaitForQueueTS(queuePathStr string, ts string, timeout time.Duration) error {
-	return wait.PollImmediate(2*time.Second, timeout, compareQueueTS(queuePathStr, ts))
+	return wait.PollUntilContextTimeout(context.TODO(), 2*time.Second, timeout, false, compareQueueTS(queuePathStr, ts).WithContext())
 }
 
 func AllocLogToStrings(log []*dao.AllocationAskLogDAOInfo) []string {
diff --git a/test/e2e/resource_fairness/resource_fairness_test.go b/test/e2e/resource_fairness/resource_fairness_test.go
index fff4104e..b846dd25 100644
--- a/test/e2e/resource_fairness/resource_fairness_test.go
+++ b/test/e2e/resource_fairness/resource_fairness_test.go
@@ -19,6 +19,7 @@
 package resourcefairness_test
 
 import (
+	"context"
 	"fmt"
 	"math/rand"
 	"time"
@@ -153,7 +154,7 @@ var _ = Describe("FairScheduling:", func() {
 			Ω(err).NotTo(HaveOccurred())
 
 			// Wait till requests has been added to application
-			err := wait.PollImmediate(300*time.Millisecond, 60*time.Second, func() (bool, error) {
+			err := wait.PollUntilContextTimeout(context.TODO(), 300*time.Millisecond, 60*time.Second, false, func(context.Context) (bool, error) {
 				app, err := restClient.GetAppInfo("default", queuePath, appID)
 				if err != nil {
 					return false, nil
diff --git a/test/e2e/spark_jobs_scheduling/spark_jobs_scheduling_test.go b/test/e2e/spark_jobs_scheduling/spark_jobs_scheduling_test.go
index 24efb46e..375e9f9a 100644
--- a/test/e2e/spark_jobs_scheduling/spark_jobs_scheduling_test.go
+++ b/test/e2e/spark_jobs_scheduling/spark_jobs_scheduling_test.go
@@ -19,6 +19,7 @@
 package spark_jobs_scheduling
 
 import (
+	"context"
 	"fmt"
 	"net/url"
 	"os"
@@ -117,7 +118,7 @@ var _ = Describe("", func() {
 		By(fmt.Sprintf("Get apps from specific queue: %s", sparkNS))
 		var appsFromQueue []*dao.ApplicationDAOInfo
 		// Poll for apps to appear in the queue
-		err = wait.PollImmediate(time.Millisecond*100, time.Duration(120)*time.Second, func() (done bool, err error) {
+		err = wait.PollUntilContextTimeout(context.TODO(), time.Millisecond*100, time.Duration(120)*time.Second, false, func(context.Context) (done bool, err error) {
 			appsFromQueue, err = restClient.GetApps(configmanager.DefaultPartition, configmanager.RootQueue+"."+sparkNS)
 			if len(appsFromQueue) == 3 {
 				return true, nil
diff --git a/test/e2e/state_aware_app_scheduling/drip_feed_schedule_test.go b/test/e2e/state_aware_app_scheduling/drip_feed_schedule_test.go
index 2a479fdc..49d5719d 100644
--- a/test/e2e/state_aware_app_scheduling/drip_feed_schedule_test.go
+++ b/test/e2e/state_aware_app_scheduling/drip_feed_schedule_test.go
@@ -19,6 +19,7 @@
 package stateawareappscheduling_test
 
 import (
+	"context"
 	"fmt"
 	"time"
 
@@ -72,7 +73,7 @@ var _ = Describe("DripFeedSchedule:", func() {
 		By(fmt.Sprintf("Get apps from specific queue: %s", ns))
 		var appsFromQueue []*dao.ApplicationDAOInfo
 		// Poll for apps to appear in the queue
-		err = wait.PollImmediate(time.Second, time.Duration(60)*time.Second, func() (done bool, err error) {
+		err = wait.PollUntilContextTimeout(context.TODO(), time.Second, time.Duration(60)*time.Second, false, func(context.Context) (done bool, err error) {
 			appsFromQueue, err = restClient.GetApps("default", "root."+ns)
 			if len(appsFromQueue) == 3 {
 				return true, nil


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@yunikorn.apache.org
For additional commands, e-mail: issues-help@yunikorn.apache.org