From cc552f2591abe07314d5510e42e1eeb6fdf4e45f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Osipiuk?= <lukaszos@google.com>
Date: Thu, 16 Jan 2020 18:49:05 +0100
Subject: [PATCH] FakeNodeInfoForNodeName

Change-Id: I014d46f338c3239ea1d1ce8452e0ecab8e7696bd
---
 .../simulator/predicates_checker_interface.go     | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/cluster-autoscaler/simulator/predicates_checker_interface.go b/cluster-autoscaler/simulator/predicates_checker_interface.go
index 63c0edeb03..ede0754285 100644
--- a/cluster-autoscaler/simulator/predicates_checker_interface.go
+++ b/cluster-autoscaler/simulator/predicates_checker_interface.go
@@ -18,6 +18,7 @@ package simulator
 
 import (
 	apiv1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	scheduler_nodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
 )
 
@@ -28,5 +29,19 @@ type PredicateChecker interface {
 	// TODO drop "nodeInfos map[string]*scheduler_nodeinfo.NodeInfo" and check against schedulerLister
 	FitsAnyNode(clusterSnapshot ClusterSnapshot, pod *apiv1.Pod, nodeInfos map[string]*scheduler_nodeinfo.NodeInfo) (string, error)
 	// TODO replace "*scheduler_nodeinfo.NodeInfo" with node name and expect nodeInfo to be part of schedulerLister
+	//      until then use FakeNodeInfoForNodeName when clusterSnapshot is passed
 	CheckPredicates(clusterSnapshot ClusterSnapshot, pod *apiv1.Pod, nodeInfo *scheduler_nodeinfo.NodeInfo) PredicateError
 }
+
+// FakeNodeInfoForNodeName is used to generate fake node info which passes just a name
+func FakeNodeInfoForNodeName(name string) *scheduler_nodeinfo.NodeInfo {
+	nodeInfo := scheduler_nodeinfo.NewNodeInfo()
+	node := &apiv1.Node{
+		ObjectMeta: metav1.ObjectMeta{
+			Name: name,
+		},
+	}
+
+	nodeInfo.SetNode(node)
+	return nodeInfo
+}
-- 
GitLab