mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 10:46:58 +08:00
fix(region): ignore invalid zone id skus
This commit is contained in:
@@ -26,6 +26,7 @@ import (
|
||||
"yunion.io/x/pkg/errors"
|
||||
"yunion.io/x/pkg/util/compare"
|
||||
v "yunion.io/x/pkg/util/version"
|
||||
"yunion.io/x/pkg/utils"
|
||||
|
||||
apis "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db"
|
||||
@@ -88,6 +89,8 @@ func (self *SSkuResourcesMeta) GetDBInstanceSkusByRegionExternalId(regionExterna
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "getSkusByRegion")
|
||||
}
|
||||
|
||||
noZoneIds, cnt := []string{}, 0
|
||||
for _, obj := range objs {
|
||||
sku := SDBInstanceSku{}
|
||||
sku.SetModelManager(DBInstanceSkuManager, &sku)
|
||||
@@ -98,7 +101,10 @@ func (self *SSkuResourcesMeta) GetDBInstanceSkusByRegionExternalId(regionExterna
|
||||
if len(sku.Zone1) > 0 {
|
||||
zoneId := self.getZoneIdBySuffix(zoneMaps, sku.Zone1) // Huawei rds sku zone1 maybe is cn-north-4f
|
||||
if len(zoneId) == 0 {
|
||||
log.Warningf("invalid sku %s(%s) %s zone1: %s", sku.Name, sku.Id, sku.CloudregionId, sku.Zone1)
|
||||
if !utils.IsInStringArray(sku.Zone1, noZoneIds) {
|
||||
noZoneIds = append(noZoneIds, sku.Zone1)
|
||||
}
|
||||
cnt++
|
||||
continue
|
||||
}
|
||||
sku.Zone1 = zoneId
|
||||
@@ -107,7 +113,10 @@ func (self *SSkuResourcesMeta) GetDBInstanceSkusByRegionExternalId(regionExterna
|
||||
if len(sku.Zone2) > 0 {
|
||||
zoneId := self.getZoneIdBySuffix(zoneMaps, sku.Zone2)
|
||||
if len(zoneId) == 0 {
|
||||
log.Warningf("invalid sku %s(%s) %s zone2: %s", sku.Name, sku.Id, sku.CloudregionId, sku.Zone2)
|
||||
if !utils.IsInStringArray(sku.Zone2, noZoneIds) {
|
||||
noZoneIds = append(noZoneIds, sku.Zone2)
|
||||
}
|
||||
cnt++
|
||||
continue
|
||||
}
|
||||
sku.Zone2 = zoneId
|
||||
@@ -116,7 +125,10 @@ func (self *SSkuResourcesMeta) GetDBInstanceSkusByRegionExternalId(regionExterna
|
||||
if len(sku.Zone3) > 0 {
|
||||
zoneId := self.getZoneIdBySuffix(zoneMaps, sku.Zone3)
|
||||
if len(zoneId) == 0 {
|
||||
log.Warningf("invalid sku %s(%s) %s zone3: %s", sku.Name, sku.Id, sku.CloudregionId, sku.Zone3)
|
||||
if !utils.IsInStringArray(sku.Zone3, noZoneIds) {
|
||||
noZoneIds = append(noZoneIds, sku.Zone3)
|
||||
}
|
||||
cnt++
|
||||
continue
|
||||
}
|
||||
sku.Zone3 = zoneId
|
||||
@@ -127,6 +139,9 @@ func (self *SSkuResourcesMeta) GetDBInstanceSkusByRegionExternalId(regionExterna
|
||||
|
||||
result = append(result, sku)
|
||||
}
|
||||
if len(noZoneIds) > 0 {
|
||||
log.Warningf("can not fetch rds sku %d zone %s for %s", cnt, noZoneIds, regionExternalId)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
@@ -140,6 +155,7 @@ func (self *SSkuResourcesMeta) GetNatSkusByRegionExternalId(regionExternalId str
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "getSkusByRegion")
|
||||
}
|
||||
noZoneIds, cnt := []string{}, 0
|
||||
for _, obj := range objs {
|
||||
sku := SNatSku{}
|
||||
sku.SetModelManager(NatSkuManager, &sku)
|
||||
@@ -152,7 +168,10 @@ func (self *SSkuResourcesMeta) GetNatSkusByRegionExternalId(regionExternalId str
|
||||
for _, zoneExtId := range strings.Split(sku.ZoneIds, ",") {
|
||||
zoneId := self.getZoneIdBySuffix(zoneMaps, zoneExtId) // Huawei rds sku zone1 maybe is cn-north-4f
|
||||
if len(zoneId) == 0 {
|
||||
log.Warningf("invalid nat sku %s(%s) %s zone: %s", sku.Name, sku.Id, sku.CloudregionId, zoneExtId)
|
||||
if !utils.IsInStringArray(zoneExtId, noZoneIds) {
|
||||
noZoneIds = append(noZoneIds, zoneExtId)
|
||||
}
|
||||
cnt++
|
||||
continue
|
||||
}
|
||||
zoneIds = append(zoneIds, zoneId)
|
||||
@@ -161,9 +180,11 @@ func (self *SSkuResourcesMeta) GetNatSkusByRegionExternalId(regionExternalId str
|
||||
}
|
||||
sku.Id = ""
|
||||
sku.CloudregionId = regionId
|
||||
|
||||
result = append(result, sku)
|
||||
}
|
||||
if len(noZoneIds) > 0 {
|
||||
log.Warningf("can not fetch nat sku %d zone %s for %s", cnt, noZoneIds, regionExternalId)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
@@ -177,6 +198,7 @@ func (self *SSkuResourcesMeta) GetNasSkusByRegionExternalId(regionExternalId str
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "getSkusByRegion")
|
||||
}
|
||||
noZoneIds, cnt := []string{}, 0
|
||||
for _, obj := range objs {
|
||||
sku := SNasSku{}
|
||||
sku.SetModelManager(NasSkuManager, &sku)
|
||||
@@ -189,7 +211,10 @@ func (self *SSkuResourcesMeta) GetNasSkusByRegionExternalId(regionExternalId str
|
||||
for _, zoneExtId := range strings.Split(sku.ZoneIds, ",") {
|
||||
zoneId := self.getZoneIdBySuffix(zoneMaps, zoneExtId) // Huawei rds sku zone1 maybe is cn-north-4f
|
||||
if len(zoneId) == 0 {
|
||||
log.Warningf("invalid nat sku %s(%s) %s zone: %s", sku.Name, sku.Id, sku.CloudregionId, zoneExtId)
|
||||
if !utils.IsInStringArray(zoneExtId, noZoneIds) {
|
||||
noZoneIds = append(noZoneIds, zoneExtId)
|
||||
}
|
||||
cnt++
|
||||
continue
|
||||
}
|
||||
zoneIds = append(zoneIds, zoneId)
|
||||
@@ -198,9 +223,11 @@ func (self *SSkuResourcesMeta) GetNasSkusByRegionExternalId(regionExternalId str
|
||||
}
|
||||
sku.Id = ""
|
||||
sku.CloudregionId = regionId
|
||||
|
||||
result = append(result, sku)
|
||||
}
|
||||
if len(noZoneIds) > 0 {
|
||||
log.Warningf("can not fetch nas sku %d zone %s for %s", cnt, noZoneIds, regionExternalId)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
@@ -238,6 +265,7 @@ func (self *SSkuResourcesMeta) GetServerSkusByRegionExternalId(regionExternalId
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "getSkusByRegion")
|
||||
}
|
||||
noZoneIds, cnt := []string{}, 0
|
||||
for _, obj := range objs {
|
||||
sku := SServerSku{}
|
||||
sku.SetModelManager(ServerSkuManager, &sku)
|
||||
@@ -248,7 +276,11 @@ func (self *SSkuResourcesMeta) GetServerSkusByRegionExternalId(regionExternalId
|
||||
if len(sku.ZoneId) > 0 {
|
||||
zoneId := self.getZoneIdBySuffix(zoneMaps, sku.ZoneId)
|
||||
if len(zoneId) == 0 {
|
||||
return nil, fmt.Errorf("invalid sku %s %s zoneId: %s", sku.Id, sku.CloudregionId, sku.ZoneId)
|
||||
if !utils.IsInStringArray(sku.ZoneId, noZoneIds) {
|
||||
noZoneIds = append(noZoneIds, sku.ZoneId)
|
||||
}
|
||||
cnt++
|
||||
continue
|
||||
}
|
||||
sku.ZoneId = zoneId
|
||||
}
|
||||
@@ -256,6 +288,9 @@ func (self *SSkuResourcesMeta) GetServerSkusByRegionExternalId(regionExternalId
|
||||
sku.CloudregionId = regionId
|
||||
result = append(result, sku)
|
||||
}
|
||||
if len(noZoneIds) > 0 {
|
||||
log.Warningf("can not fetch server sku %d zone id %s for region %s", cnt, noZoneIds, regionExternalId)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
@@ -286,6 +321,8 @@ func (self *SSkuResourcesMeta) GetElasticCacheSkusByRegionExternalId(regionExter
|
||||
}
|
||||
result := []SElasticcacheSku{}
|
||||
|
||||
noZoneIds, cnt := []string{}, 0
|
||||
|
||||
// aliyun finance cloud
|
||||
remoteRegion := getElaticCacheSkuRegionExtId(regionExternalId)
|
||||
objs, err := self.getObjsByRegion(self.ElasticCacheBase, remoteRegion)
|
||||
@@ -302,14 +339,22 @@ func (self *SSkuResourcesMeta) GetElasticCacheSkusByRegionExternalId(regionExter
|
||||
if len(sku.ZoneId) > 0 {
|
||||
zoneId := self.getZoneIdBySuffix(zoneMaps, getElaticCacheSkuZoneId(sku.ZoneId))
|
||||
if len(zoneId) == 0 {
|
||||
return nil, fmt.Errorf("invalid sku %s %s master zoneId: %s", sku.Id, sku.CloudregionId, getElaticCacheSkuZoneId(sku.ZoneId))
|
||||
if !utils.IsInStringArray(sku.ZoneId, noZoneIds) {
|
||||
noZoneIds = append(noZoneIds, sku.ZoneId)
|
||||
}
|
||||
cnt++
|
||||
continue
|
||||
}
|
||||
sku.ZoneId = zoneId
|
||||
}
|
||||
if len(sku.SlaveZoneId) > 0 {
|
||||
zoneId := self.getZoneIdBySuffix(zoneMaps, getElaticCacheSkuZoneId(sku.SlaveZoneId))
|
||||
if len(zoneId) == 0 {
|
||||
return nil, fmt.Errorf("invalid sku %s %s slave zoneId: %s", sku.Id, sku.CloudregionId, getElaticCacheSkuZoneId(sku.SlaveZoneId))
|
||||
if !utils.IsInStringArray(sku.SlaveZoneId, noZoneIds) {
|
||||
noZoneIds = append(noZoneIds, sku.SlaveZoneId)
|
||||
}
|
||||
cnt++
|
||||
continue
|
||||
}
|
||||
sku.SlaveZoneId = zoneId
|
||||
}
|
||||
@@ -317,6 +362,9 @@ func (self *SSkuResourcesMeta) GetElasticCacheSkusByRegionExternalId(regionExter
|
||||
sku.CloudregionId = regionId
|
||||
result = append(result, sku)
|
||||
}
|
||||
if len(noZoneIds) > 0 {
|
||||
log.Warningf("can not fetch redis sku %d zone %s for %s", cnt, noZoneIds, regionExternalId)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user