Просмотр исходного кода

Merge branch 'develop' into bolt/summary-no-clone

Matt Bolt 4 лет назад
Родитель
Сommit
3814e93c38
2 измененных файлов с 29 добавлено и 3 удалено
  1. 3 3
      pkg/kubecost/totals.go
  2. 26 0
      pkg/kubecost/totals_test.go

+ 3 - 3
pkg/kubecost/totals.go

@@ -484,15 +484,15 @@ func ComputeIdleCoefficients(shareSplit, key string, cpuCost, gpuCost, ramCost f
 		return coeff, coeff, coeff
 	}
 
-	if allocationTotals[key].CPUCost > 0 {
+	if allocationTotals[key].TotalCPUCost() > 0 {
 		cpuCoeff = cpuCost / allocationTotals[key].TotalCPUCost()
 	}
 
-	if allocationTotals[key].GPUCost > 0 {
+	if allocationTotals[key].TotalGPUCost() > 0 {
 		gpuCoeff = gpuCost / allocationTotals[key].TotalGPUCost()
 	}
 
-	if allocationTotals[key].RAMCost > 0 {
+	if allocationTotals[key].TotalRAMCost() > 0 {
 		ramCoeff = ramCost / allocationTotals[key].TotalRAMCost()
 	}
 

+ 26 - 0
pkg/kubecost/totals_test.go

@@ -0,0 +1,26 @@
+package kubecost
+
+import (
+	"math"
+	"testing"
+)
+
+func TestComputeIdleCoefficients(t *testing.T) {
+	// test that passing totals where total + adjustment == 0 returns a 0 coefficient
+	at := make(map[string]*AllocationTotals)
+
+	at["item1"] = &AllocationTotals{
+		CPUCost:           1,
+		CPUCostAdjustment: -1,
+		RAMCost:           2,
+		RAMCostAdjustment: -2,
+		GPUCost:           3,
+		GPUCostAdjustment: -3,
+	}
+
+	cpu, gpu, ram := ComputeIdleCoefficients("weighted", "item1", 100, 100, 100, at)
+
+	if math.IsNaN(cpu) || math.IsNaN(gpu) || math.IsNaN(ram) || math.IsInf(cpu, 0) || math.IsInf(gpu, 0) || math.IsInf(ram, 0) {
+		t.Errorf("Idle coefficients should not be NaN or Inf")
+	}
+}