Skip to content

Commit

Permalink
fix: not work for network-list --zones
Browse files Browse the repository at this point in the history
  • Loading branch information
Qu Xuan committed Jul 16, 2020
1 parent bea60df commit bf65a88
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 18 deletions.
2 changes: 1 addition & 1 deletion pkg/compute/models/managedresource.go
Expand Up @@ -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),
Expand Down
36 changes: 19 additions & 17 deletions pkg/compute/models/wireresource.go
Expand Up @@ -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()
Expand Down

0 comments on commit bf65a88

Please sign in to comment.