mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
elb bugfix
This commit is contained in:
@@ -43,10 +43,6 @@ const (
|
||||
EIP_CHARGE_TYPE_BY_TRAFFIC = "traffic"
|
||||
EIP_CHARGE_TYPE_BY_BANDWIDTH = "bandwidth"
|
||||
EIP_CHARGE_TYPE_DEFAULT = EIP_CHARGE_TYPE_BY_TRAFFIC
|
||||
|
||||
// EIP associate resource type
|
||||
EIP_ASSOCIATE_TYPE_VM = "server"
|
||||
EIP_ASSOCIATE_TYPE_ELB = "elb"
|
||||
)
|
||||
|
||||
var (
|
||||
|
||||
@@ -490,7 +490,7 @@ type ICloudLoadbalancer interface {
|
||||
|
||||
GetIEIP() (ICloudEIP, error)
|
||||
|
||||
Delete() error
|
||||
Delete(ctx context.Context) error
|
||||
|
||||
Start() error
|
||||
Stop() error
|
||||
@@ -501,7 +501,7 @@ type ICloudLoadbalancer interface {
|
||||
CreateILoadBalancerBackendGroup(group *SLoadbalancerBackendGroup) (ICloudLoadbalancerBackendGroup, error)
|
||||
GetILoadBalancerBackendGroupById(groupId string) (ICloudLoadbalancerBackendGroup, error)
|
||||
|
||||
CreateILoadBalancerListener(listener *SLoadbalancerListener) (ICloudLoadbalancerListener, error)
|
||||
CreateILoadBalancerListener(ctx context.Context, listener *SLoadbalancerListener) (ICloudLoadbalancerListener, error)
|
||||
GetILoadBalancerListenerById(listenerId string) (ICloudLoadbalancerListener, error)
|
||||
}
|
||||
|
||||
@@ -551,9 +551,9 @@ type ICloudLoadbalancerListener interface {
|
||||
|
||||
Start() error
|
||||
Stop() error
|
||||
Sync(listener *SLoadbalancerListener) error
|
||||
Sync(ctx context.Context, listener *SLoadbalancerListener) error
|
||||
|
||||
Delete() error
|
||||
Delete(ctx context.Context) error
|
||||
}
|
||||
|
||||
type ICloudLoadbalancerListenerRule interface {
|
||||
@@ -565,7 +565,7 @@ type ICloudLoadbalancerListenerRule interface {
|
||||
GetCondition() string
|
||||
GetBackendGroupId() string
|
||||
|
||||
Delete() error
|
||||
Delete(ctx context.Context) error
|
||||
}
|
||||
|
||||
type ICloudLoadbalancerBackendGroup interface {
|
||||
@@ -583,8 +583,8 @@ type ICloudLoadbalancerBackendGroup interface {
|
||||
AddBackendServer(serverId string, weight int, port int) (ICloudLoadbalancerBackend, error)
|
||||
RemoveBackendServer(serverId string, weight int, port int) error
|
||||
|
||||
Delete() error
|
||||
Sync(group *SLoadbalancerBackendGroup) error
|
||||
Delete(ctx context.Context) error
|
||||
Sync(ctx context.Context, group *SLoadbalancerBackendGroup) error
|
||||
}
|
||||
|
||||
type ICloudLoadbalancerBackend interface {
|
||||
@@ -595,7 +595,7 @@ type ICloudLoadbalancerBackend interface {
|
||||
GetBackendType() string
|
||||
GetBackendRole() string
|
||||
GetBackendId() string
|
||||
SyncConf(port, weight int) error
|
||||
SyncConf(ctx context.Context, port, weight int) error
|
||||
}
|
||||
|
||||
type ICloudLoadbalancerCertificate interface {
|
||||
|
||||
@@ -131,6 +131,7 @@ func (lbcert *SLoadbalancerCertificate) GetExtraDetails(ctx context.Context, use
|
||||
|
||||
func (lbcert *SLoadbalancerCertificate) ValidateDeleteCondition(ctx context.Context) error {
|
||||
men := []db.IModelManager{
|
||||
LoadbalancerListenerManager,
|
||||
CachedLoadbalancerCertificateManager,
|
||||
}
|
||||
lbcertId := lbcert.Id
|
||||
|
||||
@@ -152,7 +152,7 @@ func (m *SLoadbalancernetworkManager) DeleteLoadbalancerNetwork(ctx context.Cont
|
||||
}
|
||||
|
||||
func (m *SLoadbalancernetworkManager) syncLoadbalancerNetwork(ctx context.Context, userCred mcclient.TokenCredential, req *SLoadbalancerNetworkRequestData) error {
|
||||
_network, err := db.FetchByExternalId(NetworkManager, req.NetworkId)
|
||||
_network, err := db.FetchById(NetworkManager, req.NetworkId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -586,6 +586,18 @@ func (man *SLoadbalancerManager) SyncLoadbalancers(ctx context.Context, userCred
|
||||
return localLbs, remoteLbs, syncResult
|
||||
}
|
||||
|
||||
func getExtLbNetworkIds(extLb cloudprovider.ICloudLoadbalancer) []string {
|
||||
extNetworkIds := extLb.GetNetworkIds()
|
||||
lbNetworkIds := []string{}
|
||||
for _, networkId := range extNetworkIds {
|
||||
if network, err := db.FetchByExternalId(NetworkManager, networkId); err == nil && network != nil {
|
||||
lbNetworkIds = append(lbNetworkIds, network.GetId())
|
||||
}
|
||||
}
|
||||
|
||||
return lbNetworkIds
|
||||
}
|
||||
|
||||
func (man *SLoadbalancerManager) newFromCloudLoadbalancer(ctx context.Context, userCred mcclient.TokenCredential, provider *SCloudprovider, extLb cloudprovider.ICloudLoadbalancer, region *SCloudregion, syncOwnerId mcclient.IIdentityProvider) (*SLoadbalancer, error) {
|
||||
lb := SLoadbalancer{}
|
||||
lb.SetModelManager(man, &lb)
|
||||
@@ -606,13 +618,7 @@ func (man *SLoadbalancerManager) newFromCloudLoadbalancer(ctx context.Context, u
|
||||
lb.ChargeType = extLb.GetChargeType()
|
||||
lb.EgressMbps = extLb.GetEgressMbps()
|
||||
lb.ExternalId = extLb.GetGlobalId()
|
||||
networkIds := extLb.GetNetworkIds()
|
||||
lbNetworkIds := []string{}
|
||||
for _, networkId := range networkIds {
|
||||
if network, err := db.FetchByExternalId(NetworkManager, networkId); err == nil && network != nil {
|
||||
lbNetworkIds = append(lbNetworkIds, network.GetId())
|
||||
}
|
||||
}
|
||||
lbNetworkIds := getExtLbNetworkIds(extLb)
|
||||
lb.NetworkId = strings.Join(lbNetworkIds, ",")
|
||||
|
||||
if vpcId := extLb.GetVpcId(); len(vpcId) > 0 {
|
||||
@@ -639,7 +645,7 @@ func (man *SLoadbalancerManager) newFromCloudLoadbalancer(ctx context.Context, u
|
||||
|
||||
db.OpsLog.LogEvent(&lb, db.ACT_CREATE, lb.GetShortDesc(ctx), userCred)
|
||||
|
||||
lb.syncLoadbalancerNetwork(ctx, userCred, networkIds)
|
||||
lb.syncLoadbalancerNetwork(ctx, userCred, lbNetworkIds)
|
||||
return &lb, nil
|
||||
}
|
||||
|
||||
@@ -797,8 +803,9 @@ func (lb *SLoadbalancer) SyncWithCloudLoadbalancer(ctx context.Context, userCred
|
||||
|
||||
db.OpsLog.LogSyncUpdate(lb, diff, userCred)
|
||||
|
||||
networkIds := getExtLbNetworkIds(extLb)
|
||||
SyncCloudProject(userCred, lb, syncOwnerId, extLb, lb.ManagerId)
|
||||
lb.syncLoadbalancerNetwork(ctx, userCred, extLb.GetNetworkIds())
|
||||
lb.syncLoadbalancerNetwork(ctx, userCred, networkIds)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -1008,7 +1008,7 @@ func (self *SAwsRegionDriver) RequestCreateLoadbalancerListener(ctx context.Cont
|
||||
return nil, errors.Wrap(err, "awsRegionDriver.RequestCreateLoadbalancerListener.GetICloudLoadbalancerBackendGroup")
|
||||
}
|
||||
// 服务器组已经存在,直接同步即可
|
||||
if err := ilbbg.Sync(params); err != nil {
|
||||
if err := ilbbg.Sync(ctx, params); err != nil {
|
||||
return nil, errors.Wrap(err, "awsRegionDriver.RequestCreateLoadbalancerListener.Sync")
|
||||
}
|
||||
} else {
|
||||
@@ -1037,7 +1037,7 @@ func (self *SAwsRegionDriver) RequestCreateLoadbalancerListener(ctx context.Cont
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "awsRegionDriver.RequestCreateLoadbalancerListener.GetILoadBalancerById")
|
||||
}
|
||||
iListener, err := iLoadbalancer.CreateILoadBalancerListener(params)
|
||||
iListener, err := iLoadbalancer.CreateILoadBalancerListener(ctx, params)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "awsRegionDriver.RequestCreateLoadbalancerListener.CreateILoadBalancerListener")
|
||||
}
|
||||
@@ -1140,7 +1140,7 @@ func (self *SAwsRegionDriver) RequestDeleteLoadbalancerBackendGroup(ctx context.
|
||||
return nil, errors.Wrap(err, "AwsRegionDriver.RequestDeleteLoadbalancerBackendGroup.GetILoadBalancerBackendGroupById")
|
||||
}
|
||||
|
||||
err = iLoadbalancerBackendGroup.Delete()
|
||||
err = iLoadbalancerBackendGroup.Delete(ctx)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "AwsRegionDriver.RequestDeleteLoadbalancerBackendGroup.DeleteExtBackendGroup")
|
||||
}
|
||||
@@ -1211,7 +1211,7 @@ func (self *SAwsRegionDriver) RequestDeleteLoadbalancer(ctx context.Context, use
|
||||
}
|
||||
}
|
||||
|
||||
err = iLoadbalancer.Delete()
|
||||
err = iLoadbalancer.Delete(ctx)
|
||||
if err != nil {
|
||||
if err != cloudprovider.ErrNotFound {
|
||||
return nil, errors.Wrap(err, "AwsRegionDriver.RequestDeleteLoadbalancer.Delete")
|
||||
@@ -1228,7 +1228,7 @@ func (self *SAwsRegionDriver) RequestDeleteLoadbalancer(ctx context.Context, use
|
||||
// delete remote lbbgs
|
||||
for i := range ilbbgs {
|
||||
ilbbg := ilbbgs[i]
|
||||
err = ilbbg.Delete()
|
||||
err = ilbbg.Delete(ctx)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "AwsRegionDriver.RequestDeleteLoadbalancerBackendGroup.DeleteExtBackendGroup")
|
||||
}
|
||||
@@ -1316,7 +1316,7 @@ func (self *SAwsRegionDriver) RequestSyncLoadbalancerListener(ctx context.Contex
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "awsRegionDriver.RequestSyncLoadbalancerListener.GetILoadBalancerListenerById")
|
||||
}
|
||||
if err := iListener.Sync(params); err != nil {
|
||||
if err := iListener.Sync(ctx, params); err != nil {
|
||||
return nil, errors.Wrap(err, "awsRegionDriver.RequestSyncLoadbalancerListener.Sync")
|
||||
}
|
||||
if err := iListener.Refresh(); err != nil {
|
||||
|
||||
@@ -1142,7 +1142,7 @@ func (self *SHuaWeiRegionDriver) RequestSyncLoadbalancerBackendGroup(ctx context
|
||||
return nil, errors.Wrap(err, "HuaWeiRegionDriver.Sync.GetILoadBalancerBackendGroupById")
|
||||
}
|
||||
|
||||
err = ilbbg.Sync(groupInput)
|
||||
err = ilbbg.Sync(ctx, groupInput)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "HuaWeiRegionDriver.Sync.LoadbalancerBackendGroup")
|
||||
}
|
||||
@@ -1219,7 +1219,7 @@ func (self *SHuaWeiRegionDriver) RequestCreateLoadbalancerListener(ctx context.C
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "huaweiRegionDriver.RequestCreateLoadbalancerListener.GetILoadBalancerById")
|
||||
}
|
||||
iListener, err := iLoadbalancer.CreateILoadBalancerListener(params)
|
||||
iListener, err := iLoadbalancer.CreateILoadBalancerListener(ctx, params)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "huaweiRegionDriver.RequestCreateLoadbalancerListener.CreateILoadBalancerListener")
|
||||
}
|
||||
@@ -1368,7 +1368,7 @@ func (self *SHuaWeiRegionDriver) RequestSyncLoadbalancerListener(ctx context.Con
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := iListener.Sync(params); err != nil {
|
||||
if err := iListener.Sync(ctx, params); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -1438,7 +1438,7 @@ func deleteHuaweiLoadbalancerListenerRule(ctx context.Context, userCred mcclient
|
||||
|
||||
lbbgId := irule.GetBackendGroupId()
|
||||
|
||||
err = irule.Delete()
|
||||
err = irule.Delete(ctx)
|
||||
if err != nil && err != cloudprovider.ErrNotFound {
|
||||
return errors.Wrap(err, "HuaWeiRegionDriver.Rule.Delete")
|
||||
}
|
||||
@@ -1486,7 +1486,7 @@ func deleteHuaweiLoadbalancerBackendGroup(ctx context.Context, userCred mcclient
|
||||
}
|
||||
}
|
||||
|
||||
err = ilbbg.Delete()
|
||||
err = ilbbg.Delete(ctx)
|
||||
if err != nil && err != cloudprovider.ErrNotFound {
|
||||
return errors.Wrap(err, "HuaWeiRegionDriver.BackendGroup.Delete")
|
||||
}
|
||||
@@ -1636,7 +1636,7 @@ func (self *SHuaWeiRegionDriver) RequestDeleteLoadbalancerListener(ctx context.C
|
||||
}
|
||||
|
||||
params.BackendGroupID = ""
|
||||
err = iListener.Sync(params)
|
||||
err = iListener.Sync(ctx, params)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
@@ -1708,7 +1708,7 @@ func (self *SHuaWeiRegionDriver) RequestDeleteLoadbalancerListener(ctx context.C
|
||||
}
|
||||
}
|
||||
|
||||
return nil, iListener.Delete()
|
||||
return nil, iListener.Delete(ctx)
|
||||
})
|
||||
return nil
|
||||
}
|
||||
@@ -1780,7 +1780,7 @@ func (self *SHuaWeiRegionDriver) RequestDeleteLoadbalancerBackendGroup(ctx conte
|
||||
}
|
||||
}
|
||||
|
||||
err = iLoadbalancerBackendGroup.Delete()
|
||||
err = iLoadbalancerBackendGroup.Delete(ctx)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "huaweiRegionDriver.RequestDeleteLoadbalancerBackendGroup.Delete")
|
||||
}
|
||||
@@ -1972,7 +1972,7 @@ func (self *SHuaWeiRegionDriver) RequestSyncLoadbalancerBackend(ctx context.Cont
|
||||
return nil, errors.Wrap(err, "huaweiRegionDriver.RequestSyncLoadbalancerBackend.GetILoadbalancerBackendById")
|
||||
}
|
||||
|
||||
err = iBackend.SyncConf(lbb.Port, lbb.Weight)
|
||||
err = iBackend.SyncConf(ctx, lbb.Port, lbb.Weight)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "huaweiRegionDriver.RequestSyncLoadbalancerBackend.SyncConf")
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ func (self *SManagedVirtualizationRegionDriver) RequestDeleteLoadbalancer(ctx co
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
return nil, iLoadbalancer.Delete()
|
||||
return nil, iLoadbalancer.Delete(ctx)
|
||||
})
|
||||
return nil
|
||||
}
|
||||
@@ -538,7 +538,7 @@ func (self *SManagedVirtualizationRegionDriver) RequestDeleteLoadbalancerBackend
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = iLoadbalancerBackendGroup.Delete()
|
||||
err = iLoadbalancerBackendGroup.Delete(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -670,7 +670,7 @@ func (self *SManagedVirtualizationRegionDriver) RequestSyncLoadbalancerBackend(c
|
||||
return nil, errors.Wrap(err, "regionDriver.RequestSyncLoadbalancerBackend.GetILoadbalancerBackendById")
|
||||
}
|
||||
|
||||
err = iBackend.SyncConf(lbb.Port, lbb.Weight)
|
||||
err = iBackend.SyncConf(ctx, lbb.Port, lbb.Weight)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "regionDriver.RequestSyncLoadbalancerBackend.SyncConf")
|
||||
}
|
||||
@@ -773,7 +773,7 @@ func (self *SManagedVirtualizationRegionDriver) RequestCreateLoadbalancerListene
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "iRegion.GetILoadBalancerById(%s)", loadbalancer.ExternalId)
|
||||
}
|
||||
iListener, err := iLoadbalancer.CreateILoadBalancerListener(params)
|
||||
iListener, err := iLoadbalancer.CreateILoadBalancerListener(ctx, params)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "iLoadbalancer.CreateILoadBalancerListener")
|
||||
}
|
||||
@@ -819,7 +819,7 @@ func (self *SManagedVirtualizationRegionDriver) RequestDeleteLoadbalancerListene
|
||||
return nil, errors.Wrap(err, "RegionDriver.RequestDeleteLoadbalancerListener.GetILoadBalancerListenerById")
|
||||
}
|
||||
|
||||
return nil, iListener.Delete()
|
||||
return nil, iListener.Delete(ctx)
|
||||
})
|
||||
return nil
|
||||
}
|
||||
@@ -945,7 +945,7 @@ func (self *SManagedVirtualizationRegionDriver) RequestSyncLoadbalancerListener(
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "regionDriver.RequestSyncLoadbalancerListener.GetIListener")
|
||||
}
|
||||
if err := iListener.Sync(params); err != nil {
|
||||
if err := iListener.Sync(ctx, params); err != nil {
|
||||
return nil, errors.Wrap(err, "regionDriver.RequestSyncLoadbalancerListener.SyncListener")
|
||||
}
|
||||
if err := iListener.Refresh(); err != nil {
|
||||
@@ -1088,7 +1088,7 @@ func (self *SManagedVirtualizationRegionDriver) RequestDeleteLoadbalancerListene
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
return nil, iListenerRule.Delete()
|
||||
return nil, iListenerRule.Delete(ctx)
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -133,6 +133,10 @@ func (self *SQcloudRegionDriver) ValidateCreateLoadbalancerListenerData(ctx cont
|
||||
return nil, httperrors.NewInputParameterError("backend group %s(%s) belongs to loadbalancer %s instead of %s",
|
||||
lbbg.Name, lbbg.Id, lbbg.LoadbalancerId, lb.Id)
|
||||
} else {
|
||||
if lbbg != nil {
|
||||
data.Set("backend_group_id", jsonutils.NewString(lbbg.GetId()))
|
||||
}
|
||||
|
||||
if utils.IsInStringArray(listenerType, []string{api.LB_LISTENER_TYPE_TCP, api.LB_LISTENER_TYPE_UDP}) {
|
||||
if lbbg == nil {
|
||||
return nil, httperrors.NewMissingParameterError("backend_group_id")
|
||||
@@ -529,9 +533,9 @@ func (self *SQcloudRegionDriver) RequestCreateLoadbalancerListener(ctx context.C
|
||||
}
|
||||
|
||||
if len(lbcert.ExternalId) == 0 {
|
||||
err = self.RequestCreateLoadbalancerCertificate(ctx, userCred, lbcert, task)
|
||||
_, err = self.createLoadbalancerCertificate(ctx, userCred, lbcert)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "qcloudRegionDriver.RequestCreateLoadbalancerListener.RequestCreateLoadbalancerCertificate")
|
||||
return nil, errors.Wrap(err, "qcloudRegionDriver.RequestCreateLoadbalancerListener.createLoadbalancerCertificate")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -561,7 +565,7 @@ func (self *SQcloudRegionDriver) RequestCreateLoadbalancerListener(ctx context.C
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "qcloudRegionDriver.RequestCreateLoadbalancerListener.GetILoadBalancerById")
|
||||
}
|
||||
iListener, err := iLoadbalancer.CreateILoadBalancerListener(params)
|
||||
iListener, err := iLoadbalancer.CreateILoadBalancerListener(ctx, params)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "qcloudRegionDriver.RequestCreateLoadbalancerListener.CreateILoadBalancerListener")
|
||||
}
|
||||
@@ -1092,7 +1096,7 @@ func (self *SQcloudRegionDriver) RequestSyncLoadbalancerBackend(ctx context.Cont
|
||||
return nil, errors.Wrap(err, "qcloudRegionDriver.RequestSyncLoadbalancerBackend.GetILoadbalancerBackendById")
|
||||
}
|
||||
|
||||
err = iBackend.SyncConf(lbb.Port, lbb.Weight)
|
||||
err = iBackend.SyncConf(ctx, lbb.Port, lbb.Weight)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "qcloudRegionDriver.RequestSyncLoadbalancerBackend.SyncConf")
|
||||
}
|
||||
@@ -1320,7 +1324,7 @@ func (self *SQcloudRegionDriver) RequestSyncLoadbalancerListener(ctx context.Con
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "regionDriver.RequestSyncLoadbalancerListener.GetIListener")
|
||||
}
|
||||
if err := iListener.Sync(params); err != nil {
|
||||
if err := iListener.Sync(ctx, params); err != nil {
|
||||
return nil, errors.Wrap(err, "regionDriver.RequestSyncLoadbalancerListener.SyncListener")
|
||||
}
|
||||
if err := iListener.Refresh(); err != nil {
|
||||
|
||||
@@ -80,7 +80,7 @@ func onHuaweiLoadbalancerListenerCreateComplete(ctx context.Context, lblis *mode
|
||||
return
|
||||
}
|
||||
// 服务器组已经存在,直接同步即可
|
||||
if err := ilbbg.Sync(groupParams); err != nil {
|
||||
if err := ilbbg.Sync(ctx, groupParams); err != nil {
|
||||
self.taskFail(ctx, lblis, err.Error())
|
||||
return
|
||||
} else {
|
||||
|
||||
@@ -82,7 +82,7 @@ func onHuaiweiPrepareLoadbalancerBackendgroup(ctx context.Context, region *model
|
||||
}
|
||||
groupParams.ListenerID = ""
|
||||
// 服务器组已经存在,直接同步即可
|
||||
if err := ilbbg.Sync(groupParams); err != nil {
|
||||
if err := ilbbg.Sync(ctx, groupParams); err != nil {
|
||||
self.taskFail(ctx, lbr, err.Error())
|
||||
return
|
||||
} else {
|
||||
@@ -133,7 +133,7 @@ func onAwsPrepareLoadbalancerBackendgroup(ctx context.Context, region *models.SC
|
||||
}
|
||||
|
||||
// 服务器组已经存在,直接同步即可
|
||||
if err := ilbbg.Sync(params); err != nil {
|
||||
if err := ilbbg.Sync(ctx, params); err != nil {
|
||||
self.taskFail(ctx, lbr, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -172,7 +173,7 @@ func (region *SRegion) GetLoadbalancerDetail(loadbalancerId string) (*SLoadbalan
|
||||
return &lb, body.Unmarshal(&lb)
|
||||
}
|
||||
|
||||
func (lb *SLoadbalancer) Delete() error {
|
||||
func (lb *SLoadbalancer) Delete(ctx context.Context) error {
|
||||
params := map[string]string{}
|
||||
params["RegionId"] = lb.region.RegionId
|
||||
params["LoadBalancerId"] = lb.LoadBalancerId
|
||||
@@ -232,7 +233,7 @@ func (lb *SLoadbalancer) CreateILoadBalancerBackendGroup(group *cloudprovider.SL
|
||||
}
|
||||
}
|
||||
|
||||
func (lb *SLoadbalancer) CreateILoadBalancerListener(listener *cloudprovider.SLoadbalancerListener) (cloudprovider.ICloudLoadbalancerListener, error) {
|
||||
func (lb *SLoadbalancer) CreateILoadBalancerListener(ctx context.Context, listener *cloudprovider.SLoadbalancerListener) (cloudprovider.ICloudLoadbalancerListener, error) {
|
||||
switch listener.ListenerType {
|
||||
case api.LB_LISTENER_TYPE_TCP:
|
||||
return lb.region.CreateLoadbalancerTCPListener(lb, listener)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
@@ -104,7 +105,7 @@ func (backend *SLoadbalancerBackend) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (backend *SLoadbalancerBackend) SyncConf(port, weight int) error {
|
||||
func (backend *SLoadbalancerBackend) SyncConf(ctx context.Context, port, weight int) error {
|
||||
err := backend.lbbg.lb.region.RemoveBackendVServer(backend.lbbg.lb.LoadBalancerId, backend.lbbg.VServerGroupId, backend.ServerId, backend.Port)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
@@ -214,7 +215,7 @@ func (region *SRegion) UpdateLoadBalancerBackendGroupName(name, groupId string)
|
||||
return err
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerBackendGroup) Sync(group *cloudprovider.SLoadbalancerBackendGroup) error {
|
||||
func (backendgroup *SLoadbalancerBackendGroup) Sync(ctx context.Context, group *cloudprovider.SLoadbalancerBackendGroup) error {
|
||||
if group == nil {
|
||||
return nil
|
||||
}
|
||||
@@ -233,7 +234,7 @@ func (region *SRegion) DeleteLoadBalancerBackendGroup(groupId string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerBackendGroup) Delete() error {
|
||||
func (backendgroup *SLoadbalancerBackendGroup) Delete(ctx context.Context) error {
|
||||
return backendgroup.lb.region.DeleteLoadBalancerBackendGroup(backendgroup.VServerGroupId)
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
@@ -81,7 +82,7 @@ func (backend *SLoadbalancerDefaultBackend) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (backend *SLoadbalancerDefaultBackend) SyncConf(port, weight int) error {
|
||||
func (backend *SLoadbalancerDefaultBackend) SyncConf(ctx context.Context, port, weight int) error {
|
||||
params := map[string]string{}
|
||||
params["RegionId"] = backend.lbbg.lb.region.RegionId
|
||||
params["LoadBalancerId"] = backend.lbbg.lb.LoadBalancerId
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
@@ -113,11 +114,11 @@ func (backendgroup *SLoadbalancerDefaultBackendGroup) GetILoadbalancerBackendByI
|
||||
return nil, cloudprovider.ErrNotFound
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerDefaultBackendGroup) Sync(group *cloudprovider.SLoadbalancerBackendGroup) error {
|
||||
func (backendgroup *SLoadbalancerDefaultBackendGroup) Sync(ctx context.Context, group *cloudprovider.SLoadbalancerBackendGroup) error {
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerDefaultBackendGroup) Delete() error {
|
||||
func (backendgroup *SLoadbalancerDefaultBackendGroup) Delete(ctx context.Context) error {
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
@@ -298,7 +299,7 @@ func (region *SRegion) CreateLoadbalancerHTTPListener(lb *SLoadbalancer, listene
|
||||
return iListener, nil
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPListener) Delete() error {
|
||||
func (listerner *SLoadbalancerHTTPListener) Delete(ctx context.Context) error {
|
||||
return listerner.lb.region.DeleteLoadbalancerListener(listerner.lb.LoadBalancerId, listerner.ListenerPort)
|
||||
}
|
||||
|
||||
@@ -361,7 +362,7 @@ func (region *SRegion) SyncLoadbalancerHTTPListener(lb *SLoadbalancer, listener
|
||||
return err
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPListener) Sync(lblis *cloudprovider.SLoadbalancerListener) error {
|
||||
func (listerner *SLoadbalancerHTTPListener) Sync(ctx context.Context, lblis *cloudprovider.SLoadbalancerListener) error {
|
||||
return listerner.lb.region.SyncLoadbalancerHTTPListener(listerner.lb, lblis)
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
@@ -328,7 +329,7 @@ func (region *SRegion) CreateLoadbalancerHTTPSListener(lb *SLoadbalancer, listen
|
||||
return iListener, nil
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPSListener) Delete() error {
|
||||
func (listerner *SLoadbalancerHTTPSListener) Delete(ctx context.Context) error {
|
||||
return listerner.lb.region.DeleteLoadbalancerListener(listerner.lb.LoadBalancerId, listerner.ListenerPort)
|
||||
}
|
||||
|
||||
@@ -383,7 +384,7 @@ func (region *SRegion) SyncLoadbalancerHTTPSListener(lb *SLoadbalancer, listener
|
||||
return err
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerHTTPSListener) Sync(lblis *cloudprovider.SLoadbalancerListener) error {
|
||||
func (listerner *SLoadbalancerHTTPSListener) Sync(ctx context.Context, lblis *cloudprovider.SLoadbalancerListener) error {
|
||||
return listerner.lb.region.SyncLoadbalancerHTTPSListener(listerner.lb, lblis)
|
||||
}
|
||||
|
||||
|
||||
@@ -15,10 +15,12 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
api "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
)
|
||||
|
||||
@@ -47,7 +49,7 @@ func (lbr *SLoadbalancerListenerRule) GetGlobalId() string {
|
||||
}
|
||||
|
||||
func (lbr *SLoadbalancerListenerRule) GetStatus() string {
|
||||
return ""
|
||||
return api.LB_STATUS_ENABLED
|
||||
}
|
||||
|
||||
func (lbr *SLoadbalancerListenerRule) GetMetadata() *jsonutils.JSONDict {
|
||||
@@ -116,7 +118,7 @@ func (region *SRegion) GetLoadbalancerListenerRules(loadbalancerId string, liste
|
||||
return rules, body.Unmarshal(&rules, "Rules", "Rule")
|
||||
}
|
||||
|
||||
func (lbr *SLoadbalancerListenerRule) Delete() error {
|
||||
func (lbr *SLoadbalancerListenerRule) Delete(ctx context.Context) error {
|
||||
if lbr.httpListener != nil {
|
||||
return lbr.httpListener.lb.region.DeleteLoadbalancerListenerRule(lbr.RuleId)
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
@@ -85,6 +86,6 @@ func (backend *SLoadbalancerMasterSlaveBackend) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (backend *SLoadbalancerMasterSlaveBackend) SyncConf(port, weight int) error {
|
||||
func (backend *SLoadbalancerMasterSlaveBackend) SyncConf(ctx context.Context, port, weight int) error {
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
@@ -185,7 +186,7 @@ func (region *SRegion) GetLoadbalancerMasterSlaveBackendgroupById(groupId string
|
||||
return group, body.Unmarshal(group)
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerMasterSlaveBackendGroup) Sync(group *cloudprovider.SLoadbalancerBackendGroup) error {
|
||||
func (backendgroup *SLoadbalancerMasterSlaveBackendGroup) Sync(ctx context.Context, group *cloudprovider.SLoadbalancerBackendGroup) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -197,7 +198,7 @@ func (region *SRegion) DeleteLoadbalancerMasterSlaveBackendgroup(groupId string)
|
||||
return err
|
||||
}
|
||||
|
||||
func (backendgroup *SLoadbalancerMasterSlaveBackendGroup) Delete() error {
|
||||
func (backendgroup *SLoadbalancerMasterSlaveBackendGroup) Delete(ctx context.Context) error {
|
||||
return backendgroup.lb.region.DeleteLoadbalancerMasterSlaveBackendgroup(backendgroup.MasterSlaveServerGroupId)
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
@@ -324,7 +325,7 @@ func (region *SRegion) CreateLoadbalancerTCPListener(lb *SLoadbalancer, listener
|
||||
return iListener, nil
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerTCPListener) Delete() error {
|
||||
func (listerner *SLoadbalancerTCPListener) Delete(ctx context.Context) error {
|
||||
return listerner.lb.region.DeleteLoadbalancerListener(listerner.lb.LoadBalancerId, listerner.ListenerPort)
|
||||
}
|
||||
|
||||
@@ -350,7 +351,7 @@ func (region *SRegion) SyncLoadbalancerTCPListener(lb *SLoadbalancer, listener *
|
||||
return err
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerTCPListener) Sync(lblis *cloudprovider.SLoadbalancerListener) error {
|
||||
func (listerner *SLoadbalancerTCPListener) Sync(ctx context.Context, lblis *cloudprovider.SLoadbalancerListener) error {
|
||||
return listerner.lb.region.SyncLoadbalancerTCPListener(listerner.lb, lblis)
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
@@ -250,7 +251,7 @@ func (region *SRegion) CreateLoadbalancerUDPListener(lb *SLoadbalancer, listener
|
||||
return iListener, nil
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerUDPListener) Delete() error {
|
||||
func (listerner *SLoadbalancerUDPListener) Delete(ctx context.Context) error {
|
||||
return listerner.lb.region.DeleteLoadbalancerListener(listerner.lb.LoadBalancerId, listerner.ListenerPort)
|
||||
}
|
||||
|
||||
@@ -276,7 +277,7 @@ func (region *SRegion) SyncLoadbalancerUDPListener(lb *SLoadbalancer, listener *
|
||||
return err
|
||||
}
|
||||
|
||||
func (listerner *SLoadbalancerUDPListener) Sync(lblis *cloudprovider.SLoadbalancerListener) error {
|
||||
func (listerner *SLoadbalancerUDPListener) Sync(ctx context.Context, lblis *cloudprovider.SLoadbalancerListener) error {
|
||||
return listerner.lb.region.SyncLoadbalancerUDPListener(listerner.lb, lblis)
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aws
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strconv"
|
||||
@@ -184,7 +185,7 @@ func (self *SElb) GetEgressMbps() int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (self *SElb) Delete() error {
|
||||
func (self *SElb) Delete(ctx context.Context) error {
|
||||
return self.region.DeleteElb(self.GetId())
|
||||
}
|
||||
|
||||
@@ -240,7 +241,7 @@ func (self *SElb) GetILoadBalancerBackendGroupById(groupId string) (cloudprovide
|
||||
return self.region.GetElbBackendgroup(groupId)
|
||||
}
|
||||
|
||||
func (self *SElb) CreateILoadBalancerListener(listener *cloudprovider.SLoadbalancerListener) (cloudprovider.ICloudLoadbalancerListener, error) {
|
||||
func (self *SElb) CreateILoadBalancerListener(ctx context.Context, listener *cloudprovider.SLoadbalancerListener) (cloudprovider.ICloudLoadbalancerListener, error) {
|
||||
ret, err := self.region.CreateElbListener(listener)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aws
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
@@ -93,7 +94,7 @@ func (self *SElbBackend) GetBackendId() string {
|
||||
return self.Target.ID
|
||||
}
|
||||
|
||||
func (self *SElbBackend) SyncConf(port, weight int) error {
|
||||
func (self *SElbBackend) SyncConf(ctx context.Context, port, weight int) error {
|
||||
return self.region.SyncElbBackend(self.GetId(), self.GetBackendId(), self.Target.Port, port)
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aws
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
@@ -216,11 +217,11 @@ func (self *SElbBackendGroup) RemoveBackendServer(serverId string, weight int, p
|
||||
return self.region.RemoveElbBackend(self.GetId(), serverId, weight, port)
|
||||
}
|
||||
|
||||
func (self *SElbBackendGroup) Delete() error {
|
||||
func (self *SElbBackendGroup) Delete(ctx context.Context) error {
|
||||
return self.region.DeleteElbBackendGroup(self.GetId())
|
||||
}
|
||||
|
||||
func (self *SElbBackendGroup) Sync(group *cloudprovider.SLoadbalancerBackendGroup) error {
|
||||
func (self *SElbBackendGroup) Sync(ctx context.Context, group *cloudprovider.SLoadbalancerBackendGroup) error {
|
||||
return self.region.SyncELbBackendGroup(self.GetId(), group)
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aws
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strconv"
|
||||
@@ -449,11 +450,11 @@ func (self *SElbListener) Stop() error {
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
func (self *SElbListener) Sync(listener *cloudprovider.SLoadbalancerListener) error {
|
||||
func (self *SElbListener) Sync(ctx context.Context, listener *cloudprovider.SLoadbalancerListener) error {
|
||||
return self.region.SyncElbListener(self, listener)
|
||||
}
|
||||
|
||||
func (self *SElbListener) Delete() error {
|
||||
func (self *SElbListener) Delete(ctx context.Context) error {
|
||||
return self.region.DeleteElbListener(self.GetId())
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package aws
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strings"
|
||||
@@ -160,7 +161,7 @@ func (self *SElbListenerRule) GetBackendGroupId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (self *SElbListenerRule) Delete() error {
|
||||
func (self *SElbListenerRule) Delete(ctx context.Context) error {
|
||||
return self.region.DeleteElbListenerRule(self.GetId())
|
||||
}
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@ func (self *SEip) GetAssociationType() string {
|
||||
for i := range orders {
|
||||
order := orders[i]
|
||||
if strings.Contains(order.ResourceType, "LOADBALANCER") {
|
||||
return api.EIP_ASSOCIATE_TYPE_ELB
|
||||
return api.EIP_ASSOCIATE_TYPE_LOADBALANCER
|
||||
} else {
|
||||
return api.EIP_ASSOCIATE_TYPE_SERVER
|
||||
}
|
||||
|
||||
@@ -16,9 +16,11 @@ package huawei
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/log"
|
||||
|
||||
billing_api "yunion.io/x/onecloud/pkg/apis/billing"
|
||||
api "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
@@ -163,11 +165,17 @@ func (self *SEipAddress) GetPort() *Port {
|
||||
|
||||
func (self *SEipAddress) GetAssociationType() string {
|
||||
port := self.GetPort()
|
||||
if port != nil {
|
||||
return port.GetAssociateType()
|
||||
if port == nil {
|
||||
log.Errorf("SEipAddress.GetAssociationType port not found %#v", self)
|
||||
return api.EIP_ASSOCIATE_TYPE_UNKNOWN
|
||||
}
|
||||
|
||||
return ""
|
||||
owner := port.DeviceOwner
|
||||
if strings.Contains(owner, "LOADBALANCER") {
|
||||
return api.EIP_ASSOCIATE_TYPE_LOADBALANCER
|
||||
} else {
|
||||
return api.EIP_ASSOCIATE_TYPE_SERVER
|
||||
}
|
||||
}
|
||||
|
||||
func (self *SEipAddress) GetAssociationExternalId() string {
|
||||
|
||||
@@ -15,10 +15,12 @@
|
||||
package huawei
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/log"
|
||||
|
||||
api "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
@@ -152,9 +154,16 @@ func (self *SLoadbalancer) GetNetworkIds() []string {
|
||||
|
||||
func (self *SLoadbalancer) GetNetwork() *SNetwork {
|
||||
if self.subnet == nil {
|
||||
net, err := self.region.getNetwork(self.VipSubnetID)
|
||||
port, err := self.region.GetPort(self.VipPortID)
|
||||
if err == nil {
|
||||
self.subnet = net
|
||||
net, err := self.region.getNetwork(port.NetworkID)
|
||||
if err == nil {
|
||||
self.subnet = net
|
||||
} else {
|
||||
log.Debugf("huawei.SLoadbalancer.getNetwork %s", err)
|
||||
}
|
||||
} else {
|
||||
log.Debugf("huawei.SLoadbalancer.GetPort %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,7 +225,7 @@ func (self *SLoadbalancer) GetEgressMbps() int {
|
||||
}
|
||||
|
||||
// https://support.huaweicloud.com/api-elb/zh-cn_topic_0141008275.html
|
||||
func (self *SLoadbalancer) Delete() error {
|
||||
func (self *SLoadbalancer) Delete(ctx context.Context) error {
|
||||
return self.region.DeleteLoadBalancer(self.GetId())
|
||||
}
|
||||
|
||||
@@ -286,7 +295,7 @@ func (self *SLoadbalancer) GetILoadBalancerBackendGroupById(groupId string) (clo
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (self *SLoadbalancer) CreateILoadBalancerListener(listener *cloudprovider.SLoadbalancerListener) (cloudprovider.ICloudLoadbalancerListener, error) {
|
||||
func (self *SLoadbalancer) CreateILoadBalancerListener(ctx context.Context, listener *cloudprovider.SLoadbalancerListener) (cloudprovider.ICloudLoadbalancerListener, error) {
|
||||
ret, err := self.region.CreateLoadBalancerListener(listener)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
package huawei
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/log"
|
||||
"yunion.io/x/pkg/utils"
|
||||
@@ -120,7 +122,7 @@ func (self *SElbBackend) GetBackendId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (self *SElbBackend) SyncConf(port, weight int) error {
|
||||
func (self *SElbBackend) SyncConf(ctx context.Context, port, weight int) error {
|
||||
if port > 0 {
|
||||
log.Warningf("Elb backend SyncConf unsupport modify port")
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package huawei
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -312,7 +313,7 @@ func (self *SElbBackendGroup) RemoveBackendServer(backendId string, weight int,
|
||||
return cloudprovider.WaitDeleted(ibackend, 2*time.Second, 30*time.Second)
|
||||
}
|
||||
|
||||
func (self *SElbBackendGroup) Delete() error {
|
||||
func (self *SElbBackendGroup) Delete(ctx context.Context) error {
|
||||
if len(self.HealthMonitorID) > 0 {
|
||||
err := self.region.DeleteLoadbalancerHealthCheck(self.HealthMonitorID)
|
||||
if err != nil {
|
||||
@@ -344,7 +345,7 @@ func (self *SElbBackendGroup) Delete() error {
|
||||
return cloudprovider.WaitDeleted(self, 2*time.Second, 30*time.Second)
|
||||
}
|
||||
|
||||
func (self *SElbBackendGroup) Sync(group *cloudprovider.SLoadbalancerBackendGroup) error {
|
||||
func (self *SElbBackendGroup) Sync(ctx context.Context, group *cloudprovider.SLoadbalancerBackendGroup) error {
|
||||
if group == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package huawei
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
@@ -550,11 +551,11 @@ default_pool_id对应的后端云服务器组的protocol和监听器的protocol
|
||||
监听器的protocol为UDP时,后端云服务器组的protocol必须为UDP。
|
||||
监听器的protocol为HTTP或TERMINATED_HTTPS时,后端云服务器组的protocol必须为HTTP。
|
||||
*/
|
||||
func (self *SElbListener) Sync(listener *cloudprovider.SLoadbalancerListener) error {
|
||||
func (self *SElbListener) Sync(ctx context.Context, listener *cloudprovider.SLoadbalancerListener) error {
|
||||
return self.lb.region.UpdateLoadBalancerListener(self.GetId(), listener)
|
||||
}
|
||||
|
||||
func (self *SElbListener) Delete() error {
|
||||
func (self *SElbListener) Delete(ctx context.Context) error {
|
||||
err := DoDelete(self.lb.region.ecsClient.ElbListeners.Delete, self.GetId(), nil, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
package huawei
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/log"
|
||||
|
||||
@@ -161,7 +163,7 @@ func (self *SElbListenerPolicy) GetBackendGroupId() string {
|
||||
return self.RedirectPoolID
|
||||
}
|
||||
|
||||
func (self *SElbListenerPolicy) Delete() error {
|
||||
func (self *SElbListenerPolicy) Delete(ctx context.Context) error {
|
||||
return self.region.DeleteLoadBalancerPolicy(self.GetId())
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package qcloud
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
@@ -25,6 +26,7 @@ import (
|
||||
"yunion.io/x/pkg/utils"
|
||||
|
||||
api "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db/lockman"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
"yunion.io/x/onecloud/pkg/multicloud"
|
||||
)
|
||||
@@ -83,7 +85,10 @@ func (self *SLoadbalancer) GetEgressMbps() int {
|
||||
}
|
||||
|
||||
// https://cloud.tencent.com/document/product/214/30689
|
||||
func (self *SLoadbalancer) Delete() error {
|
||||
func (self *SLoadbalancer) Delete(ctx context.Context) error {
|
||||
lockman.LockRawObject(ctx, "qcloud.SLoadbalancer.Delete", self.region.client.ownerId)
|
||||
defer lockman.ReleaseRawObject(ctx, "qcloud.SLoadbalancer.Delete", self.region.client.ownerId)
|
||||
|
||||
if self.Forward == LB_TYPE_APPLICATION {
|
||||
_, err := self.region.DeleteLoadbalancer(self.GetId())
|
||||
if err != nil {
|
||||
@@ -144,7 +149,10 @@ func onecloudHealthCodeToQcloud(codes string) int {
|
||||
// https://cloud.tencent.com/document/product/214/30693
|
||||
// todo: 1.限制比较多必须加参数校验 2.Onecloud 不支持双向证书可能存在兼容性问题
|
||||
// 应用型负载均衡 传统型不支持设置SNI
|
||||
func (self *SLoadbalancer) CreateILoadBalancerListener(listener *cloudprovider.SLoadbalancerListener) (cloudprovider.ICloudLoadbalancerListener, error) {
|
||||
func (self *SLoadbalancer) CreateILoadBalancerListener(ctx context.Context, listener *cloudprovider.SLoadbalancerListener) (cloudprovider.ICloudLoadbalancerListener, error) {
|
||||
lockman.LockRawObject(ctx, "qcloud.SLoadbalancer.CreateILoadBalancerListener", self.region.client.ownerId)
|
||||
defer lockman.ReleaseRawObject(ctx, "qcloud.SLoadbalancer.CreateILoadBalancerListener", self.region.client.ownerId)
|
||||
|
||||
sniSwitch := 0
|
||||
hc := getHealthCheck(listener)
|
||||
cert := getCertificate(listener)
|
||||
|
||||
@@ -15,11 +15,13 @@
|
||||
package qcloud
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
api "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db/lockman"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
)
|
||||
|
||||
@@ -189,7 +191,10 @@ func (self *SLBBackend) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (self *SLBBackend) SyncConf(port, weight int) error {
|
||||
func (self *SLBBackend) SyncConf(ctx context.Context, port, weight int) error {
|
||||
lockman.LockRawObject(ctx, "qcloud.SLBBackend.SyncConf", self.group.lb.region.client.ownerId)
|
||||
defer lockman.ReleaseRawObject(ctx, "qcloud.SLBBackend.SyncConf", self.group.lb.region.client.ownerId)
|
||||
|
||||
err := self.group.UpdateBackendServer(self.InstanceID, self.Weight, self.Port, weight, port)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package qcloud
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
@@ -299,12 +300,12 @@ func (self *SLBBackendGroup) UpdateBackendServer(serverId string, oldWeight, old
|
||||
}
|
||||
|
||||
// 腾讯云无后端服务器组。
|
||||
func (self *SLBBackendGroup) Delete() error {
|
||||
func (self *SLBBackendGroup) Delete(ctx context.Context) error {
|
||||
return fmt.Errorf("Please remove related listener/rule frist")
|
||||
}
|
||||
|
||||
// 腾讯云无后端服务器组
|
||||
func (self *SLBBackendGroup) Sync(group *cloudprovider.SLoadbalancerBackendGroup) error {
|
||||
func (self *SLBBackendGroup) Sync(ctx context.Context, group *cloudprovider.SLoadbalancerBackendGroup) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package qcloud
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
@@ -23,6 +24,7 @@ import (
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
api "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db/lockman"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
)
|
||||
|
||||
@@ -144,7 +146,10 @@ func (self *SLBListener) Stop() error {
|
||||
}
|
||||
|
||||
// https://cloud.tencent.com/document/product/214/30677
|
||||
func (self *SLBListener) Sync(listener *cloudprovider.SLoadbalancerListener) error {
|
||||
func (self *SLBListener) Sync(ctx context.Context, listener *cloudprovider.SLoadbalancerListener) error {
|
||||
lockman.LockRawObject(ctx, "qcloud.SLBListener.Sync", self.lb.region.client.ownerId)
|
||||
defer lockman.ReleaseRawObject(ctx, "qcloud.SLBListener.Sync", self.lb.region.client.ownerId)
|
||||
|
||||
hc := getHealthCheck(listener)
|
||||
cert := getCertificate(listener)
|
||||
requestId, err := self.lb.region.UpdateLoadbalancerListener(
|
||||
@@ -163,7 +168,10 @@ func (self *SLBListener) Sync(listener *cloudprovider.SLoadbalancerListener) err
|
||||
return self.lb.region.WaitLBTaskSuccess(requestId, 5*time.Second, 60*time.Second)
|
||||
}
|
||||
|
||||
func (self *SLBListener) Delete() error {
|
||||
func (self *SLBListener) Delete(ctx context.Context) error {
|
||||
lockman.LockRawObject(ctx, "qcloud.SLBListener.Delete", self.lb.region.client.ownerId)
|
||||
defer lockman.ReleaseRawObject(ctx, "qcloud.SLBListener.Delete", self.lb.region.client.ownerId)
|
||||
|
||||
requestId, err := self.lb.region.DeleteLoadbalancerListener(self.lb.Forward, self.lb.GetId(), self.GetId())
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -597,6 +605,10 @@ func (self *SRegion) deleteClassicLoadbalancerListener(lbid string, listenerId s
|
||||
|
||||
// 返回requestID
|
||||
func (self *SRegion) DeleteLoadbalancerListener(t LB_TYPE, lbid string, listenerId string) (string, error) {
|
||||
ctx := context.Background()
|
||||
lockman.LockRawObject(ctx, "qcloud.SRegion.DeleteLoadbalancerListener", self.client.ownerId)
|
||||
defer lockman.ReleaseRawObject(ctx, "qcloud.SRegion.DeleteLoadbalancerListener", self.client.ownerId)
|
||||
|
||||
if len(lbid) == 0 {
|
||||
return "", fmt.Errorf("loadbalancer id should not be empty")
|
||||
}
|
||||
|
||||
@@ -15,12 +15,14 @@
|
||||
package qcloud
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
api "yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db/lockman"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
)
|
||||
|
||||
@@ -37,7 +39,10 @@ type SLBListenerRule struct {
|
||||
}
|
||||
|
||||
// https://cloud.tencent.com/document/api/214/30688
|
||||
func (self *SLBListenerRule) Delete() error {
|
||||
func (self *SLBListenerRule) Delete(ctx context.Context) error {
|
||||
lockman.LockRawObject(ctx, "qcloud.SLBListenerRule.Delete", self.listener.lb.region.client.ownerId)
|
||||
defer lockman.ReleaseRawObject(ctx, "qcloud.SLBListenerRule.Delete", self.listener.lb.region.client.ownerId)
|
||||
|
||||
_, err := self.listener.lb.region.DeleteLBListenerRule(self.listener.lb.GetId(), self.listener.GetId(), self.GetId())
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user