|
|
@@ -342,68 +342,70 @@ func (az *Azure) DownloadPricingData() error {
|
|
|
baseCPUPrice := c.CPU
|
|
|
|
|
|
for _, v := range *result.Meters {
|
|
|
- region, err := toRegionID(*v.MeterRegion, regions)
|
|
|
- if err != nil {
|
|
|
- continue
|
|
|
- }
|
|
|
-
|
|
|
- meterName := *v.MeterName
|
|
|
- sc := *v.MeterSubCategory
|
|
|
+ if !strings.Contains(*v.MeterSubCategory, "Windows") {
|
|
|
|
|
|
- // not available now
|
|
|
- if strings.Contains(sc, "Promo") {
|
|
|
- continue
|
|
|
- }
|
|
|
+ region, err := toRegionID(*v.MeterRegion, regions)
|
|
|
+ if err != nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
|
|
|
- usageType := ""
|
|
|
- if !strings.Contains(meterName, "Low Priority") {
|
|
|
- usageType = "ondemand"
|
|
|
- } else {
|
|
|
- usageType = "preemptible"
|
|
|
- }
|
|
|
+ meterName := *v.MeterName
|
|
|
+ sc := *v.MeterSubCategory
|
|
|
|
|
|
- var instanceTypes []string
|
|
|
- name := strings.TrimSuffix(meterName, " Low Priority")
|
|
|
- instanceType := strings.Split(name, "/")
|
|
|
- for _, it := range instanceType {
|
|
|
- instanceTypes = append(instanceTypes, strings.Replace(it, " ", "_", 1))
|
|
|
- }
|
|
|
+ // not available now
|
|
|
+ if strings.Contains(sc, "Promo") {
|
|
|
+ continue
|
|
|
+ }
|
|
|
|
|
|
- instanceTypes = transformMachineType(sc, instanceTypes)
|
|
|
- if strings.Contains(name, "Expired") {
|
|
|
- instanceTypes = []string{}
|
|
|
- }
|
|
|
+ usageType := ""
|
|
|
+ if !strings.Contains(meterName, "Low Priority") {
|
|
|
+ usageType = "ondemand"
|
|
|
+ } else {
|
|
|
+ usageType = "preemptible"
|
|
|
+ }
|
|
|
|
|
|
- var priceInUsd float64
|
|
|
+ var instanceTypes []string
|
|
|
+ name := strings.TrimSuffix(meterName, " Low Priority")
|
|
|
+ instanceType := strings.Split(name, "/")
|
|
|
+ for _, it := range instanceType {
|
|
|
+ instanceTypes = append(instanceTypes, strings.Replace(it, " ", "_", 1))
|
|
|
+ }
|
|
|
|
|
|
- if len(v.MeterRates) < 1 {
|
|
|
- klog.V(1).Infof("missing rate info %+v", map[string]interface{}{"MeterSubCategory": *v.MeterSubCategory, "region": region})
|
|
|
- continue
|
|
|
- }
|
|
|
- for _, rate := range v.MeterRates {
|
|
|
- priceInUsd += *rate
|
|
|
- }
|
|
|
- priceStr := fmt.Sprintf("%f", priceInUsd)
|
|
|
- for _, instanceType := range instanceTypes {
|
|
|
- klog.V(1).Infof("region: %s \n", region)
|
|
|
- key := fmt.Sprintf("%s,%s,%s", region, instanceType, usageType)
|
|
|
- allPrices[key] = &Node{
|
|
|
- Cost: priceStr,
|
|
|
- BaseCPUPrice: baseCPUPrice,
|
|
|
+ instanceTypes = transformMachineType(sc, instanceTypes)
|
|
|
+ if strings.Contains(name, "Expired") {
|
|
|
+ instanceTypes = []string{}
|
|
|
}
|
|
|
|
|
|
- mts := getMachineTypeVariants(instanceType)
|
|
|
- for _, mt := range mts {
|
|
|
- key := fmt.Sprintf("%s,%s,%s", region, mt, usageType)
|
|
|
+ var priceInUsd float64
|
|
|
+
|
|
|
+ if len(v.MeterRates) < 1 {
|
|
|
+ klog.V(1).Infof("missing rate info %+v", map[string]interface{}{"MeterSubCategory": *v.MeterSubCategory, "region": region})
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ for _, rate := range v.MeterRates {
|
|
|
+ priceInUsd += *rate
|
|
|
+ }
|
|
|
+ priceStr := fmt.Sprintf("%f", priceInUsd)
|
|
|
+ for _, instanceType := range instanceTypes {
|
|
|
+ klog.V(1).Infof("region: %s \n", region)
|
|
|
+ key := fmt.Sprintf("%s,%s,%s", region, instanceType, usageType)
|
|
|
allPrices[key] = &Node{
|
|
|
Cost: priceStr,
|
|
|
BaseCPUPrice: baseCPUPrice,
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
+ mts := getMachineTypeVariants(instanceType)
|
|
|
+ for _, mt := range mts {
|
|
|
+ key := fmt.Sprintf("%s,%s,%s", region, mt, usageType)
|
|
|
+ allPrices[key] = &Node{
|
|
|
+ Cost: priceStr,
|
|
|
+ BaseCPUPrice: baseCPUPrice,
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
az.allPrices = allPrices
|
|
|
return nil
|
|
|
}
|