mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-21 14:19:49 +08:00
Merge pull request #11644 from tb365/bugfix/tb-bugfix-0701401
azure lb sync listener frontip fix
This commit is contained in:
@@ -16,7 +16,7 @@ import (
|
||||
|
||||
type SLoadbalancer struct {
|
||||
region *SRegion
|
||||
eip cloudprovider.ICloudEIP
|
||||
eips []cloudprovider.ICloudEIP
|
||||
lbbgs []cloudprovider.ICloudLoadbalancerBackendGroup
|
||||
listeners []cloudprovider.ICloudLoadbalancerListener
|
||||
|
||||
@@ -79,7 +79,7 @@ func (self *SLoadbalancer) Refresh() error {
|
||||
return errors.Wrap(err, "jsonutils.Update")
|
||||
}
|
||||
|
||||
self.eip = nil
|
||||
self.eips = nil
|
||||
self.lbbgs = nil
|
||||
self.listeners = nil
|
||||
return nil
|
||||
@@ -273,20 +273,55 @@ func (self *SLoadbalancer) getEipIds() []string {
|
||||
}
|
||||
|
||||
func (self *SLoadbalancer) GetIEIP() (cloudprovider.ICloudEIP, error) {
|
||||
if self.eip != nil {
|
||||
return self.eip, nil
|
||||
ieips, err := self.GetIEIPS()
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "GetIEIPS")
|
||||
}
|
||||
|
||||
eips := self.getEipIds()
|
||||
if len(eips) > 0 {
|
||||
eip, err := self.region.GetIEipById(eips[0])
|
||||
self.eip = eip
|
||||
return eip, err
|
||||
if len(ieips) > 0 {
|
||||
return self.eips[0], nil
|
||||
}
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (self *SLoadbalancer) GetIEIPById(eipId string) (cloudprovider.ICloudEIP, error) {
|
||||
ieips, err := self.GetIEIPS()
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "GetIEIPS")
|
||||
}
|
||||
|
||||
for i := range ieips {
|
||||
if ieips[i].GetId() == eipId {
|
||||
return ieips[i], nil
|
||||
}
|
||||
}
|
||||
|
||||
return nil, errors.Wrap(cloudprovider.ErrNotFound, eipId)
|
||||
}
|
||||
|
||||
func (self *SLoadbalancer) GetIEIPS() ([]cloudprovider.ICloudEIP, error) {
|
||||
if self.eips != nil {
|
||||
return self.eips, nil
|
||||
}
|
||||
|
||||
eips := self.getEipIds()
|
||||
ieips := make([]cloudprovider.ICloudEIP, 0)
|
||||
for i := range eips {
|
||||
ieip, err := self.region.GetIEipById(eips[i])
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "GetIEIP")
|
||||
}
|
||||
ieips = append(ieips, ieip)
|
||||
}
|
||||
|
||||
if len(ieips) > 0 {
|
||||
self.eips = ieips
|
||||
}
|
||||
|
||||
return self.eips, nil
|
||||
}
|
||||
|
||||
func (self *SLoadbalancer) Delete(ctx context.Context) error {
|
||||
return errors.Wrap(cloudprovider.ErrNotImplemented, "Delete")
|
||||
}
|
||||
|
||||
@@ -148,7 +148,7 @@ func (self *SLoadBalancerListener) GetSysTags() map[string]string {
|
||||
func (self *SLoadBalancerListener) GetTags() (map[string]string, error) {
|
||||
if self.fp != nil {
|
||||
if self.fp.Properties.PublicIPAddress != nil && len(self.fp.Properties.PublicIPAddress.ID) > 0 {
|
||||
eip, _ := self.lb.GetIEIP()
|
||||
eip, _ := self.lb.GetIEIPById(self.fp.Properties.PublicIPAddress.ID)
|
||||
if eip != nil {
|
||||
return map[string]string{"FrontendIP": eip.GetIpAddr()}, nil
|
||||
}
|
||||
@@ -259,7 +259,9 @@ func (self *SLoadBalancerListener) GetHealthCheckInterval() int {
|
||||
}
|
||||
switch self.GetHealthCheckType() {
|
||||
case api.LB_HEALTH_CHECK_HTTP, api.LB_HEALTH_CHECK_HTTPS:
|
||||
return self.healthcheck.Properties.Interval
|
||||
if self.healthcheck.Properties.Interval > 0 {
|
||||
return self.healthcheck.Properties.Interval
|
||||
}
|
||||
}
|
||||
|
||||
return self.healthcheck.Properties.IntervalInSeconds
|
||||
@@ -275,10 +277,12 @@ func (self *SLoadBalancerListener) GetHealthCheckFail() int {
|
||||
}
|
||||
switch self.GetHealthCheckType() {
|
||||
case api.LB_HEALTH_CHECK_HTTP, api.LB_HEALTH_CHECK_HTTPS:
|
||||
return self.healthcheck.Properties.UnhealthyThreshold
|
||||
if self.healthcheck.Properties.UnhealthyThreshold > 0 {
|
||||
return self.healthcheck.Properties.UnhealthyThreshold
|
||||
}
|
||||
}
|
||||
|
||||
return self.healthcheck.Properties.IntervalInSeconds
|
||||
return self.healthcheck.Properties.NumberOfProbes
|
||||
}
|
||||
|
||||
func (self *SLoadBalancerListener) GetHealthCheckReq() string {
|
||||
|
||||
Reference in New Issue
Block a user