mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
修复lb同步时的一些小问题
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/log"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
"yunion.io/x/onecloud/pkg/compute/models"
|
||||
)
|
||||
@@ -101,7 +102,12 @@ func (lb *SLoadbalancer) GetNetworkId() string {
|
||||
}
|
||||
|
||||
func (lb *SLoadbalancer) GetZoneId() string {
|
||||
return fmt.Sprintf("%s/%s", CLOUD_PROVIDER_ALIYUN, lb.MasterZoneId)
|
||||
zone, err := lb.region.getZoneById(lb.MasterZoneId)
|
||||
if err != nil {
|
||||
log.Errorf("failed to find zone for lb %s error: %v", lb.LoadBalancerName, err)
|
||||
return ""
|
||||
}
|
||||
return zone.GetGlobalId()
|
||||
}
|
||||
|
||||
func (lb *SLoadbalancer) IsEmulated() bool {
|
||||
@@ -142,7 +148,7 @@ func (region *SRegion) GetLoadbalancerDetail(loadbalancerId string) (*SLoadbalan
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
lb := SLoadbalancer{}
|
||||
lb := SLoadbalancer{region: region}
|
||||
return &lb, body.Unmarshal(&lb)
|
||||
}
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ func (region *SRegion) GetLoadbalancerAclDetail(aclId string) (*SLoadbalancerAcl
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
detail := SLoadbalancerAcl{}
|
||||
detail := SLoadbalancerAcl{region: region}
|
||||
return &detail, body.Unmarshal(&detail)
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package aliyun
|
||||
import (
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
"yunion.io/x/onecloud/pkg/compute/models"
|
||||
)
|
||||
|
||||
type Rule struct {
|
||||
@@ -51,15 +52,15 @@ func (backendgroup *SLoadbalancerBackendGroup) GetGlobalId() string {
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerBackendGroup) GetStatus() string {
|
||||
return ""
|
||||
return models.LB_STATUS_ENABLED
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerBackendGroup) IsDefault() bool {
|
||||
return true
|
||||
return false
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerBackendGroup) GetType() string {
|
||||
return "standard"
|
||||
return models.LB_BACKENDGROUP_TYPE_NORMAL
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerBackendGroup) GetMetadata() *jsonutils.JSONDict {
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
"yunion.io/x/onecloud/pkg/compute/models"
|
||||
)
|
||||
|
||||
type SLoadbalancerDefaultBackendGroup struct {
|
||||
@@ -24,15 +25,15 @@ func (backendgroup *SLoadbalancerDefaultBackendGroup) GetGlobalId() string {
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerDefaultBackendGroup) GetStatus() string {
|
||||
return ""
|
||||
return models.LB_STATUS_ENABLED
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerDefaultBackendGroup) IsDefault() bool {
|
||||
return false
|
||||
return true
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerDefaultBackendGroup) GetType() string {
|
||||
return "default"
|
||||
return models.LB_BACKENDGROUP_TYPE_DEFAULT
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerDefaultBackendGroup) GetMetadata() *jsonutils.JSONDict {
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
"yunion.io/x/onecloud/pkg/compute/models"
|
||||
)
|
||||
|
||||
type SLoadbalancerHTTPListener struct {
|
||||
@@ -14,6 +15,7 @@ type SLoadbalancerHTTPListener struct {
|
||||
BackendServerPort int // 负载均衡实例后端使用的端口。
|
||||
Bandwidth int // 监听的带宽峰值。
|
||||
Status string // 当前监听的状态。取值:starting | running | configuring | stopping | stopped
|
||||
Description string
|
||||
|
||||
XForwardedFor string // 是否开启通过X-Forwarded-For头字段获取访者真实IP。
|
||||
XForwardedFor_SLBIP string // 是否通过SLB-IP头字段获取客户端请求的真实IP。
|
||||
@@ -52,9 +54,16 @@ type SLoadbalancerHTTPListener struct {
|
||||
Rules Rules //监听下的转发规则列表,具体请参见RuleList。
|
||||
ForwardPort int // HTTP至HTTPS的监听转发端口。暂时只支持将HTTP 80访问重定向转发至HTTPS 443。 说明 如果 ListenerForward的值为 off,该参数不显示。
|
||||
ListenerForward string // 表示是否开启HTTP至HTTPS的监听转发。on:表示开启 off:表示未开启
|
||||
VServerGroupId string // 绑定的服务器组ID
|
||||
}
|
||||
|
||||
func (listener *SLoadbalancerHTTPListener) GetName() string {
|
||||
if len(listener.Description) == 0 {
|
||||
listener.Refresh()
|
||||
}
|
||||
if len(listener.Description) > 0 {
|
||||
return listener.Description
|
||||
}
|
||||
return fmt.Sprintf("HTTP:%d", listener.ListenerPort)
|
||||
}
|
||||
|
||||
@@ -67,7 +76,14 @@ func (listerner *SLoadbalancerHTTPListener) GetGlobalId() string {
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPListener) GetStatus() string {
|
||||
return listerner.Status
|
||||
switch listerner.Status {
|
||||
case "starting", "running":
|
||||
return models.LB_STATUS_ENABLED
|
||||
case "configuring", "stopping", "stopped":
|
||||
return models.LB_STATUS_DISABLED
|
||||
default:
|
||||
return models.LB_STATUS_UNKNOWN
|
||||
}
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPListener) GetMetadata() *jsonutils.JSONDict {
|
||||
@@ -79,7 +95,11 @@ func (listerner *SLoadbalancerHTTPListener) IsEmulated() bool {
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPListener) Refresh() error {
|
||||
return nil
|
||||
lis, err := listerner.lb.region.GetLoadbalancerHTTPListener(listerner.lb.LoadBalancerId, listerner.ListenerPort)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return jsonutils.Update(listerner, lis)
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPListener) GetListenerType() string {
|
||||
@@ -91,7 +111,10 @@ func (listerner *SLoadbalancerHTTPListener) GetListenerPort() int {
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPListener) GetBackendGroupId() string {
|
||||
return ""
|
||||
if len(listerner.VServerGroupId) == 0 {
|
||||
listerner.Refresh()
|
||||
}
|
||||
return listerner.VServerGroupId
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPListener) GetScheduler() string {
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
"yunion.io/x/onecloud/pkg/compute/models"
|
||||
)
|
||||
|
||||
type SLoadbalancerHTTPSListener struct {
|
||||
@@ -14,6 +15,7 @@ type SLoadbalancerHTTPSListener struct {
|
||||
BackendServerPort int // 负载均衡实例后端使用的端口。
|
||||
Bandwidth int // 监听的带宽峰值。
|
||||
Status string // 当前监听的状态。取值:starting | running | configuring | stopping | stopped
|
||||
Description string
|
||||
|
||||
XForwardedFor string // 是否开启通过X-Forwarded-For头字段获取访者真实IP。
|
||||
XForwardedFor_SLBIP string // 是否通过SLB-IP头字段获取客户端请求的真实IP。
|
||||
@@ -51,6 +53,12 @@ type SLoadbalancerHTTPSListener struct {
|
||||
}
|
||||
|
||||
func (listener *SLoadbalancerHTTPSListener) GetName() string {
|
||||
if len(listener.Description) == 0 {
|
||||
listener.Refresh()
|
||||
}
|
||||
if len(listener.Description) > 0 {
|
||||
return listener.Description
|
||||
}
|
||||
return fmt.Sprintf("HTTPS:%d", listener.ListenerPort)
|
||||
}
|
||||
|
||||
@@ -63,7 +71,14 @@ func (listerner *SLoadbalancerHTTPSListener) GetGlobalId() string {
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPSListener) GetStatus() string {
|
||||
return listerner.Status
|
||||
switch listerner.Status {
|
||||
case "starting", "running":
|
||||
return models.LB_STATUS_ENABLED
|
||||
case "configuring", "stopping", "stopped":
|
||||
return models.LB_STATUS_DISABLED
|
||||
default:
|
||||
return models.LB_STATUS_UNKNOWN
|
||||
}
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPSListener) GetMetadata() *jsonutils.JSONDict {
|
||||
@@ -75,7 +90,11 @@ func (listerner *SLoadbalancerHTTPSListener) IsEmulated() bool {
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPSListener) Refresh() error {
|
||||
return nil
|
||||
lis, err := listerner.lb.region.GetLoadbalancerHTTPSListener(listerner.lb.LoadBalancerId, listerner.ListenerPort)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return jsonutils.Update(listerner, lis)
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPSListener) GetListenerType() string {
|
||||
@@ -87,7 +106,10 @@ func (listerner *SLoadbalancerHTTPSListener) GetListenerPort() int {
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPSListener) GetBackendGroupId() string {
|
||||
return ""
|
||||
if len(listerner.VServerGroupId) == 0 {
|
||||
listerner.Refresh()
|
||||
}
|
||||
return listerner.VServerGroupId
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPSListener) GetScheduler() string {
|
||||
|
||||
@@ -3,6 +3,7 @@ package aliyun
|
||||
import (
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
"yunion.io/x/onecloud/pkg/compute/models"
|
||||
)
|
||||
|
||||
type SLoadbalancerMasterSlaveBackendGroup struct {
|
||||
@@ -25,7 +26,7 @@ func (backendgroup *SLoadbalancerMasterSlaveBackendGroup) GetGlobalId() string {
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerMasterSlaveBackendGroup) GetStatus() string {
|
||||
return ""
|
||||
return models.LB_STATUS_ENABLED
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerMasterSlaveBackendGroup) GetMetadata() *jsonutils.JSONDict {
|
||||
@@ -45,7 +46,7 @@ func (backendgroup *SLoadbalancerMasterSlaveBackendGroup) IsDefault() bool {
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerMasterSlaveBackendGroup) GetType() string {
|
||||
return "master_slave"
|
||||
return models.LB_BACKENDGROUP_TYPE_MASTER_SLAVE
|
||||
}
|
||||
|
||||
func (region *SRegion) GetLoadbalancerMasterSlaveBackendgroups(loadbalancerId string) ([]SLoadbalancerMasterSlaveBackendGroup, error) {
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
"yunion.io/x/onecloud/pkg/compute/models"
|
||||
)
|
||||
|
||||
type SLoadbalancerTCPListener struct {
|
||||
@@ -14,11 +15,12 @@ type SLoadbalancerTCPListener struct {
|
||||
BackendServerPort int // 负载均衡实例后端使用的端口。
|
||||
Bandwidth int // 监听的带宽峰值。
|
||||
Status string // 当前监听的状态,取值:starting | running | configuring | stopping | stopped
|
||||
Description string
|
||||
|
||||
Scheduler string // 调度算法。
|
||||
VServerGroupId string // 绑定的服务器组ID。
|
||||
MaterSlaveServerGroupId string // 绑定的主备服务器组ID。
|
||||
AclStatus string // 是否开启访问控制功能。取值:on | off(默认值)
|
||||
Scheduler string // 调度算法。
|
||||
VServerGroupId string // 绑定的服务器组ID。
|
||||
MasterSlaveServerGroupId string // 绑定的主备服务器组ID。
|
||||
AclStatus string // 是否开启访问控制功能。取值:on | off(默认值)
|
||||
|
||||
AclType string // 访问控制类型
|
||||
|
||||
@@ -33,6 +35,12 @@ type SLoadbalancerTCPListener struct {
|
||||
}
|
||||
|
||||
func (listener *SLoadbalancerTCPListener) GetName() string {
|
||||
if len(listener.Description) == 0 {
|
||||
listener.Refresh()
|
||||
}
|
||||
if len(listener.Description) > 0 {
|
||||
return listener.Description
|
||||
}
|
||||
return fmt.Sprintf("TCP:%d", listener.ListenerPort)
|
||||
}
|
||||
|
||||
@@ -45,7 +53,14 @@ func (listerner *SLoadbalancerTCPListener) GetGlobalId() string {
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerTCPListener) GetStatus() string {
|
||||
return listerner.Status
|
||||
switch listerner.Status {
|
||||
case "starting", "running":
|
||||
return models.LB_STATUS_ENABLED
|
||||
case "configuring", "stopping", "stopped":
|
||||
return models.LB_STATUS_DISABLED
|
||||
default:
|
||||
return models.LB_STATUS_UNKNOWN
|
||||
}
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerTCPListener) GetMetadata() *jsonutils.JSONDict {
|
||||
@@ -57,7 +72,11 @@ func (listerner *SLoadbalancerTCPListener) IsEmulated() bool {
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerTCPListener) Refresh() error {
|
||||
return nil
|
||||
lis, err := listerner.lb.region.GetLoadbalancerTCPListener(listerner.lb.LoadBalancerId, listerner.ListenerPort)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return jsonutils.Update(listerner, lis)
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerTCPListener) GetListenerType() string {
|
||||
@@ -71,7 +90,7 @@ func (listerner *SLoadbalancerTCPListener) GetBackendGroupId() string {
|
||||
if len(listerner.VServerGroupId) > 0 {
|
||||
return listerner.VServerGroupId
|
||||
}
|
||||
return listerner.MaterSlaveServerGroupId
|
||||
return listerner.MasterSlaveServerGroupId
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerTCPListener) GetScheduler() string {
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
"yunion.io/x/onecloud/pkg/compute/models"
|
||||
)
|
||||
|
||||
type SLoadbalancerUDPListener struct {
|
||||
@@ -14,11 +15,12 @@ type SLoadbalancerUDPListener struct {
|
||||
BackendServerPort int // 负载均衡实例后端使用的端口。
|
||||
Bandwidth int // 监听的带宽峰值。
|
||||
Status string // 当前监听的状态,取值:starting | running | configuring | stopping | stopped
|
||||
Description string
|
||||
|
||||
Scheduler string // 调度算法
|
||||
VServerGroupId string // 绑定的服务器组ID。
|
||||
MaterSlaveServerGroupId string // 绑定的主备服务器组ID。
|
||||
AclStatus string // 是否开启访问控制功能。取值:on | off(默认值)
|
||||
Scheduler string // 调度算法
|
||||
VServerGroupId string // 绑定的服务器组ID。
|
||||
MasterSlaveServerGroupId string // 绑定的主备服务器组ID。
|
||||
AclStatus string // 是否开启访问控制功能。取值:on | off(默认值)
|
||||
|
||||
AclType string // 访问控制类型:
|
||||
|
||||
@@ -33,6 +35,12 @@ type SLoadbalancerUDPListener struct {
|
||||
}
|
||||
|
||||
func (listener *SLoadbalancerUDPListener) GetName() string {
|
||||
if len(listener.Description) == 0 {
|
||||
listener.Refresh()
|
||||
}
|
||||
if len(listener.Description) > 0 {
|
||||
return listener.Description
|
||||
}
|
||||
return fmt.Sprintf("UDP:%d", listener.ListenerPort)
|
||||
}
|
||||
|
||||
@@ -45,7 +53,14 @@ func (listerner *SLoadbalancerUDPListener) GetGlobalId() string {
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerUDPListener) GetStatus() string {
|
||||
return listerner.Status
|
||||
switch listerner.Status {
|
||||
case "starting", "running":
|
||||
return models.LB_STATUS_ENABLED
|
||||
case "configuring", "stopping", "stopped":
|
||||
return models.LB_STATUS_DISABLED
|
||||
default:
|
||||
return models.LB_STATUS_UNKNOWN
|
||||
}
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerUDPListener) GetMetadata() *jsonutils.JSONDict {
|
||||
@@ -57,7 +72,11 @@ func (listerner *SLoadbalancerUDPListener) IsEmulated() bool {
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerUDPListener) Refresh() error {
|
||||
return nil
|
||||
lis, err := listerner.lb.region.GetLoadbalancerUDPListener(listerner.lb.LoadBalancerId, listerner.ListenerPort)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return jsonutils.Update(listerner, lis)
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerUDPListener) GetListenerType() string {
|
||||
@@ -72,7 +91,7 @@ func (listerner *SLoadbalancerUDPListener) GetBackendGroupId() string {
|
||||
if len(listerner.VServerGroupId) > 0 {
|
||||
return listerner.VServerGroupId
|
||||
}
|
||||
return listerner.MaterSlaveServerGroupId
|
||||
return listerner.MasterSlaveServerGroupId
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerUDPListener) GetScheduler() string {
|
||||
|
||||
Reference in New Issue
Block a user