parent
							
								
									f987571b64
								
							
						
					
					
						commit
						d18884a0b9
					
				|  | @ -149,13 +149,7 @@ func (r *HorizontalRunnerAutoscalerReconciler) Reconcile(req ctrl.Request) (ctrl | |||
| 			updated = hra.DeepCopy() | ||||
| 		} | ||||
| 
 | ||||
| 		var cacheEntries []v1alpha1.CacheEntry | ||||
| 
 | ||||
| 		for _, ent := range updated.Status.CacheEntries { | ||||
| 			if ent.ExpirationTime.Before(&metav1.Time{Time: now}) { | ||||
| 				cacheEntries = append(cacheEntries, ent) | ||||
| 			} | ||||
| 		} | ||||
| 		cacheEntries := getValidCacheEntries(updated, now) | ||||
| 
 | ||||
| 		var cacheDuration time.Duration | ||||
| 
 | ||||
|  | @ -183,6 +177,18 @@ func (r *HorizontalRunnerAutoscalerReconciler) Reconcile(req ctrl.Request) (ctrl | |||
| 	return ctrl.Result{}, nil | ||||
| } | ||||
| 
 | ||||
| func getValidCacheEntries(hra *v1alpha1.HorizontalRunnerAutoscaler, now time.Time) []v1alpha1.CacheEntry { | ||||
| 	var cacheEntries []v1alpha1.CacheEntry | ||||
| 
 | ||||
| 	for _, ent := range hra.Status.CacheEntries { | ||||
| 		if ent.ExpirationTime.After(now) { | ||||
| 			cacheEntries = append(cacheEntries, ent) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return cacheEntries | ||||
| } | ||||
| 
 | ||||
| func (r *HorizontalRunnerAutoscalerReconciler) SetupWithManager(mgr ctrl.Manager) error { | ||||
| 	name := "horizontalrunnerautoscaler-controller" | ||||
| 	if r.Name != "" { | ||||
|  |  | |||
|  | @ -0,0 +1,49 @@ | |||
| package controllers | ||||
| 
 | ||||
| import ( | ||||
| 	"github.com/google/go-cmp/cmp" | ||||
| 	actionsv1alpha1 "github.com/summerwind/actions-runner-controller/api/v1alpha1" | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 	"testing" | ||||
| 	"time" | ||||
| ) | ||||
| 
 | ||||
| func TestGetValidCacheEntries(t *testing.T) { | ||||
| 	now := time.Now() | ||||
| 
 | ||||
| 	hra := &actionsv1alpha1.HorizontalRunnerAutoscaler{ | ||||
| 		Status: actionsv1alpha1.HorizontalRunnerAutoscalerStatus{ | ||||
| 			CacheEntries: []actionsv1alpha1.CacheEntry{ | ||||
| 				{ | ||||
| 					Key:            "foo", | ||||
| 					Value:          1, | ||||
| 					ExpirationTime: metav1.Time{Time: now.Add(-time.Second)}, | ||||
| 				}, | ||||
| 				{ | ||||
| 					Key:            "foo", | ||||
| 					Value:          2, | ||||
| 					ExpirationTime: metav1.Time{Time: now}, | ||||
| 				}, | ||||
| 				{ | ||||
| 					Key:            "foo", | ||||
| 					Value:          3, | ||||
| 					ExpirationTime: metav1.Time{Time: now.Add(time.Second)}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	revs := getValidCacheEntries(hra, now) | ||||
| 
 | ||||
| 	counts := map[string]int{} | ||||
| 
 | ||||
| 	for _, r := range revs { | ||||
| 		counts[r.Key] += r.Value | ||||
| 	} | ||||
| 
 | ||||
| 	want := map[string]int{"foo": 3} | ||||
| 
 | ||||
| 	if d := cmp.Diff(want, counts); d != "" { | ||||
| 		t.Errorf("%s", d) | ||||
| 	} | ||||
| } | ||||
		Loading…
	
		Reference in New Issue