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

Add suppport for capitalized types in v1 asset

Signed-off-by: Michael Dresser <michaelmdresser@gmail.com>
Michael Dresser 2 лет назад
Родитель
Сommit
7a2dae6ffd
2 измененных файлов с 23 добавлено и 0 удалено
  1. 18 0
      pkg/util/filterutil/asset_test.go
  2. 5 0
      pkg/util/filterutil/filterutil.go

+ 18 - 0
pkg/util/filterutil/asset_test.go

@@ -50,6 +50,24 @@ func TestAssetFiltersFromParamsV1(t *testing.T) {
 				&kubecost.SharedAsset{},
 			},
 		},
+		{
+			name: "type: node capitalized",
+			qp: map[string]string{
+				ParamFilterTypes: "Node",
+			},
+			shouldMatch: []kubecost.Asset{
+				&kubecost.Node{},
+			},
+			shouldNotMatch: []kubecost.Asset{
+				&kubecost.Any{},
+				&kubecost.Cloud{},
+				&kubecost.LoadBalancer{},
+				&kubecost.ClusterManagement{},
+				&kubecost.Disk{},
+				&kubecost.Network{},
+				&kubecost.SharedAsset{},
+			},
+		},
 		{
 			name: "type: disk",
 			qp: map[string]string{

+ 5 - 0
pkg/util/filterutil/filterutil.go

@@ -457,6 +457,11 @@ func AssetFilterFromParamsV1(
 	}
 
 	if raw := qp.GetList(ParamFilterTypes, ","); len(raw) > 0 {
+		// Types have a special situation where we allow users to enter them
+		// capitalized or uncapitalized
+		for i := range raw {
+			raw[i] = strings.ToLower(raw[i])
+		}
 		filterOps = push(filterOps, filterV1SingleValueFromList(raw, assetfilter.FieldType))
 	}