mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 10:46:58 +08:00
fix: not work for network-list --zones
This commit is contained in:
@@ -559,7 +559,7 @@ func _managedResourceFilterByAccount(managerIdFieldName string, q *sqlchemy.SQue
|
||||
|
||||
func managedResourceFilterByZone(q *sqlchemy.SQuery, query api.ZonalFilterListInput, filterField string, subqFunc func() *sqlchemy.SQuery) (*sqlchemy.SQuery, error) {
|
||||
zoneList := query.ZoneList()
|
||||
if len(zoneList) > 1 {
|
||||
if len(query.Zones) >= 1 {
|
||||
zoneQ := ZoneManager.Query("id")
|
||||
zoneQ = zoneQ.Filter(sqlchemy.OR(
|
||||
sqlchemy.In(zoneQ.Field("id"), zoneList),
|
||||
|
||||
@@ -174,24 +174,26 @@ func (manager *SWireResourceBaseManager) ListItemFilter(
|
||||
return nil, errors.Wrap(err, "SVpcResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
|
||||
if len(query.Zone) > 0 {
|
||||
sq := ZoneManager.Query().SubQuery()
|
||||
q := CloudregionManager.Query()
|
||||
q = q.Join(sq, sqlchemy.Equals(sq.Field("cloudregion_id"), q.Field("id"))).Filter(sqlchemy.OR(
|
||||
sqlchemy.Equals(sq.Field("id"), query.Zone),
|
||||
sqlchemy.Equals(sq.Field("name"), query.Zone),
|
||||
))
|
||||
count, err := q.CountWithError()
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "CountWithError")
|
||||
}
|
||||
if count < 1 {
|
||||
return nil, httperrors.NewResourceNotFoundError2("zone", query.Zone)
|
||||
}
|
||||
if len(query.Zone) > 0 || len(query.Zones) > 0 {
|
||||
region := &SCloudregion{}
|
||||
err = q.First(region)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "q.First")
|
||||
if len(query.Zone) > 0 {
|
||||
sq := ZoneManager.Query().SubQuery()
|
||||
q := CloudregionManager.Query()
|
||||
q = q.Join(sq, sqlchemy.Equals(sq.Field("cloudregion_id"), q.Field("id"))).Filter(sqlchemy.OR(
|
||||
sqlchemy.Equals(sq.Field("id"), query.Zone),
|
||||
sqlchemy.Equals(sq.Field("name"), query.Zone),
|
||||
))
|
||||
count, err := q.CountWithError()
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "CountWithError")
|
||||
}
|
||||
if count < 1 {
|
||||
return nil, httperrors.NewResourceNotFoundError2("zone", query.Zone)
|
||||
}
|
||||
err = q.First(region)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "q.First")
|
||||
}
|
||||
}
|
||||
if utils.IsInStringArray(region.Provider, api.REGIONAL_NETWORK_PROVIDERS) {
|
||||
vpcQ := VpcManager.Query().SubQuery()
|
||||
|
||||
Reference in New Issue
Block a user