// Filters nodes in NodeList in place, removing nodes that do not // satisfy the given condition // TODO: consider merging with pkg/client/cache.NodeLister func filterNodes(nodeList *api.NodeList, fn func(node api.Node) bool) { var l []api.Node for _, node := range nodeList.Items { if fn(node) { l = append(l, node) } } nodeList.Items = l }
} }) f := framework.NewDefaultFramework("sched-pred") BeforeEach(func() { c = f.Client ns = f.Namespace.Name nodeList = &api.NodeList{} nodes, err := c.Nodes().List(api.ListOptions{}) masterNodes = sets.NewString() for _, node := range nodes.Items { if system.IsMasterNode(&node) { masterNodes.Insert(node.Name) } else { nodeList.Items = append(nodeList.Items, node) } } err = framework.CheckTestingNSDeletedExcept(c, ns) framework.ExpectNoError(err) // Every test case in this suite assumes that cluster add-on pods stay stable and // cannot be run in parallel with any other test that touches Nodes or Pods. // It is so because we need to have precise control on what's running in the cluster. systemPods, err := framework.GetPodsInNamespace(c, ns, ignoreLabels) Expect(err).NotTo(HaveOccurred()) systemPodsNo = 0 for _, pod := range systemPods { if !masterNodes.Has(pod.Spec.NodeName) && pod.DeletionTimestamp == nil { systemPodsNo++