1
0
mirror of https://github.com/kubernetes-sigs/descheduler.git synced 2026-01-26 13:29:11 +01:00

Update rescheduler implementation.

This commit is contained in:
Avesh Agarwal
2017-07-31 20:57:56 -04:00
parent 5968d21701
commit 2285ff5c13
4 changed files with 27 additions and 44 deletions

View File

@@ -31,25 +31,29 @@ import (
// ReadyNodes returns ready nodes irrespective of whether they are
// schedulable or not.
func ReadyNodes(client clientset.Interface, stopChannel <-chan struct{}) ([]v1.Node, error) {
func ReadyNodes(client clientset.Interface, stopChannel <-chan struct{}) ([]*v1.Node, error) {
nl := getNodeLister(client, stopChannel)
nodes, err := nl.List(labels.Everything())
if err != nil {
return []v1.Node{}, err
return []*v1.Node{}, err
}
if len(nodes) == 0 {
var err error
nItems, err := client.Core().Nodes().List(metav1.ListOptions{})
if err != nil {
return []v1.Node{}, err
return []*v1.Node{}, err
}
for _, node := range nItems.Items {
nodes = append(nodes, &node)
}
return nItems.Items, nil
}
readyNodes := make([]v1.Node, 0, len(nodes))
readyNodes := make([]*v1.Node, 0, len(nodes))
for _, node := range nodes {
if IsReady(node) {
readyNodes = append(readyNodes, *node)
readyNodes = append(readyNodes, node)
}
}
return readyNodes, nil