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

fix(csvprovider): convert ProviderID to lowercase for pv (#3361)

Signed-off-by: Salwa Mohamed <51963397+jumana-s@users.noreply.github.com>
Salwa Mohamed 7 месяцев назад
Родитель
Сommit
5beea6ca53
2 измененных файлов с 47 добавлено и 1 удалено
  1. 46 0
      pkg/cloud/provider/cloud_test.go
  2. 1 1
      pkg/cloud/provider/csvprovider.go

+ 46 - 0
pkg/cloud/provider/cloud_test.go

@@ -893,3 +893,49 @@ func TestNodePriceFromCSVByClass(t *testing.T) {
 	}
 	}
 
 
 }
 }
+
+func TestPVPricing_CaseInsensitive(t *testing.T) {
+	confMan := config.NewConfigFileManager(storage.NewFileStorage("./"))
+	wantPrice := "0.1337"
+
+	c := &provider.CSVProvider{
+		CSVLocation: "../../../configs/pricing_schema_pv.csv",
+		PVMapField:  "metadata.name",
+		CustomProvider: &provider.CustomProvider{
+			Config: provider.NewProviderConfig(confMan, "../../../configs/default.json"),
+		},
+	}
+	c.DownloadPricingData()
+
+	t.Run("UppercaseInput", func(t *testing.T) {
+		pv := &clustercache.PersistentVolume{}
+		pv.Name = "PVC-08e1f205-d7a9-4430-90fc-7b3965a18c4D"
+
+		key := c.GetPVKey(pv, make(map[string]string), "")
+		resPV, err := c.PVPricing(key)
+		if err != nil {
+			t.Errorf("Error in PVPricing: %s", err.Error())
+		} else {
+			gotPrice := resPV.Cost
+			if gotPrice != wantPrice {
+				t.Errorf("Wanted price '%s' got price '%s'", wantPrice, gotPrice)
+			}
+		}
+	})
+
+	t.Run("LowercaseInput", func(t *testing.T) {
+		pv := &clustercache.PersistentVolume{}
+		pv.Name = "pvc-08e1f205-d7a9-4430-90fc-7b3965a18c4d"
+
+		key := c.GetPVKey(pv, make(map[string]string), "")
+		resPV, err := c.PVPricing(key)
+		if err != nil {
+			t.Errorf("Error in PVPricing: %s", err.Error())
+		} else {
+			gotPrice := resPV.Cost
+			if gotPrice != wantPrice {
+				t.Errorf("Wanted price '%s' got price '%s'", wantPrice, gotPrice)
+			}
+		}
+	})
+}

+ 1 - 1
pkg/cloud/provider/csvprovider.go

@@ -423,7 +423,7 @@ func (c *CSVProvider) GetPVKey(pv *clustercache.PersistentVolume, parameters map
 	id := PVValueFromMapField(c.PVMapField, pv)
 	id := PVValueFromMapField(c.PVMapField, pv)
 	return &csvPVKey{
 	return &csvPVKey{
 		Labels:                 pv.Labels,
 		Labels:                 pv.Labels,
-		ProviderID:             id,
+		ProviderID:             strings.ToLower(id),
 		StorageClassName:       pv.Spec.StorageClassName,
 		StorageClassName:       pv.Spec.StorageClassName,
 		StorageClassParameters: parameters,
 		StorageClassParameters: parameters,
 		Name:                   pv.Name,
 		Name:                   pv.Name,