mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-10-30 18:23:35 +08:00
region capability: fix regional public network not found
This commit is contained in:
@@ -50,7 +50,7 @@ var (
|
||||
NETWORK_TYPE_IPMI,
|
||||
}
|
||||
|
||||
REGINAL_NETWORK_PROVIDERS = []string{
|
||||
REGIONAL_NETWORK_PROVIDERS = []string{
|
||||
CLOUD_PROVIDER_HUAWEI,
|
||||
CLOUD_PROVIDER_UCLOUD,
|
||||
}
|
||||
|
||||
@@ -350,6 +350,10 @@ func getNetworkPublicCount(region *SCloudregion, zone *SZone, domainId string) (
|
||||
}
|
||||
|
||||
func getNetworkCountByFilter(region *SCloudregion, zone *SZone, domainId string, isPublic tristate.TriState) (int, error) {
|
||||
if zone != nil && region == nil {
|
||||
region = zone.GetRegion()
|
||||
}
|
||||
|
||||
vpcs := VpcManager.Query().SubQuery()
|
||||
wires := WireManager.Query().SubQuery()
|
||||
networks := NetworkManager.Query().SubQuery()
|
||||
@@ -363,11 +367,21 @@ func getNetworkCountByFilter(region *SCloudregion, zone *SZone, domainId string,
|
||||
}
|
||||
}
|
||||
q = q.Join(wires, sqlchemy.Equals(networks.Field("wire_id"), wires.Field("id")))
|
||||
|
||||
if region != nil {
|
||||
subq := getRegionZoneSubq(region)
|
||||
q = q.Filter(sqlchemy.In(wires.Field("zone_id"), subq))
|
||||
if utils.IsInStringArray(region.Provider, api.REGIONAL_NETWORK_PROVIDERS) {
|
||||
wires := WireManager.Query().SubQuery()
|
||||
vpcs := VpcManager.Query().SubQuery()
|
||||
subq := wires.Query(wires.Field("id")).
|
||||
Join(vpcs, sqlchemy.Equals(wires.Field("vpc_id"), vpcs.Field("id"))).
|
||||
Filter(sqlchemy.Equals(vpcs.Field("cloudregion_id"), region.Id))
|
||||
q = q.Filter(sqlchemy.In(q.Field("wire_id"), subq))
|
||||
} else {
|
||||
subq := getRegionZoneSubq(region)
|
||||
q = q.Filter(sqlchemy.In(wires.Field("zone_id"), subq))
|
||||
}
|
||||
}
|
||||
if zone != nil {
|
||||
if zone != nil && !utils.IsInStringArray(region.Provider, api.REGIONAL_NETWORK_PROVIDERS) {
|
||||
q = q.Filter(sqlchemy.Equals(wires.Field("zone_id"), zone.Id))
|
||||
}
|
||||
if len(domainId) > 0 {
|
||||
|
||||
@@ -1580,7 +1580,7 @@ func (manager *SNetworkManager) ListItemFilter(ctx context.Context, q *sqlchemy.
|
||||
}
|
||||
zone := zoneObj.(*SZone)
|
||||
region := zone.GetRegion()
|
||||
if utils.IsInStringArray(region.Provider, api.REGINAL_NETWORK_PROVIDERS) {
|
||||
if utils.IsInStringArray(region.Provider, api.REGIONAL_NETWORK_PROVIDERS) {
|
||||
wires := WireManager.Query().SubQuery()
|
||||
vpcs := VpcManager.Query().SubQuery()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user