From fcaddfb73d40d6ab3c5cf86ade377728314703cc Mon Sep 17 00:00:00 2001 From: gujing <925973396@qq.com> Date: Wed, 16 Mar 2022 20:36:19 +0800 Subject: [PATCH 1/2] add log for loadbalancerid --- pkg/provider/alibaba/slb/listener.go | 5 +++++ pkg/provider/alibaba/slb/loadbalancer.go | 22 +++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/pkg/provider/alibaba/slb/listener.go b/pkg/provider/alibaba/slb/listener.go index 99ec7a9dd..e5e40f3fe 100644 --- a/pkg/provider/alibaba/slb/listener.go +++ b/pkg/provider/alibaba/slb/listener.go @@ -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 @@ -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) @@ -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 } @@ -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) @@ -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) } diff --git a/pkg/provider/alibaba/slb/loadbalancer.go b/pkg/provider/alibaba/slb/loadbalancer.go index 43c0f8b97..7867590a0 100644 --- a/pkg/provider/alibaba/slb/loadbalancer.go +++ b/pkg/provider/alibaba/slb/loadbalancer.go @@ -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) } @@ -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 } @@ -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 } @@ -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 } From 4557dd84f55aafa6b76472261b8152fd2d714a27 Mon Sep 17 00:00:00 2001 From: gujing <925973396@qq.com> Date: Thu, 17 Mar 2022 11:06:06 +0800 Subject: [PATCH 2/2] load response seperately for DescribeLoadBalancers,DescribeLoadBalancerAttribute --- pkg/provider/alibaba/slb/loadbalancer.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pkg/provider/alibaba/slb/loadbalancer.go b/pkg/provider/alibaba/slb/loadbalancer.go index 7867590a0..b292b9d21 100644 --- a/pkg/provider/alibaba/slb/loadbalancer.go +++ b/pkg/provider/alibaba/slb/loadbalancer.go @@ -348,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) + } + }