From 80551f5f53256074126725e777de218182e46734 Mon Sep 17 00:00:00 2001 From: ioito Date: Tue, 7 Mar 2023 17:52:54 +0800 Subject: [PATCH] fix(region): lb project id --- pkg/apis/compute/loadbalancerbackend.go | 2 ++ pkg/apis/compute/loadbalancerbackendgroup.go | 2 ++ pkg/apis/compute/loadbalancerlistener.go | 7 ++++--- pkg/apis/compute/loadbalancerlistenerrule.go | 2 ++ .../models/loadbalancerbackendgroups.go | 17 +++++++++++++++++ pkg/compute/models/loadbalancerbackends.go | 17 +++++++++++++++++ .../models/loadbalancerlistenerrules.go | 16 ++++++++++++++++ pkg/compute/models/loadbalancerlisteners.go | 19 ++++++++++++++++++- 8 files changed, 78 insertions(+), 4 deletions(-) diff --git a/pkg/apis/compute/loadbalancerbackend.go b/pkg/apis/compute/loadbalancerbackend.go index 63b8341bf4..51ef3eaa35 100644 --- a/pkg/apis/compute/loadbalancerbackend.go +++ b/pkg/apis/compute/loadbalancerbackend.go @@ -26,6 +26,8 @@ type LoadbalancerBackendDetails struct { LoadbalancerBackendGroupResourceInfo SLoadbalancerBackend + + ProjectId string `json:"tenant_id"` } type LoadbalancerBackendListInput struct { diff --git a/pkg/apis/compute/loadbalancerbackendgroup.go b/pkg/apis/compute/loadbalancerbackendgroup.go index f1632b066a..8eff69921b 100644 --- a/pkg/apis/compute/loadbalancerbackendgroup.go +++ b/pkg/apis/compute/loadbalancerbackendgroup.go @@ -23,6 +23,8 @@ type LoadbalancerBackendGroupDetails struct { SLoadbalancerBackendGroup LbListenerCount int `json:"lb_listener_count"` + + ProjectId string `json:"tenant_id"` } type LoadbalancerBackendGroupResourceInfo struct { diff --git a/pkg/apis/compute/loadbalancerlistener.go b/pkg/apis/compute/loadbalancerlistener.go index 64cd96ba8c..3a0ada31a3 100644 --- a/pkg/apis/compute/loadbalancerlistener.go +++ b/pkg/apis/compute/loadbalancerlistener.go @@ -32,9 +32,10 @@ type LoadbalancerListenerDetails struct { SLoadbalancerListener - BackendGroup string `json:"backend_group"` - CertificateName string `json:"certificate_name"` - OriginCertificateId string `json:"origin_certificate_id"` + BackendGroup string `json:"backend_group"` + CertificateName string `json:"certificate_name"` + + ProjectId string `json:"tenant_id"` } type LoadbalancerListenerResourceInfo struct { diff --git a/pkg/apis/compute/loadbalancerlistenerrule.go b/pkg/apis/compute/loadbalancerlistenerrule.go index 172f01ff97..26827b55bc 100644 --- a/pkg/apis/compute/loadbalancerlistenerrule.go +++ b/pkg/apis/compute/loadbalancerlistenerrule.go @@ -31,6 +31,8 @@ type LoadbalancerListenerRuleDetails struct { SLoadbalancerListenerRule BackendGroup string `json:"backend_group"` + + ProjectId string `json:"tenant_id"` } type LoadbalancerListenerRuleListInput struct { diff --git a/pkg/compute/models/loadbalancerbackendgroups.go b/pkg/compute/models/loadbalancerbackendgroups.go index 55213e769e..188e912598 100644 --- a/pkg/compute/models/loadbalancerbackendgroups.go +++ b/pkg/compute/models/loadbalancerbackendgroups.go @@ -445,11 +445,28 @@ func (man *SLoadbalancerBackendGroupManager) FetchCustomizeColumns( stdRows := man.SStatusStandaloneResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList) lbRows := man.SLoadbalancerResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList) + lbIds := make([]string, len(objs)) for i := range rows { rows[i] = api.LoadbalancerBackendGroupDetails{ StatusStandaloneResourceDetails: stdRows[i], LoadbalancerResourceInfo: lbRows[i], } + lbbg := objs[i].(*SLoadbalancerBackendGroup) + lbIds[i] = lbbg.LoadbalancerId + } + + lbs := map[string]SLoadbalancer{} + err := db.FetchStandaloneObjectsByIds(LoadbalancerManager, lbIds, &lbs) + if err != nil { + return rows + } + + virObjs := make([]interface{}, len(objs)) + for i := range rows { + if lb, ok := lbs[lbIds[i]]; ok { + virObjs[i] = &lb + rows[i].ProjectId = lb.ProjectId + } } for i := range objs { diff --git a/pkg/compute/models/loadbalancerbackends.go b/pkg/compute/models/loadbalancerbackends.go index 39d488436c..3e243df716 100644 --- a/pkg/compute/models/loadbalancerbackends.go +++ b/pkg/compute/models/loadbalancerbackends.go @@ -465,12 +465,29 @@ func (manager *SLoadbalancerBackendManager) FetchCustomizeColumns( rows := make([]api.LoadbalancerBackendDetails, len(objs)) stdRows := manager.SStatusStandaloneResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList) lbbgRows := manager.SLoadbalancerBackendgroupResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList) + lbIds := make([]string, len(objs)) for i := range rows { rows[i] = api.LoadbalancerBackendDetails{ StatusStandaloneResourceDetails: stdRows[i], LoadbalancerBackendGroupResourceInfo: lbbgRows[i], } + lbIds[i] = rows[i].LoadbalancerId } + + lbs := map[string]SLoadbalancer{} + err := db.FetchStandaloneObjectsByIds(LoadbalancerManager, lbIds, &lbs) + if err != nil { + return rows + } + + virObjs := make([]interface{}, len(objs)) + for i := range rows { + if lb, ok := lbs[lbIds[i]]; ok { + virObjs[i] = &lb + rows[i].ProjectId = lb.ProjectId + } + } + return rows } diff --git a/pkg/compute/models/loadbalancerlistenerrules.go b/pkg/compute/models/loadbalancerlistenerrules.go index 04d4ecc417..d1a6020679 100644 --- a/pkg/compute/models/loadbalancerlistenerrules.go +++ b/pkg/compute/models/loadbalancerlistenerrules.go @@ -623,12 +623,28 @@ func (man *SLoadbalancerListenerRuleManager) FetchCustomizeColumns( stdRows := man.SStatusStandaloneResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList) listenerRows := man.SLoadbalancerListenerResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList) + lbIds := make([]string, len(objs)) for i := range rows { rows[i] = api.LoadbalancerListenerRuleDetails{ StatusStandaloneResourceDetails: stdRows[i], LoadbalancerListenerResourceInfo: listenerRows[i], } rows[i], _ = objs[i].(*SLoadbalancerListenerRule).getMoreDetails(rows[i]) + lbIds[i] = rows[i].LoadbalancerId + } + + lbs := map[string]SLoadbalancer{} + err := db.FetchStandaloneObjectsByIds(LoadbalancerManager, lbIds, &lbs) + if err != nil { + return rows + } + + virObjs := make([]interface{}, len(objs)) + for i := range rows { + if lb, ok := lbs[lbIds[i]]; ok { + virObjs[i] = &lb + rows[i].ProjectId = lb.ProjectId + } } return rows diff --git a/pkg/compute/models/loadbalancerlisteners.go b/pkg/compute/models/loadbalancerlisteners.go index 85d629ac32..4e9dfc6900 100644 --- a/pkg/compute/models/loadbalancerlisteners.go +++ b/pkg/compute/models/loadbalancerlisteners.go @@ -497,6 +497,7 @@ func (manager *SLoadbalancerListenerManager) FetchCustomizeColumns( lbaclRows := manager.SLoadbalancerAclResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList) lbcertRows := manager.SLoadbalancerCertificateResourceBaseManager.FetchCustomizeColumns(ctx, userCred, query, objs, fields, isList) lbbgIds := make([]string, len(objs)) + lbIds := make([]string, len(objs)) for i := range rows { rows[i] = api.LoadbalancerListenerDetails{ StatusStandaloneResourceDetails: stdRows[i], @@ -505,10 +506,26 @@ func (manager *SLoadbalancerListenerManager) FetchCustomizeColumns( LoadbalancerCertificateResourceInfo: lbcertRows[i], } lis := objs[i].(*SLoadbalancerListener) + lbIds[i] = lis.LoadbalancerId lbbgIds[i] = lis.BackendGroupId } + + lbs := map[string]SLoadbalancer{} + err := db.FetchStandaloneObjectsByIds(LoadbalancerManager, lbIds, &lbs) + if err != nil { + return rows + } + + virObjs := make([]interface{}, len(objs)) + for i := range rows { + if lb, ok := lbs[lbIds[i]]; ok { + virObjs[i] = &lb + rows[i].ProjectId = lb.ProjectId + } + } + lbbgs := map[string]SLoadbalancerBackendGroup{} - err := db.FetchModelObjectsByIds(LoadbalancerBackendGroupManager, "id", lbbgIds, &lbbgs) + err = db.FetchModelObjectsByIds(LoadbalancerBackendGroupManager, "id", lbbgIds, &lbbgs) if err != nil { return rows }