From 2e8da8849a83e65cc2a02f0f891c768af963b75e Mon Sep 17 00:00:00 2001
From: Markus Lehtonen <markus.lehtonen@intel.com>
Date: Thu, 17 Aug 2023 18:16:36 +0300
Subject: [PATCH] topology-gc: simplify listing of node objects

Hopefully makes the code slightly more readable.
---
 pkg/nfd-topology-gc/nfd-nrt-gc.go | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/pkg/nfd-topology-gc/nfd-nrt-gc.go b/pkg/nfd-topology-gc/nfd-nrt-gc.go
index d460db2c4..f8e6a8fe3 100644
--- a/pkg/nfd-topology-gc/nfd-nrt-gc.go
+++ b/pkg/nfd-topology-gc/nfd-nrt-gc.go
@@ -24,6 +24,7 @@ import (
 	corev1 "k8s.io/api/core/v1"
 	"k8s.io/apimachinery/pkg/api/errors"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	"k8s.io/apimachinery/pkg/labels"
 	"k8s.io/apimachinery/pkg/util/sets"
 	"k8s.io/client-go/informers"
 	"k8s.io/client-go/kubernetes"
@@ -115,15 +116,14 @@ func (n *topologyGC) deleteNodeHandler(object interface{}) {
 // garbageCollect removes all stale API objects
 func (n *topologyGC) garbageCollect() {
 	klog.InfoS("performing garbage collection")
-	objects := n.factory.Core().V1().Nodes().Informer().GetIndexer().List()
-	nodes := sets.NewString()
-	for _, object := range objects {
-		key, err := cache.MetaNamespaceKeyFunc(object)
-		if err != nil {
-			klog.ErrorS(err, "failed to create key", "object", object)
-			continue
-		}
-		nodes.Insert(key)
+	nodes, err := n.factory.Core().V1().Nodes().Lister().List(labels.Everything())
+	if err != nil {
+		klog.ErrorS(err, "failed to list Node objects")
+		return
+	}
+	nodeNames := sets.NewString()
+	for _, node := range nodes {
+		nodeNames.Insert(node.Name)
 	}
 
 	nrts, err := n.topoClient.TopologyV1alpha2().NodeResourceTopologies().List(context.TODO(), metav1.ListOptions{})
@@ -138,7 +138,7 @@ func (n *topologyGC) garbageCollect() {
 			klog.ErrorS(err, "failed to create key", "noderesourcetopology", klog.KObj(&nrt))
 			continue
 		}
-		if !nodes.Has(key) {
+		if !nodeNames.Has(key) {
 			n.deleteNRT(key)
 		}
 	}