Skip to content

Commit 72fb952

Browse files
authored
Merge pull request kubernetes#89915 from YuikoTakada/move_e2e_framework_WaitForService
Move WaitForService() into e2eservice
2 parents d24b928 + 9c87deb commit 72fb952

File tree

10 files changed

+43
-32
lines changed

10 files changed

+43
-32
lines changed

test/e2e/cloud/gcp/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ go_library(
3434
"//test/e2e/framework/config:go_default_library",
3535
"//test/e2e/framework/ginkgowrapper:go_default_library",
3636
"//test/e2e/framework/kubelet:go_default_library",
37+
"//test/e2e/framework/network:go_default_library",
3738
"//test/e2e/framework/node:go_default_library",
3839
"//test/e2e/framework/pod:go_default_library",
3940
"//test/e2e/framework/skipper:go_default_library",

test/e2e/cloud/gcp/addon_update.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
"k8s.io/apimachinery/pkg/util/wait"
3232
clientset "k8s.io/client-go/kubernetes"
3333
"k8s.io/kubernetes/test/e2e/framework"
34+
e2enetwork "k8s.io/kubernetes/test/e2e/framework/network"
3435
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
3536
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
3637
testutils "k8s.io/kubernetes/test/utils"
@@ -344,7 +345,7 @@ var _ = SIGDescribe("Addon update", func() {
344345
})
345346

346347
func waitForServiceInAddonTest(c clientset.Interface, addonNamespace, name string, exist bool) {
347-
framework.ExpectNoError(framework.WaitForService(c, addonNamespace, name, exist, addonTestPollInterval, addonTestPollTimeout))
348+
framework.ExpectNoError(e2enetwork.WaitForService(c, addonNamespace, name, exist, addonTestPollInterval, addonTestPollTimeout))
348349
}
349350

350351
func waitForReplicationControllerInAddonTest(c clientset.Interface, addonNamespace, name string, exist bool) {

test/e2e/framework/network/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ go_library(
77
visibility = ["//visibility:public"],
88
deps = [
99
"//staging/src/k8s.io/api/core/v1:go_default_library",
10+
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
1011
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
1112
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
1213
"//staging/src/k8s.io/apimachinery/pkg/util/intstr:go_default_library",
@@ -21,6 +22,7 @@ go_library(
2122
"//test/e2e/framework/pod:go_default_library",
2223
"//test/e2e/framework/skipper:go_default_library",
2324
"//test/e2e/framework/ssh:go_default_library",
25+
"//test/utils:go_default_library",
2426
"//test/utils/image:go_default_library",
2527
"//vendor/github.com/onsi/ginkgo:go_default_library",
2628
],

test/e2e/framework/network/utils.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929

3030
"github.com/onsi/ginkgo"
3131
v1 "k8s.io/api/core/v1"
32+
apierrors "k8s.io/apimachinery/pkg/api/errors"
3233
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3334
"k8s.io/apimachinery/pkg/labels"
3435
"k8s.io/apimachinery/pkg/util/intstr"
@@ -43,6 +44,7 @@ import (
4344
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
4445
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
4546
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
47+
testutils "k8s.io/kubernetes/test/utils"
4648
imageutils "k8s.io/kubernetes/test/utils/image"
4749
)
4850

@@ -613,7 +615,7 @@ func (config *NetworkingTestConfig) createService(serviceSpec *v1.Service) *v1.S
613615
_, err := config.getServiceClient().Create(context.TODO(), serviceSpec, metav1.CreateOptions{})
614616
framework.ExpectNoError(err, fmt.Sprintf("Failed to create %s service: %v", serviceSpec.Name, err))
615617

616-
err = framework.WaitForService(config.f.ClientSet, config.Namespace, serviceSpec.Name, true, 5*time.Second, 45*time.Second)
618+
err = WaitForService(config.f.ClientSet, config.Namespace, serviceSpec.Name, true, 5*time.Second, 45*time.Second)
617619
framework.ExpectNoError(err, fmt.Sprintf("error while waiting for service:%s err: %v", serviceSpec.Name, err))
618620

619621
createdService, err := config.getServiceClient().Get(context.TODO(), serviceSpec.Name, metav1.GetOptions{})
@@ -977,3 +979,29 @@ func UnblockNetwork(from string, to string) {
977979
"required on host %s: remove rule %s, if exists", from, iptablesRule)
978980
}
979981
}
982+
983+
// WaitForService waits until the service appears (exist == true), or disappears (exist == false)
984+
func WaitForService(c clientset.Interface, namespace, name string, exist bool, interval, timeout time.Duration) error {
985+
err := wait.PollImmediate(interval, timeout, func() (bool, error) {
986+
_, err := c.CoreV1().Services(namespace).Get(context.TODO(), name, metav1.GetOptions{})
987+
switch {
988+
case err == nil:
989+
framework.Logf("Service %s in namespace %s found.", name, namespace)
990+
return exist, nil
991+
case apierrors.IsNotFound(err):
992+
framework.Logf("Service %s in namespace %s disappeared.", name, namespace)
993+
return !exist, nil
994+
case !testutils.IsRetryableAPIError(err):
995+
framework.Logf("Non-retryable failure while getting service.")
996+
return false, err
997+
default:
998+
framework.Logf("Get service %s in namespace %s failed: %v", name, namespace, err)
999+
return false, nil
1000+
}
1001+
})
1002+
if err != nil {
1003+
stateMsg := map[bool]string{true: "to appear", false: "to disappear"}
1004+
return fmt.Errorf("error waiting for service %s/%s %s: %v", namespace, name, stateMsg[exist], err)
1005+
}
1006+
return nil
1007+
}

test/e2e/framework/util.go

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -398,32 +398,6 @@ func CheckTestingNSDeletedExcept(c clientset.Interface, skip string) error {
398398
return fmt.Errorf("Waiting for terminating namespaces to be deleted timed out")
399399
}
400400

401-
// WaitForService waits until the service appears (exist == true), or disappears (exist == false)
402-
func WaitForService(c clientset.Interface, namespace, name string, exist bool, interval, timeout time.Duration) error {
403-
err := wait.PollImmediate(interval, timeout, func() (bool, error) {
404-
_, err := c.CoreV1().Services(namespace).Get(context.TODO(), name, metav1.GetOptions{})
405-
switch {
406-
case err == nil:
407-
Logf("Service %s in namespace %s found.", name, namespace)
408-
return exist, nil
409-
case apierrors.IsNotFound(err):
410-
Logf("Service %s in namespace %s disappeared.", name, namespace)
411-
return !exist, nil
412-
case !testutils.IsRetryableAPIError(err):
413-
Logf("Non-retryable failure while getting service.")
414-
return false, err
415-
default:
416-
Logf("Get service %s in namespace %s failed: %v", name, namespace, err)
417-
return false, nil
418-
}
419-
})
420-
if err != nil {
421-
stateMsg := map[bool]string{true: "to appear", false: "to disappear"}
422-
return fmt.Errorf("error waiting for service %s/%s %s: %v", namespace, name, stateMsg[exist], err)
423-
}
424-
return nil
425-
}
426-
427401
//WaitForServiceEndpointsNum waits until the amount of endpoints that implement service to expectNum.
428402
func WaitForServiceEndpointsNum(c clientset.Interface, namespace, serviceName string, expectNum int, interval, timeout time.Duration) error {
429403
return wait.Poll(interval, timeout, func() (bool, error) {

test/e2e/kubectl/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ go_library(
3535
"//test/e2e/framework/auth:go_default_library",
3636
"//test/e2e/framework/endpoints:go_default_library",
3737
"//test/e2e/framework/kubectl:go_default_library",
38+
"//test/e2e/framework/network:go_default_library",
3839
"//test/e2e/framework/node:go_default_library",
3940
"//test/e2e/framework/pod:go_default_library",
4041
"//test/e2e/framework/service:go_default_library",

test/e2e/kubectl/kubectl.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ import (
6565
e2eauth "k8s.io/kubernetes/test/e2e/framework/auth"
6666
e2eendpoints "k8s.io/kubernetes/test/e2e/framework/endpoints"
6767
e2ekubectl "k8s.io/kubernetes/test/e2e/framework/kubectl"
68+
e2enetwork "k8s.io/kubernetes/test/e2e/framework/network"
6869
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
6970
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
7071
e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
@@ -1286,12 +1287,12 @@ metadata:
12861287

12871288
ginkgo.By("exposing RC")
12881289
framework.RunKubectlOrDie(ns, "expose", "rc", "agnhost-master", "--name=rm2", "--port=1234", fmt.Sprintf("--target-port=%d", agnhostPort), nsFlag)
1289-
framework.WaitForService(c, ns, "rm2", true, framework.Poll, framework.ServiceStartTimeout)
1290+
e2enetwork.WaitForService(c, ns, "rm2", true, framework.Poll, framework.ServiceStartTimeout)
12901291
validateService("rm2", 1234, framework.ServiceStartTimeout)
12911292

12921293
ginkgo.By("exposing service")
12931294
framework.RunKubectlOrDie(ns, "expose", "service", "rm2", "--name=rm3", "--port=2345", fmt.Sprintf("--target-port=%d", agnhostPort), nsFlag)
1294-
framework.WaitForService(c, ns, "rm3", true, framework.Poll, framework.ServiceStartTimeout)
1295+
e2enetwork.WaitForService(c, ns, "rm3", true, framework.Poll, framework.ServiceStartTimeout)
12951296
validateService("rm3", 2345, framework.ServiceStartTimeout)
12961297
})
12971298
})

test/e2e/network/example_cluster_dns.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
clientset "k8s.io/client-go/kubernetes"
3535
api "k8s.io/kubernetes/pkg/apis/core"
3636
"k8s.io/kubernetes/test/e2e/framework"
37+
e2enetwork "k8s.io/kubernetes/test/e2e/framework/network"
3738
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
3839
e2eresource "k8s.io/kubernetes/test/e2e/framework/resource"
3940
e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
@@ -104,7 +105,7 @@ var _ = SIGDescribe("ClusterDns [Feature:Example]", func() {
104105
// wait for objects
105106
for _, ns := range namespaces {
106107
e2eresource.WaitForControlledPodsRunning(c, ns.Name, backendRcName, api.Kind("ReplicationController"))
107-
framework.WaitForService(c, ns.Name, backendSvcName, true, framework.Poll, framework.ServiceStartTimeout)
108+
e2enetwork.WaitForService(c, ns.Name, backendSvcName, true, framework.Poll, framework.ServiceStartTimeout)
108109
}
109110
// it is not enough that pods are running because they may be set to running, but
110111
// the application itself may have not been initialized. Just query the application.

test/e2e/ui/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ go_library(
1414
"//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
1515
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
1616
"//test/e2e/framework:go_default_library",
17+
"//test/e2e/framework/network:go_default_library",
1718
"//test/e2e/framework/service:go_default_library",
1819
"//test/e2e/framework/skipper:go_default_library",
1920
"//test/utils:go_default_library",

test/e2e/ui/dashboard.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
utilnet "k8s.io/apimachinery/pkg/util/net"
2727
"k8s.io/apimachinery/pkg/util/wait"
2828
"k8s.io/kubernetes/test/e2e/framework"
29+
e2enetwork "k8s.io/kubernetes/test/e2e/framework/network"
2930
e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
3031
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
3132
testutils "k8s.io/kubernetes/test/utils"
@@ -51,7 +52,7 @@ var _ = SIGDescribe("Kubernetes Dashboard [Feature:Dashboard]", func() {
5152

5253
ginkgo.It("should check that the kubernetes-dashboard instance is alive", func() {
5354
ginkgo.By("Checking whether the kubernetes-dashboard service exists.")
54-
err := framework.WaitForService(f.ClientSet, uiNamespace, uiServiceName, true, framework.Poll, framework.ServiceStartTimeout)
55+
err := e2enetwork.WaitForService(f.ClientSet, uiNamespace, uiServiceName, true, framework.Poll, framework.ServiceStartTimeout)
5556
framework.ExpectNoError(err)
5657

5758
ginkgo.By("Checking to make sure the kubernetes-dashboard pods are running")

0 commit comments

Comments
 (0)