Skip to content

Commit 1f4899d

Browse files
committed
test(promClientController): unit test the implementation
1 parent df00189 commit 1f4899d

File tree

2 files changed

+442
-5
lines changed

2 files changed

+442
-5
lines changed

pkg/descheduler/descheduler.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,20 +91,24 @@ type descheduler struct {
9191
promClientCtrl *promClientController
9292
}
9393

94+
type createPrometheusClientFunc func(url, token string) (promapi.Client, *http.Transport, error)
95+
9496
type promClientController struct {
9597
promClient promapi.Client
9698
previousPrometheusClientTransport *http.Transport
9799
queue workqueue.RateLimitingInterface
98100
currentPrometheusAuthToken string
99101
namespacedSecretsLister corev1listers.SecretNamespaceLister
100102
metricsProviders map[api.MetricsSource]*api.MetricsProvider
103+
createPrometheusClient createPrometheusClientFunc
101104
}
102105

103106
func newPromClientController(prometheusClient promapi.Client, metricsProviders map[api.MetricsSource]*api.MetricsProvider) *promClientController {
104107
return &promClientController{
105-
promClient: prometheusClient,
106-
queue: workqueue.NewRateLimitingQueueWithConfig(workqueue.DefaultControllerRateLimiter(), workqueue.RateLimitingQueueConfig{Name: "descheduler"}),
107-
metricsProviders: metricsProviders,
108+
promClient: prometheusClient,
109+
queue: workqueue.NewRateLimitingQueueWithConfig(workqueue.DefaultControllerRateLimiter(), workqueue.RateLimitingQueueConfig{Name: "descheduler"}),
110+
metricsProviders: metricsProviders,
111+
createPrometheusClient: client.CreatePrometheusClient,
108112
}
109113
}
110114

@@ -221,7 +225,7 @@ func (d *promClientController) reconcileInClusterSAToken() error {
221225
if err == nil {
222226
if d.currentPrometheusAuthToken != cfg.BearerToken {
223227
klog.V(2).Infof("Creating Prometheus client (with SA token)")
224-
prometheusClient, transport, err := client.CreatePrometheusClient(d.metricsProviders[api.PrometheusMetrics].Prometheus.URL, cfg.BearerToken)
228+
prometheusClient, transport, err := d.createPrometheusClient(d.metricsProviders[api.PrometheusMetrics].Prometheus.URL, cfg.BearerToken)
225229
if err != nil {
226230
return fmt.Errorf("unable to create a prometheus client: %v", err)
227231
}
@@ -305,7 +309,7 @@ func (d *promClientController) sync() error {
305309
}
306310

307311
klog.V(2).Infof("authentication secret token updated, recreating prometheus client")
308-
prometheusClient, transport, err := client.CreatePrometheusClient(prometheusConfig.URL, authToken)
312+
prometheusClient, transport, err := d.createPrometheusClient(prometheusConfig.URL, authToken)
309313
if err != nil {
310314
return fmt.Errorf("unable to create a prometheus client: %v", err)
311315
}

0 commit comments

Comments
 (0)