Ver Fonte

send error message back instead of changing param

Signed-off-by: Alex Meijer <ameijer@kubecost.com>
Alex Meijer há 3 anos atrás
pai
commit
13c3dfc89d
2 ficheiros alterados com 10 adições e 2 exclusões
  1. 6 1
      pkg/costmodel/aggregation.go
  2. 4 1
      pkg/costmodel/costmodel.go

+ 6 - 1
pkg/costmodel/aggregation.go

@@ -2252,7 +2252,12 @@ func (a *Accesses) ComputeAllocationHandler(w http.ResponseWriter, r *http.Reque
 
 	asr, err := a.Model.QueryAllocation(window, resolution, step, aggregateBy, includeIdle, idleByNode, includeProportionalAssetResourceCosts)
 	if err != nil {
-		WriteError(w, InternalServerError(err.Error()))
+		if strings.Contains(strings.ToLower(err.Error()), "bad request") {
+			WriteError(w, BadRequest(err.Error()))
+		} else {
+			WriteError(w, InternalServerError(err.Error()))
+		}
+
 		return
 	}
 

+ 4 - 1
pkg/costmodel/costmodel.go

@@ -1,6 +1,7 @@
 package costmodel
 
 import (
+	"errors"
 	"fmt"
 	"math"
 	"regexp"
@@ -2302,7 +2303,9 @@ func (cm *CostModel) QueryAllocation(window kubecost.Window, resolution, step ti
 
 	// Idle is required for proportional asset costs
 	if includeProportionalAssetResourceCosts {
-		includeIdle = true
+		if !includeIdle {
+			return nil, errors.New("bad request - includeIdle must be set true if includeProportionalAssetResourceCosts is true")
+		}
 	}
 
 	// Begin with empty response