diff --git a/test/e2e/apps/daemon_restart.go b/test/e2e/apps/daemon_restart.go index 7d0cf8a36b2..a1bfcb4bba1 100644 --- a/test/e2e/apps/daemon_restart.go +++ b/test/e2e/apps/daemon_restart.go @@ -300,7 +300,11 @@ var _ = SIGDescribe("DaemonRestart [Disruptive]", func() { ginkgo.It("Kubelet should not restart containers across restart", func() { nodeIPs, err := e2enode.GetPublicIps(f.ClientSet) - framework.ExpectNoError(err) + if err != nil { + e2elog.Logf("Unexpected error occurred: %v", err) + } + // TODO: write a wrapper for ExpectNoErrorWithOffset() + framework.ExpectNoErrorWithOffset(0, err) preRestarts, badNodes := getContainerRestarts(f.ClientSet, ns, labelSelector) if preRestarts != 0 { e2elog.Logf("WARNING: Non-zero container restart count: %d across nodes %v", preRestarts, badNodes) diff --git a/test/e2e/autoscaling/cluster_size_autoscaling.go b/test/e2e/autoscaling/cluster_size_autoscaling.go index 0850aa55eb0..f670118c0e1 100644 --- a/test/e2e/autoscaling/cluster_size_autoscaling.go +++ b/test/e2e/autoscaling/cluster_size_autoscaling.go @@ -1226,8 +1226,12 @@ func deleteNodePool(name string) { func getPoolNodes(f *framework.Framework, poolName string) []*v1.Node { nodes := make([]*v1.Node, 0, 1) - nodeList, err := e2enode.GetReadyNodesIncludingTaintedOrDie(f.ClientSet) - framework.ExpectNoError(err) + nodeList, err := e2enode.GetReadyNodesIncludingTainted(f.ClientSet) + if err != nil { + e2elog.Logf("Unexpected error occurred: %v", err) + } + // TODO: write a wrapper for ExpectNoErrorWithOffset() + framework.ExpectNoErrorWithOffset(0, err) for _, node := range nodeList.Items { if node.Labels[gkeNodepoolNameKey] == poolName { nodes = append(nodes, &node) diff --git a/test/e2e/cloud/nodes.go b/test/e2e/cloud/nodes.go index ff38b1ce075..25324fda8e2 100644 --- a/test/e2e/cloud/nodes.go +++ b/test/e2e/cloud/nodes.go @@ -47,8 +47,13 @@ var _ = SIGDescribe("[Feature:CloudProvider][Disruptive] Nodes", func() { nodeDeleteCandidates := framework.GetReadySchedulableNodesOrDie(c) nodeToDelete := nodeDeleteCandidates.Items[0] - origNodes, err := e2enode.GetReadyNodesIncludingTaintedOrDie(c) - framework.ExpectNoError(err) + origNodes, err := e2enode.GetReadyNodesIncludingTainted(c) + if err != nil { + e2elog.Logf("Unexpected error occurred: %v", err) + } + // TODO: write a wrapper for ExpectNoErrorWithOffset() + framework.ExpectNoErrorWithOffset(0, err) + e2elog.Logf("Original number of ready nodes: %d", len(origNodes.Items)) err = framework.DeleteNodeOnCloudProvider(&nodeToDelete) diff --git a/test/e2e/framework/node/resource.go b/test/e2e/framework/node/resource.go index 39b8611744c..cd9d22d24f7 100644 --- a/test/e2e/framework/node/resource.go +++ b/test/e2e/framework/node/resource.go @@ -360,8 +360,9 @@ func GetPublicIps(c clientset.Interface) ([]string, error) { // 2) Needs to be ready. // If EITHER 1 or 2 is not true, most tests will want to ignore the node entirely. // TODO: remove references in framework/util.go. +// TODO: remove "OrDie" suffix. func GetReadySchedulableNodesOrDie(c clientset.Interface) (nodes *v1.NodeList, err error) { - nodes, err = waitListSchedulableNodesOrDie(c) + nodes, err = checkWaitListSchedulableNodes(c) if err != nil { return nil, fmt.Errorf("listing schedulable nodes error: %s", err) } @@ -373,12 +374,12 @@ func GetReadySchedulableNodesOrDie(c clientset.Interface) (nodes *v1.NodeList, e return nodes, nil } -// GetReadyNodesIncludingTaintedOrDie returns all ready nodes, even those which are tainted. +// GetReadyNodesIncludingTainted returns all ready nodes, even those which are tainted. // There are cases when we care about tainted nodes // E.g. in tests related to nodes with gpu we care about nodes despite // presence of nvidia.com/gpu=present:NoSchedule taint -func GetReadyNodesIncludingTaintedOrDie(c clientset.Interface) (nodes *v1.NodeList, err error) { - nodes, err = waitListSchedulableNodesOrDie(c) +func GetReadyNodesIncludingTainted(c clientset.Interface) (nodes *v1.NodeList, err error) { + nodes, err = checkWaitListSchedulableNodes(c) if err != nil { return nil, fmt.Errorf("listing schedulable nodes error: %s", err) } @@ -388,8 +389,8 @@ func GetReadyNodesIncludingTaintedOrDie(c clientset.Interface) (nodes *v1.NodeLi return nodes, nil } -// GetMasterAndWorkerNodesOrDie will return a list masters and schedulable worker nodes -func GetMasterAndWorkerNodesOrDie(c clientset.Interface) (sets.String, *v1.NodeList, error) { +// GetMasterAndWorkerNodes will return a list masters and schedulable worker nodes +func GetMasterAndWorkerNodes(c clientset.Interface) (sets.String, *v1.NodeList, error) { nodes := &v1.NodeList{} masters := sets.NewString() all, err := c.CoreV1().Nodes().List(metav1.ListOptions{}) @@ -407,6 +408,7 @@ func GetMasterAndWorkerNodesOrDie(c clientset.Interface) (sets.String, *v1.NodeL } // Test whether a fake pod can be scheduled on "node", given its current taints. +// TODO: need to discuss wether to return bool and error type func isNodeUntainted(node *v1.Node) bool { fakePod := &v1.Pod{ TypeMeta: metav1.TypeMeta{ diff --git a/test/e2e/framework/node/wait.go b/test/e2e/framework/node/wait.go index bbc0b624e6a..3004cbd3125 100644 --- a/test/e2e/framework/node/wait.go +++ b/test/e2e/framework/node/wait.go @@ -198,8 +198,8 @@ func waitListSchedulableNodes(c clientset.Interface) (*v1.NodeList, error) { return nodes, nil } -// waitListSchedulableNodesOrDie is a wrapper around listing nodes supporting retries. -func waitListSchedulableNodesOrDie(c clientset.Interface) (*v1.NodeList, error) { +// checkWaitListSchedulableNodes is a wrapper around listing nodes supporting retries. +func checkWaitListSchedulableNodes(c clientset.Interface) (*v1.NodeList, error) { nodes, err := waitListSchedulableNodes(c) if err != nil { return nil, fmt.Errorf("error: %s. Non-retryable failure or timed out while listing nodes for e2e cluster", err) diff --git a/test/e2e/network/service.go b/test/e2e/network/service.go index 7fbda94134b..e217077649f 100644 --- a/test/e2e/network/service.go +++ b/test/e2e/network/service.go @@ -499,7 +499,11 @@ var _ = SIGDescribe("Services", func() { jig := framework.NewServiceTestJig(cs, serviceName) nodeIP, err := e2enode.PickIP(jig.Client) // for later - framework.ExpectNoError(err) + if err != nil { + e2elog.Logf("Unexpected error occurred: %v", err) + } + // TODO: write a wrapper for ExpectNoErrorWithOffset() + framework.ExpectNoErrorWithOffset(0, err) ginkgo.By("creating service " + serviceName + " with type=NodePort in namespace " + ns) service := jig.CreateTCPServiceOrFail(ns, func(svc *v1.Service) { @@ -556,7 +560,11 @@ var _ = SIGDescribe("Services", func() { jig := framework.NewServiceTestJig(cs, serviceName) nodeIP, err := e2enode.PickIP(jig.Client) // for later - framework.ExpectNoError(err) + if err != nil { + e2elog.Logf("Unexpected error occurred: %v", err) + } + // TODO: write a wrapper for ExpectNoErrorWithOffset() + framework.ExpectNoErrorWithOffset(0, err) // Test TCP and UDP Services. Services with the same name in different // namespaces should get different node ports and load balancers. diff --git a/test/e2e/scalability/density.go b/test/e2e/scalability/density.go index 27ba55161d5..5bb6ddbf134 100644 --- a/test/e2e/scalability/density.go +++ b/test/e2e/scalability/density.go @@ -520,8 +520,12 @@ var _ = SIGDescribe("Density", func() { }, }) - _, nodes, err = e2enode.GetMasterAndWorkerNodesOrDie(c) - framework.ExpectNoError(err) + _, nodes, err = e2enode.GetMasterAndWorkerNodes(c) + if err != nil { + e2elog.Logf("Unexpected error occurred: %v", err) + } + // TODO: write a wrapper for ExpectNoErrorWithOffset() + framework.ExpectNoErrorWithOffset(0, err) nodeCount = len(nodes.Items) gomega.Expect(nodeCount).NotTo(gomega.BeZero()) diff --git a/test/e2e/scheduling/equivalence_cache_predicates.go b/test/e2e/scheduling/equivalence_cache_predicates.go index 39d29fee866..cd2406e7cf4 100644 --- a/test/e2e/scheduling/equivalence_cache_predicates.go +++ b/test/e2e/scheduling/equivalence_cache_predicates.go @@ -56,8 +56,12 @@ var _ = framework.KubeDescribe("EquivalenceCache [Serial]", func() { ns = f.Namespace.Name e2enode.WaitForTotalHealthy(cs, time.Minute) - masterNodes, nodeList, err = e2enode.GetMasterAndWorkerNodesOrDie(cs) - framework.ExpectNoError(err) + masterNodes, nodeList, err = e2enode.GetMasterAndWorkerNodes(cs) + if err != nil { + e2elog.Logf("Unexpected error occurred: %v", err) + } + // TODO: write a wrapper for ExpectNoErrorWithOffset() + framework.ExpectNoErrorWithOffset(0, err) framework.ExpectNoError(framework.CheckTestingNSDeletedExcept(cs, ns)) diff --git a/test/e2e/scheduling/predicates.go b/test/e2e/scheduling/predicates.go index e02667bb527..6464a323216 100644 --- a/test/e2e/scheduling/predicates.go +++ b/test/e2e/scheduling/predicates.go @@ -86,8 +86,12 @@ var _ = SIGDescribe("SchedulerPredicates [Serial]", func() { var err error framework.AllNodesReady(cs, time.Minute) - masterNodes, nodeList, err = e2enode.GetMasterAndWorkerNodesOrDie(cs) - framework.ExpectNoError(err) + masterNodes, nodeList, err = e2enode.GetMasterAndWorkerNodes(cs) + if err != nil { + e2elog.Logf("Unexpected error occurred: %v", err) + } + // TODO: write a wrapper for ExpectNoErrorWithOffset() + framework.ExpectNoErrorWithOffset(0, err) err = framework.CheckTestingNSDeletedExcept(cs, ns) framework.ExpectNoError(err) diff --git a/test/e2e/scheduling/preemption.go b/test/e2e/scheduling/preemption.go index f2fdeea5f7f..b46783cead3 100644 --- a/test/e2e/scheduling/preemption.go +++ b/test/e2e/scheduling/preemption.go @@ -84,8 +84,12 @@ var _ = SIGDescribe("SchedulerPreemption [Serial]", func() { } e2enode.WaitForTotalHealthy(cs, time.Minute) - masterNodes, nodeList, err = e2enode.GetMasterAndWorkerNodesOrDie(cs) - framework.ExpectNoError(err) + masterNodes, nodeList, err = e2enode.GetMasterAndWorkerNodes(cs) + if err != nil { + e2elog.Logf("Unexpected error occurred: %v", err) + } + // TODO: write a wrapper for ExpectNoErrorWithOffset() + framework.ExpectNoErrorWithOffset(0, err) err = framework.CheckTestingNSDeletedExcept(cs, ns) framework.ExpectNoError(err) diff --git a/test/e2e/scheduling/priorities.go b/test/e2e/scheduling/priorities.go index 8280f79e51c..7651fbc3f18 100644 --- a/test/e2e/scheduling/priorities.go +++ b/test/e2e/scheduling/priorities.go @@ -80,8 +80,12 @@ var _ = SIGDescribe("SchedulerPriorities [Serial]", func() { var err error e2enode.WaitForTotalHealthy(cs, time.Minute) - _, nodeList, err = e2enode.GetMasterAndWorkerNodesOrDie(cs) - framework.ExpectNoError(err) + _, nodeList, err = e2enode.GetMasterAndWorkerNodes(cs) + if err != nil { + e2elog.Logf("Unexpected error occurred: %v", err) + } + // TODO: write a wrapper for ExpectNoErrorWithOffset() + framework.ExpectNoErrorWithOffset(0, err) err = framework.CheckTestingNSDeletedExcept(cs, ns) framework.ExpectNoError(err) diff --git a/test/e2e/storage/vsphere/vsphere_volume_vsan_policy.go b/test/e2e/storage/vsphere/vsphere_volume_vsan_policy.go index 5883756c973..df2c7bd23bf 100644 --- a/test/e2e/storage/vsphere/vsphere_volume_vsan_policy.go +++ b/test/e2e/storage/vsphere/vsphere_volume_vsan_policy.go @@ -111,8 +111,12 @@ var _ = utils.SIGDescribe("Storage Policy Based Volume Provisioning [Feature:vsp if !(len(nodeList.Items) > 0) { e2elog.Failf("Unable to find ready and schedulable Node") } - masternodes, _, err := e2enode.GetMasterAndWorkerNodesOrDie(client) - framework.ExpectNoError(err) + masternodes, _, err := e2enode.GetMasterAndWorkerNodes(client) + if err != nil { + e2elog.Logf("Unexpected error occurred: %v", err) + } + // TODO: write a wrapper for ExpectNoErrorWithOffset() + framework.ExpectNoErrorWithOffset(0, err) gomega.Expect(masternodes).NotTo(gomega.BeEmpty()) masterNode = masternodes.List()[0] }) diff --git a/test/e2e/windows/service.go b/test/e2e/windows/service.go index c13018edc75..8e67dbaeee6 100644 --- a/test/e2e/windows/service.go +++ b/test/e2e/windows/service.go @@ -22,6 +22,7 @@ import ( v1 "k8s.io/api/core/v1" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/test/e2e/framework" + e2elog "k8s.io/kubernetes/test/e2e/framework/log" e2enode "k8s.io/kubernetes/test/e2e/framework/node" "github.com/onsi/ginkgo" @@ -43,7 +44,11 @@ var _ = SIGDescribe("Services", func() { jig := framework.NewServiceTestJig(cs, serviceName) nodeIP, err := e2enode.PickIP(jig.Client) - framework.ExpectNoError(err) + if err != nil { + e2elog.Logf("Unexpected error occurred: %v", err) + } + // TODO: write a wrapper for ExpectNoErrorWithOffset() + framework.ExpectNoErrorWithOffset(0, err) ginkgo.By("creating service " + serviceName + " with type=NodePort in namespace " + ns) service := jig.CreateTCPServiceOrFail(ns, func(svc *v1.Service) {