Skip to content

Commit

Permalink
fix: lb FetchCustomizedColumes fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Qiu Jian committed Apr 22, 2020
1 parent b7b4966 commit f82543e
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 6 deletions.
2 changes: 1 addition & 1 deletion pkg/apis/compute/guests.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ type ServerListInput struct {

GroupFilterListInput
SecgroupFilterListInput
DiskFilterListInput
DiskFilterListInput `"yunion:ambiguous-prefix":"storage_"`
ScalingGroupFilterListInput

// 只列出裸金属主机
Expand Down
6 changes: 5 additions & 1 deletion pkg/apis/compute/loadbalancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,11 @@ type LoadbalancerAclListInput struct {

type LoadbalancerDetails struct {
apis.VirtualResourceDetails
VpcResourceInfo

ManagedResourceInfo
CloudregionResourceInfo

VpcResourceInfoBase
ZoneResourceInfoBase
NetworkResourceInfoBase

Expand Down
49 changes: 45 additions & 4 deletions pkg/compute/models/loadbalancers.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ type SLoadbalancerManager struct {
SVpcResourceBaseManager
SZoneResourceBaseManager
SNetworkResourceBaseManager

SManagedResourceBaseManager
SCloudregionResourceBaseManager
}

var LoadbalancerManager *SLoadbalancerManager
Expand Down Expand Up @@ -137,7 +140,18 @@ func (man *SLoadbalancerManager) ListItemFilter(
if err != nil {
return nil, errors.Wrap(err, "SExternalizedResourceBaseManager.ListItemFilter")
}
q, err = man.SVpcResourceBaseManager.ListItemFilter(ctx, q, userCred, query.VpcFilterListInput)
q, err = man.SManagedResourceBaseManager.ListItemFilter(ctx, q, userCred, query.ManagedResourceListInput)
if err != nil {
return nil, errors.Wrap(err, "SManagedResourceBaseManager.ListItemFilter")
}
q, err = man.SCloudregionResourceBaseManager.ListItemFilter(ctx, q, userCred, query.RegionalFilterListInput)
if err != nil {
return nil, errors.Wrap(err, "SCloudregionResourceBaseManager.ListItemFilter")
}
vpcQuery := api.VpcFilterListInput{
VpcFilterListInputBase: query.VpcFilterListInputBase,
}
q, err = man.SVpcResourceBaseManager.ListItemFilter(ctx, q, userCred, vpcQuery)
if err != nil {
return nil, errors.Wrap(err, "SVpcResourceBaseManager.ListItemFilter")
}
Expand Down Expand Up @@ -197,7 +211,18 @@ func (man *SLoadbalancerManager) OrderByExtraFields(
if err != nil {
return nil, errors.Wrap(err, "SVirtualResourceBaseManager.OrderByExtraFields")
}
q, err = man.SVpcResourceBaseManager.OrderByExtraFields(ctx, q, userCred, query.VpcFilterListInput)
q, err = man.SManagedResourceBaseManager.ListItemFilter(ctx, q, userCred, query.ManagedResourceListInput)
if err != nil {
return nil, errors.Wrap(err, "SManagedResourceBaseManager.ListItemFilter")
}
q, err = man.SCloudregionResourceBaseManager.ListItemFilter(ctx, q, userCred, query.RegionalFilterListInput)
if err != nil {
return nil, errors.Wrap(err, "SCloudregionResourceBaseManager.ListItemFilter")
}
vpcQuery := api.VpcFilterListInput{
VpcFilterListInputBase: query.VpcFilterListInputBase,
}
q, err = man.SVpcResourceBaseManager.OrderByExtraFields(ctx, q, userCred, vpcQuery)
if err != nil {
return nil, errors.Wrap(err, "SVpcResourceBaseManager.OrderByExtraFields")
}
Expand Down Expand Up @@ -524,14 +549,18 @@ func (man *SLoadbalancerManager) FetchCustomizeColumns(
rows := make([]api.LoadbalancerDetails, len(objs))

virtRows := man.SVirtualResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList)
manRows := man.SManagedResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList)
regRows := man.SCloudregionResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList)
vpcRows := man.SVpcResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList)
zoneRows := man.SZoneResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList)
netRows := man.SNetworkResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList)

for i := range rows {
rows[i] = api.LoadbalancerDetails{
VirtualResourceDetails: virtRows[i],
VpcResourceInfo: vpcRows[i],
ManagedResourceInfo: manRows[i],
CloudregionResourceInfo: regRows[i],
VpcResourceInfoBase: vpcRows[i].VpcResourceInfoBase,
ZoneResourceInfoBase: zoneRows[i].ZoneResourceInfoBase,
NetworkResourceInfoBase: netRows[i].NetworkResourceInfoBase,
}
Expand Down Expand Up @@ -1069,7 +1098,19 @@ func (manager *SLoadbalancerManager) ListItemExportKeys(ctx context.Context,
return nil, errors.Wrap(err, "SVirtualResourceBaseManager.ListItemExportKeys")
}

if keys.ContainsAny(manager.SZoneResourceBaseManager.GetExportKeys()...) {
if keys.ContainsAny(manager.SManagedResourceBaseManager.GetExportKeys()...) {
q, err = manager.SManagedResourceBaseManager.ListItemExportKeys(ctx, q, userCred, keys)
if err != nil {
return nil, errors.Wrap(err, "SManagedResourceBaseManager.ListItemExportKeys")
}
}
if keys.ContainsAny(manager.SCloudregionResourceBaseManager.GetExportKeys()...) {
q, err = manager.SCloudregionResourceBaseManager.ListItemExportKeys(ctx, q, userCred, keys)
if err != nil {
return nil, errors.Wrap(err, "SCloudregionResourceBaseManager.ListItemExportKeys")
}
}
if keys.Contains("zone") {
q, err = manager.SZoneResourceBaseManager.ListItemExportKeys(ctx, q, userCred, keys)
if err != nil {
return nil, errors.Wrap(err, "SZoneResourceBaseManager.ListItemExportKeys")
Expand Down

0 comments on commit f82543e

Please sign in to comment.