Merge pull request #12692 from tb365/bugfix/tb-bugfix-111701

gcp lb sync ip address fix
This commit is contained in:
Zexi Li
2021-11-17 15:43:59 +08:00
committed by GitHub
3 changed files with 26 additions and 6 deletions
+1 -1
View File
@@ -169,11 +169,11 @@ type LoadbalancerDetails struct {
apis.VirtualResourceDetails
ManagedResourceInfo
CloudregionResourceInfo
LoadbalancerClusterResourceInfo
VpcResourceInfoBase
CloudregionResourceInfo
ZoneResourceInfoBase
Zone1ResourceInfoBase
NetworkResourceInfoBase
+4
View File
@@ -1190,6 +1190,10 @@ func (lb *SLoadbalancer) SyncWithCloudLoadbalancer(ctx context.Context, userCred
}
syncVirtualResourceMetadata(ctx, userCred, lb, extLb)
if lb.CloudregionId == "" {
lb.CloudregionId = region.GetId()
}
// classic vpc
if extLb.GetNetworkType() == api.LB_NETWORK_TYPE_CLASSIC {
if vpc, err := VpcManager.GetOrCreateVpcForClassicNetwork(ctx, provider, region); err == nil && vpc != nil {
+21 -5
View File
@@ -97,6 +97,12 @@ func (self *SLoadbalancer) GetProjectId() string {
/*
对应forwardingRules地址,存在多个前端IP的情况下,只展示按拉丁字母排序最前的一个地址。其他地址需要到详情中查看
External
Internal
InternalManaged
InternalSelfManaged
Invalid
UndefinedLoadBalancingScheme
*/
func (self *SLoadbalancer) GetAddress() string {
frs, err := self.GetForwardingRules()
@@ -105,7 +111,8 @@ func (self *SLoadbalancer) GetAddress() string {
}
for i := range frs {
if frs[i].LoadBalancingScheme != "EXTERNAL" {
sche := strings.ToLower(frs[i].LoadBalancingScheme)
if !utils.IsInStringArray(sche, []string{"invalid", "undefinedloadbalancingscheme"}) {
return frs[i].IPAddress
}
}
@@ -114,13 +121,22 @@ func (self *SLoadbalancer) GetAddress() string {
}
func (self *SLoadbalancer) GetAddressType() string {
eip, err := self.GetIEIP()
frs, err := self.GetForwardingRules()
if err != nil {
return api.LB_ADDR_TYPE_INTRANET
}
if eip == nil {
return api.LB_ADDR_TYPE_INTRANET
for i := range frs {
sche := strings.ToLower(frs[i].LoadBalancingScheme)
if !utils.IsInStringArray(sche, []string{"invalid", "undefinedloadbalancingscheme"}) {
if sche == "external" {
return api.LB_ADDR_TYPE_INTERNET
} else {
return api.LB_ADDR_TYPE_INTRANET
}
}
}
return api.LB_ADDR_TYPE_INTERNET
}
@@ -226,7 +242,7 @@ func (self *SLoadbalancer) GetIEIP() (cloudprovider.ICloudEIP, error) {
}
for i := range frs {
if frs[i].LoadBalancingScheme == "EXTERNAL" {
if strings.ToLower(frs[i].LoadBalancingScheme) == "external" {
eips, err := self.region.GetEips(frs[i].IPAddress, 0, "")
if err != nil {
log.Errorf("GetEips %s", err)