From d7e787adce74d3df9a3412d24a0f1c16b15239f2 Mon Sep 17 00:00:00 2001 From: tanjunchen Date: Thu, 26 Mar 2020 23:16:20 +0800 Subject: [PATCH] test/e2e/framework: remove direct dependency to k8s.io/kubernetes/pkg/controller --- test/e2e/framework/pod/BUILD | 1 + test/e2e/framework/pod/resource.go | 22 ++++++++++++++++++++++ test/e2e/framework/resource/BUILD | 1 - test/e2e/framework/resource/resources.go | 3 +-- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/test/e2e/framework/pod/BUILD b/test/e2e/framework/pod/BUILD index 196f712ad9e..25612fd44e9 100644 --- a/test/e2e/framework/pod/BUILD +++ b/test/e2e/framework/pod/BUILD @@ -28,6 +28,7 @@ go_library( "//test/utils/image:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", + "//vendor/k8s.io/klog:go_default_library", ], ) diff --git a/test/e2e/framework/pod/resource.go b/test/e2e/framework/pod/resource.go index da22ad63c4d..85a91d376db 100644 --- a/test/e2e/framework/pod/resource.go +++ b/test/e2e/framework/pod/resource.go @@ -32,6 +32,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" + "k8s.io/klog" "k8s.io/kubectl/pkg/util/podutils" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" e2elog "k8s.io/kubernetes/test/e2e/framework/log" @@ -583,3 +584,24 @@ func getNodeTTLAnnotationValue(c clientset.Interface) (time.Duration, error) { } return time.Duration(intValue) * time.Second, nil } + +// FilterActivePods returns pods that have not terminated. +func FilterActivePods(pods []*v1.Pod) []*v1.Pod { + var result []*v1.Pod + for _, p := range pods { + if IsPodActive(p) { + result = append(result, p) + } else { + klog.V(4).Infof("Ignoring inactive pod %v/%v in state %v, deletion time %v", + p.Namespace, p.Name, p.Status.Phase, p.DeletionTimestamp) + } + } + return result +} + +// IsPodActive return true if the pod meets certain conditions. +func IsPodActive(p *v1.Pod) bool { + return v1.PodSucceeded != p.Status.Phase && + v1.PodFailed != p.Status.Phase && + p.DeletionTimestamp == nil +} diff --git a/test/e2e/framework/resource/BUILD b/test/e2e/framework/resource/BUILD index 9dfa07d08a3..986506e7b1b 100644 --- a/test/e2e/framework/resource/BUILD +++ b/test/e2e/framework/resource/BUILD @@ -9,7 +9,6 @@ go_library( importpath = "k8s.io/kubernetes/test/e2e/framework/resource", visibility = ["//visibility:public"], deps = [ - "//pkg/controller:go_default_library", "//staging/src/k8s.io/api/apps/v1:go_default_library", "//staging/src/k8s.io/api/batch/v1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", diff --git a/test/e2e/framework/resource/resources.go b/test/e2e/framework/resource/resources.go index a64383d9491..437f616aac8 100644 --- a/test/e2e/framework/resource/resources.go +++ b/test/e2e/framework/resource/resources.go @@ -30,7 +30,6 @@ import ( "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" scaleclient "k8s.io/client-go/scale" - "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/test/e2e/framework" e2epod "k8s.io/kubernetes/test/e2e/framework/pod" testutils "k8s.io/kubernetes/test/utils" @@ -159,7 +158,7 @@ func waitForPodsInactive(ps *testutils.PodStore, interval, timeout time.Duration var activePods []*v1.Pod err := wait.PollImmediate(interval, timeout, func() (bool, error) { pods := ps.List() - activePods = controller.FilterActivePods(pods) + activePods = e2epod.FilterActivePods(pods) if len(activePods) != 0 { return false, nil }