Parcourir la source

fix monthly/hourly discrepancy on certain fields

AjayTripathy il y a 5 ans
Parent
commit
479428f7f3
1 fichiers modifiés avec 9 ajouts et 0 suppressions
  1. 9 0
      pkg/cloud/providerconfig.go

+ 9 - 0
pkg/cloud/providerconfig.go

@@ -6,6 +6,7 @@ import (
 	"io/ioutil"
 	"os"
 	"reflect"
+	"strconv"
 	"strings"
 	"sync"
 
@@ -138,6 +139,14 @@ func (pc *ProviderConfig) UpdateFromMap(a map[string]string) (*CustomPricing, er
 		for k, v := range a {
 			// Just so we consistently supply / receive the same values, uppercase the first letter.
 			kUpper := strings.Title(k)
+			if kUpper == "CPU" || kUpper == "SpotCPU" || kUpper == "RAM" || kUpper == "SpotRAM" || kUpper == "GPU" || kUpper == "Storage" {
+				val, err := strconv.ParseFloat(v, 64)
+				if err != nil {
+					return fmt.Errorf("Unable to parse CPU from string to float: %s", err.Error())
+				}
+				v = fmt.Sprintf("%f", val/730)
+			}
+
 			err := SetCustomPricingField(c, kUpper, v)
 			if err != nil {
 				return err