Pass pointer to node in NodCondition

This commit is contained in:
Wojciech Tyczynski 2016-07-07 13:06:32 +02:00
parent 58c95c136f
commit 7219802ac7
6 changed files with 8 additions and 8 deletions

View File

@ -122,7 +122,7 @@ func (s *StoreToPodLister) Exists(pod *api.Pod) (bool, error) {
// NodeConditionPredicate is a function that indicates whether the given node's conditions meet // NodeConditionPredicate is a function that indicates whether the given node's conditions meet
// some set of criteria defined by the function. // some set of criteria defined by the function.
type NodeConditionPredicate func(node api.Node) bool type NodeConditionPredicate func(node *api.Node) bool
// StoreToNodeLister makes a Store have the List method of the client.NodeInterface // StoreToNodeLister makes a Store have the List method of the client.NodeInterface
// The Store must contain (only) Nodes. // The Store must contain (only) Nodes.
@ -153,9 +153,9 @@ type storeToNodeConditionLister struct {
// List returns a list of nodes that match the conditions defined by the predicate functions in the storeToNodeConditionLister. // List returns a list of nodes that match the conditions defined by the predicate functions in the storeToNodeConditionLister.
func (s storeToNodeConditionLister) List() (nodes api.NodeList, err error) { func (s storeToNodeConditionLister) List() (nodes api.NodeList, err error) {
for _, m := range s.store.List() { for _, m := range s.store.List() {
node := *m.(*api.Node) node := m.(*api.Node)
if s.predicate(node) { if s.predicate(node) {
nodes.Items = append(nodes.Items, node) nodes.Items = append(nodes.Items, *node)
} else { } else {
glog.V(5).Infof("Node %s matches none of the conditions", node.Name) glog.V(5).Infof("Node %s matches none of the conditions", node.Name)
} }

View File

@ -97,7 +97,7 @@ func TestStoreToNodeConditionLister(t *testing.T) {
store.Add(n) store.Add(n)
} }
predicate := func(node api.Node) bool { predicate := func(node *api.Node) bool {
for _, cond := range node.Status.Conditions { for _, cond := range node.Status.Conditions {
if cond.Type == api.NodeOutOfDisk && cond.Status == api.ConditionTrue { if cond.Type == api.NodeOutOfDisk && cond.Status == api.ConditionTrue {
return false return false

View File

@ -641,7 +641,7 @@ func hostsFromNodeList(list *api.NodeList) []string {
} }
func getNodeConditionPredicate() cache.NodeConditionPredicate { func getNodeConditionPredicate() cache.NodeConditionPredicate {
return func(node api.Node) bool { return func(node *api.Node) bool {
// We add the master to the node list, but its unschedulable. So we use this to filter // We add the master to the node list, but its unschedulable. So we use this to filter
// the master. // the master.
// TODO: Use a node annotation to indicate the master // TODO: Use a node annotation to indicate the master

View File

@ -319,7 +319,7 @@ func TestGetNodeConditionPredicate(t *testing.T) {
} }
pred := getNodeConditionPredicate() pred := getNodeConditionPredicate()
for _, test := range tests { for _, test := range tests {
accept := pred(test.node) accept := pred(&test.node)
if accept != test.expectAccept { if accept != test.expectAccept {
t.Errorf("Test failed for %s, expected %v, saw %v", test.name, test.expectAccept, accept) t.Errorf("Test failed for %s, expected %v, saw %v", test.name, test.expectAccept, accept)
} }

View File

@ -432,7 +432,7 @@ func (f *ConfigFactory) responsibleForPod(pod *api.Pod) bool {
} }
func getNodeConditionPredicate() cache.NodeConditionPredicate { func getNodeConditionPredicate() cache.NodeConditionPredicate {
return func(node api.Node) bool { return func(node *api.Node) bool {
for _, cond := range node.Status.Conditions { for _, cond := range node.Status.Conditions {
// We consider the node for scheduling only when its: // We consider the node for scheduling only when its:
// - NodeReady condition status is ConditionTrue, // - NodeReady condition status is ConditionTrue,

View File

@ -464,7 +464,7 @@ func TestNodeConditionPredicate(t *testing.T) {
nodeNames := []string{} nodeNames := []string{}
for _, node := range nodeList.Items { for _, node := range nodeList.Items {
if nodeFunc(node) { if nodeFunc(&node) {
nodeNames = append(nodeNames, node.Name) nodeNames = append(nodeNames, node.Name)
} }
} }