Skip to content

Commit

Permalink
Merge pull request #295 from gujingit/bugfix/load-listener-resp
Browse files Browse the repository at this point in the history
Bugfix/load listener resp
  • Loading branch information
k8s-ci-robot authored Mar 17, 2022
2 parents f821eff + 4557dd8 commit e23e21d
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 8 deletions.
5 changes: 5 additions & 0 deletions pkg/provider/alibaba/slb/listener.go
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,7 @@ func setHTTPSListenerValue(req interface{}, listener *model.ListenerAttribute) {
func loadTCPListener(config slb.TCPListenerConfig, listener *model.ListenerAttribute) {
persistenceTimeout := config.PersistenceTimeout
listener.PersistenceTimeout = &persistenceTimeout
listener.EstablishedTimeout = config.EstablishedTimeout
listener.ConnectionDrain = model.FlagType(config.ConnectionDrain)
listener.ConnectionDrainTimeout = config.ConnectionDrainTimeout
listener.HealthyThreshold = config.HealthyThreshold
Expand Down Expand Up @@ -458,6 +459,7 @@ func loadHTTPListener(config slb.HTTPListenerConfig, listener *model.ListenerAtt
listener.StickySessionType = config.StickySessionType
listener.CookieTimeout = config.CookieTimeout
listener.Cookie = config.Cookie
listener.RequestTimeout = config.RequestTimeout
listener.XForwardedForProto = model.FlagType(config.XForwardedForProto)
listener.IdleTimeout = config.IdleTimeout
listener.HealthCheck = model.FlagType(config.HealthCheck)
Expand All @@ -469,6 +471,7 @@ func loadHTTPListener(config slb.HTTPListenerConfig, listener *model.ListenerAtt
listener.HealthCheckInterval = config.HealthCheckInterval
listener.HealthCheckConnectPort = config.HealthCheckConnectPort
listener.HealthCheckHttpCode = config.HealthCheckHttpCode
listener.HealthCheckMethod = config.HealthCheckMethod
listener.ListenerForward = model.FlagType(config.ListenerForward)
listener.ForwardPort = config.ForwardPort
}
Expand All @@ -478,6 +481,7 @@ func loadHTTPSListener(config slb.HTTPSListenerConfig, listener *model.ListenerA
listener.StickySessionType = config.StickySessionType
listener.CookieTimeout = config.CookieTimeout
listener.Cookie = config.Cookie
listener.RequestTimeout = config.RequestTimeout
listener.XForwardedForProto = model.FlagType(config.XForwardedForProto)
listener.IdleTimeout = config.IdleTimeout
listener.HealthCheck = model.FlagType(config.HealthCheck)
Expand All @@ -489,6 +493,7 @@ func loadHTTPSListener(config slb.HTTPSListenerConfig, listener *model.ListenerA
listener.HealthCheckInterval = config.HealthCheckInterval
listener.HealthCheckConnectPort = config.HealthCheckConnectPort
listener.HealthCheckHttpCode = config.HealthCheckHttpCode
listener.HealthCheckMethod = config.HealthCheckMethod
listener.CertId = config.ServerCertificateId
listener.EnableHttp2 = model.FlagType(config.EnableHttp2)
}
35 changes: 27 additions & 8 deletions pkg/provider/alibaba/slb/loadbalancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func (p SLBProvider) FindLoadBalancer(ctx context.Context, mdl *model.LoadBalanc

// 1. find by loadbalancer id
if mdl.LoadBalancerAttribute.LoadBalancerId != "" {
klog.Infof("[%s] try to find loadbalancer by id %s",
klog.Infof("[%s] find loadbalancer by id, LoadBalancerId [%s]",
mdl.NamespacedName, mdl.LoadBalancerAttribute.LoadBalancerId)
return p.DescribeLoadBalancer(ctx, mdl)
}
Expand All @@ -43,12 +43,24 @@ func (p SLBProvider) FindLoadBalancer(ctx context.Context, mdl *model.LoadBalanc
if err != nil {
return err
}
if mdl.LoadBalancerAttribute.LoadBalancerId != "" {
klog.Infof("[%s] find loadbalancer by tag, LoadBalancerId [%s]",
mdl.NamespacedName, mdl.LoadBalancerAttribute.LoadBalancerId)
return nil
}

// 3. find by loadbalancer name
if mdl.LoadBalancerAttribute.LoadBalancerId == "" {
return p.findLoadBalancerByName(mdl)
err = p.findLoadBalancerByName(mdl)
if err != nil {
return err
}
if mdl.LoadBalancerAttribute.LoadBalancerId != "" {
klog.Infof("[%s] find loadbalancer by name, LoadBalancerId [%s]",
mdl.NamespacedName, mdl.LoadBalancerAttribute.LoadBalancerId)
return nil
}

klog.Infof("[%s] find no loadbalancer", mdl.NamespacedName)
return nil
}

Expand Down Expand Up @@ -82,8 +94,6 @@ func (p SLBProvider) findLoadBalancerByTag(mdl *model.LoadBalancer) error {
}

loadResponse(resp.LoadBalancers.LoadBalancer[0], mdl)
klog.Infof("[%s] find loadbalancer by tag, lbId [%s]", mdl.NamespacedName,
resp.LoadBalancers.LoadBalancer[0].LoadBalancerId)
return nil
}

Expand Down Expand Up @@ -116,8 +126,6 @@ func (p SLBProvider) findLoadBalancerByName(mdl *model.LoadBalancer) error {
}

loadResponse(resp.LoadBalancers.LoadBalancer[0], mdl)
klog.Infof("[%s] find loadbalancer by name, lbId [%s]", mdl.NamespacedName,
mdl.LoadBalancerAttribute.LoadBalancerId)
return nil
}

Expand Down Expand Up @@ -340,9 +348,20 @@ func loadResponse(resp interface{}, lb *model.LoadBalancer) {
lb.LoadBalancerAttribute.MasterZoneId = v.FieldByName("MasterZoneId").String()
lb.LoadBalancerAttribute.SlaveZoneId = v.FieldByName("SlaveZoneId").String()
lb.LoadBalancerAttribute.DeleteProtection = model.FlagType(v.FieldByName("DeleteProtection").String())
lb.LoadBalancerAttribute.InternetChargeType = model.InternetChargeType(v.FieldByName("InternetChargeType").String())
lb.LoadBalancerAttribute.LoadBalancerSpec = model.LoadBalancerSpecType(v.FieldByName("LoadBalancerSpec").String())
lb.LoadBalancerAttribute.ModificationProtectionStatus = model.ModificationProtectionType(
v.FieldByName("ModificationProtectionStatus").String())
lb.LoadBalancerAttribute.ResourceGroupId = v.FieldByName("ResourceGroupId").String()

switch t := resp.(type) {
// DescribeLoadBalancers
case slb.LoadBalancer:
lb.LoadBalancerAttribute.InternetChargeType = model.InternetChargeType(v.FieldByName("InternetChargeTypeAlias").String())
// DescribeLoadBalancerAttribute
case slb.DescribeLoadBalancerAttributeResponse:
lb.LoadBalancerAttribute.InternetChargeType = model.InternetChargeType(v.FieldByName("InternetChargeType").String())
default:
klog.Errorf("not support type: %T", t)
}

}

0 comments on commit e23e21d

Please sign in to comment.