diff --git a/pkg/apis/compute/loadbalancerbackendgroup.go b/pkg/apis/compute/loadbalancerbackendgroup.go index 6969cdecf7..3d0665ad5f 100644 --- a/pkg/apis/compute/loadbalancerbackendgroup.go +++ b/pkg/apis/compute/loadbalancerbackendgroup.go @@ -21,6 +21,8 @@ type LoadbalancerBackendGroupDetails struct { LoadbalancerResourceInfo SLoadbalancerBackendGroup + + LbListenerCount int `json:"lb_listener_count"` } type LoadbalancerBackendGroupResourceInfo struct { diff --git a/pkg/compute/models/loadbalancerbackendgroups.go b/pkg/compute/models/loadbalancerbackendgroups.go index 5337d67751..b63237b4e0 100644 --- a/pkg/compute/models/loadbalancerbackendgroups.go +++ b/pkg/compute/models/loadbalancerbackendgroups.go @@ -30,6 +30,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" + "yunion.io/x/onecloud/pkg/cloudcommon/policy" "yunion.io/x/onecloud/pkg/cloudcommon/validators" "yunion.io/x/onecloud/pkg/cloudprovider" "yunion.io/x/onecloud/pkg/httperrors" @@ -492,6 +493,23 @@ func (man *SLoadbalancerBackendGroupManager) FetchCustomizeColumns( } } + for i := range objs { + q := LoadbalancerListenerManager.Query().IsFalse("pending_deleted").Equals("backend_group_id", objs[i].(*SLoadbalancerBackendGroup).GetId()) + ownerId, queryScope, err := db.FetchCheckQueryOwnerScope(ctx, userCred, query, LoadbalancerListenerManager, policy.PolicyActionList, true) + if err != nil { + log.Errorf("FetchCheckQueryOwnerScope error: %v", err) + return rows + } + + q = LoadbalancerListenerManager.FilterByOwner(q, ownerId, queryScope) + count, err := q.CountWithError() + if err != nil { + log.Errorf("db.CountWithError error: %v", err) + } + + rows[i].LbListenerCount = count + } + return rows } diff --git a/pkg/compute/models/loadbalancerlistenerrules.go b/pkg/compute/models/loadbalancerlistenerrules.go index e34381d001..3a588792d6 100644 --- a/pkg/compute/models/loadbalancerlistenerrules.go +++ b/pkg/compute/models/loadbalancerlistenerrules.go @@ -19,12 +19,11 @@ import ( "database/sql" "fmt" - "yunion.io/x/pkg/utils" - "yunion.io/x/jsonutils" "yunion.io/x/log" "yunion.io/x/pkg/errors" "yunion.io/x/pkg/util/compare" + "yunion.io/x/pkg/utils" "yunion.io/x/sqlchemy" "yunion.io/x/onecloud/pkg/apis" diff --git a/pkg/multicloud/azure/loadbalancer.go b/pkg/multicloud/azure/loadbalancer.go index 9c3f433847..64e3bdcab6 100644 --- a/pkg/multicloud/azure/loadbalancer.go +++ b/pkg/multicloud/azure/loadbalancer.go @@ -5,11 +5,13 @@ import ( "strings" "github.com/pkg/errors" + "yunion.io/x/jsonutils" "yunion.io/x/log" + "yunion.io/x/pkg/utils" + api "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/cloudprovider" - "yunion.io/x/pkg/utils" ) type SLoadbalancer struct { diff --git a/pkg/multicloud/azure/loadbalancerbackend.go b/pkg/multicloud/azure/loadbalancerbackend.go index 81f2a897c6..1cdd21e143 100644 --- a/pkg/multicloud/azure/loadbalancerbackend.go +++ b/pkg/multicloud/azure/loadbalancerbackend.go @@ -5,6 +5,7 @@ import ( "strconv" "github.com/pkg/errors" + api "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/cloudprovider" "yunion.io/x/onecloud/pkg/multicloud" diff --git a/pkg/multicloud/azure/loadbalancerbackendgroup.go b/pkg/multicloud/azure/loadbalancerbackendgroup.go index 188907385e..e7941bfdc3 100644 --- a/pkg/multicloud/azure/loadbalancerbackendgroup.go +++ b/pkg/multicloud/azure/loadbalancerbackendgroup.go @@ -6,7 +6,9 @@ import ( "strings" "github.com/pkg/errors" + "yunion.io/x/jsonutils" + api "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/cloudprovider" "yunion.io/x/onecloud/pkg/multicloud" diff --git a/pkg/multicloud/azure/loadbalancercert.go b/pkg/multicloud/azure/loadbalancercert.go index 5e33eeb019..1f4187b81a 100644 --- a/pkg/multicloud/azure/loadbalancercert.go +++ b/pkg/multicloud/azure/loadbalancercert.go @@ -10,9 +10,9 @@ import ( "time" "github.com/pkg/errors" - "go.uber.org/zap/buffer" "yunion.io/x/jsonutils" + api "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/cloudprovider" ) @@ -143,19 +143,19 @@ func (self *SLoadbalancerCert) GetExpireTime() time.Time { func (self *SLoadbalancerCert) GetPublickKey() string { if len(self.PublicKey) > 0 { - var pk buffer.Buffer - pk.AppendString("-----BEGIN CERTIFICATE-----\r\n") + var pk bytes.Buffer + pk.WriteString("-----BEGIN CERTIFICATE-----\r\n") content := bytes.NewBufferString(self.PublicKey) for { l := content.Next(64) if len(l) == 64 { - pk.AppendString(fmt.Sprintf("%s\r\n", l)) + pk.WriteString(fmt.Sprintf("%s\r\n", l)) } else { - pk.AppendString(fmt.Sprintf("%s\r\n", l)) + pk.WriteString(fmt.Sprintf("%s\r\n", l)) break } } - pk.AppendString("-----END CERTIFICATE-----") + pk.WriteString("-----END CERTIFICATE-----") return pk.String() } diff --git a/pkg/multicloud/azure/loadbalancerlistener.go b/pkg/multicloud/azure/loadbalancerlistener.go index 9282eae3fc..1411abbcea 100644 --- a/pkg/multicloud/azure/loadbalancerlistener.go +++ b/pkg/multicloud/azure/loadbalancerlistener.go @@ -7,13 +7,13 @@ import ( "strconv" "strings" - "yunion.io/x/log" - "yunion.io/x/jsonutils" + "yunion.io/x/log" + "yunion.io/x/pkg/errors" + api "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/cloudprovider" "yunion.io/x/onecloud/pkg/multicloud" - "yunion.io/x/pkg/errors" ) // todo: 目前不支持 入站 NAT 规则 diff --git a/pkg/multicloud/azure/loadbalancerlistenerrule.go b/pkg/multicloud/azure/loadbalancerlistenerrule.go index 9e65be9bea..55a5c7d4bd 100644 --- a/pkg/multicloud/azure/loadbalancerlistenerrule.go +++ b/pkg/multicloud/azure/loadbalancerlistenerrule.go @@ -7,11 +7,11 @@ import ( "strings" "yunion.io/x/log" + "yunion.io/x/pkg/errors" api "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/cloudprovider" "yunion.io/x/onecloud/pkg/multicloud" - "yunion.io/x/pkg/errors" ) type SLoadbalancerListenerRule struct {