diff --git a/go.mod b/go.mod index c8b9908b00..bd28769d22 100644 --- a/go.mod +++ b/go.mod @@ -83,7 +83,7 @@ require ( k8s.io/client-go v0.19.3 k8s.io/cluster-bootstrap v0.19.3 moul.io/http2curl/v2 v2.3.0 - yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20221101083441-16667c2d550f + yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20221104072544-5e692eda880d yunion.io/x/executor v0.0.0-20211018100936-39a2cd966656 yunion.io/x/jsonutils v1.0.1-0.20220819091305-3bab322ab4fd yunion.io/x/log v1.0.0 diff --git a/go.sum b/go.sum index e6837fb8c0..a220accdc1 100644 --- a/go.sum +++ b/go.sum @@ -1162,8 +1162,8 @@ sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20221101083441-16667c2d550f h1:2+R3KK+2CHf+JA2ODt6b/XmxH148EyeBtMrfHJg4ZJ8= -yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20221101083441-16667c2d550f/go.mod h1:drc/WDD65r6wI1tSejk19xcl9QwmzZlgJGXN7a9o2KQ= +yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20221104072544-5e692eda880d h1:GiL8q1iq/F7ANcW58haya8ZjwaRHsCrc6N8mZ0GKrCk= +yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20221104072544-5e692eda880d/go.mod h1:drc/WDD65r6wI1tSejk19xcl9QwmzZlgJGXN7a9o2KQ= yunion.io/x/executor v0.0.0-20211018100936-39a2cd966656 h1:0zlZD5uhZoIHgLVAWCz2aHaYk2ZrNsACCYD7R6EIBII= yunion.io/x/executor v0.0.0-20211018100936-39a2cd966656/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws= yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634= diff --git a/vendor/modules.txt b/vendor/modules.txt index b6635e7745..254f0285d0 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1428,7 +1428,7 @@ sigs.k8s.io/structured-merge-diff/v4/value # sigs.k8s.io/yaml v1.2.0 ## explicit; go 1.12 sigs.k8s.io/yaml -# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20221101083441-16667c2d550f +# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20221104072544-5e692eda880d ## explicit; go 1.18 yunion.io/x/cloudmux/pkg/apis yunion.io/x/cloudmux/pkg/apis/billing diff --git a/vendor/yunion.io/x/cloudmux/pkg/apis/compute/modelarts_pool.go b/vendor/yunion.io/x/cloudmux/pkg/apis/compute/modelarts_pool.go new file mode 100644 index 0000000000..10d0ee8c39 --- /dev/null +++ b/vendor/yunion.io/x/cloudmux/pkg/apis/compute/modelarts_pool.go @@ -0,0 +1,20 @@ +// Copyright 2019 Yunion +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package compute + +const ( + MODELARTS_POOL_STATUS_RUNNING = "running" + MODELARTS_POOL_STATUS_CREATING = "creating" +) diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/dns_domain_record.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/dns_domain_record.go index 8c979ae08c..8536a5fe7b 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/dns_domain_record.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/dns_domain_record.go @@ -16,6 +16,7 @@ package aliyun import ( "strconv" + "strings" "yunion.io/x/jsonutils" "yunion.io/x/pkg/errors" @@ -260,6 +261,27 @@ func (self *SDomainRecord) GetPolicyType() cloudprovider.TDnsPolicyType { case "oversea": return cloudprovider.DnsPolicyTypeByGeoLocation default: + for _, prefix := range []string{ + "cn_telecom", + "cn_unicom", + "cn_mobile", + "cn_edu", + "cn_drpeng", + "cn_btvn", + } { + if strings.HasPrefix(self.Line, prefix) { + return cloudprovider.DnsPolicyTypeByCarrier + } + } + for _, prefix := range []string{ + "cn_region", + "os_", + "aliyun_", + } { + if strings.HasPrefix(self.Line, prefix) { + return cloudprovider.DnsPolicyTypeByGeoLocation + } + } return cloudprovider.DnsPolicyTypeSimple } } @@ -276,7 +298,6 @@ func (self *SDomainRecord) GetPolicyValue() cloudprovider.TDnsPolicyValue { return cloudprovider.DnsPolicyValueOversea case "edu": return cloudprovider.DnsPolicyValueCernet - case "drpeng": return cloudprovider.DnsPolicyValueDrPeng case "btvn": @@ -289,9 +310,8 @@ func (self *SDomainRecord) GetPolicyValue() cloudprovider.TDnsPolicyValue { return cloudprovider.DnsPolicyValueBing case "youdao": return cloudprovider.DnsPolicyValueYoudao - } - return "" + return cloudprovider.TDnsPolicyValue(self.Line) } func (self *SDomainRecord) GetPolicyOptions() *jsonutils.JSONDict { diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/cloudpods/cloudpods.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/cloudpods/cloudpods.go index 66b8fb02e3..710ec224e1 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/cloudpods/cloudpods.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/cloudpods/cloudpods.go @@ -16,6 +16,7 @@ package cloudpods import ( "context" + "fmt" "net/http" "strings" @@ -59,10 +60,11 @@ type ModelManager interface { type CloudpodsClientConfig struct { cpcfg cloudprovider.ProviderConfig - authURL string - region string - accessKey string - accessSecret string + authURL string + region string + accessKey string + accessSecret string + adminProjectId string debug bool } @@ -81,6 +83,11 @@ func (cfg *CloudpodsClientConfig) Debug(debug bool) *CloudpodsClientConfig { return cfg } +func (cfg *CloudpodsClientConfig) AdminProjectId(id string) *CloudpodsClientConfig { + cfg.adminProjectId = id + return cfg +} + func (cfg *CloudpodsClientConfig) CloudproviderConfig(cpcfg cloudprovider.ProviderConfig) *CloudpodsClientConfig { cfg.cpcfg = cpcfg return cfg @@ -123,6 +130,12 @@ func (self *SCloudpodsClient) auth() error { } } self.s = client.NewSession(context.Background(), serviceRegion, "", "publicURL", token) + if !self.s.GetToken().HasSystemAdminPrivilege() { + return fmt.Errorf("no system admin privilege") + } + if self.s.GetProjectDomainId() == self.adminProjectId { + return fmt.Errorf("You can't manage yourself environment") + } return nil } diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/cloudpods/provider/provider.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/cloudpods/provider/provider.go index c759cc872e..3224adb89c 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/cloudpods/provider/provider.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/cloudpods/provider/provider.go @@ -19,8 +19,10 @@ import ( "yunion.io/x/jsonutils" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" + "yunion.io/x/onecloud/pkg/mcclient/auth" api "yunion.io/x/cloudmux/pkg/apis/compute" "yunion.io/x/cloudmux/pkg/cloudprovider" @@ -74,12 +76,15 @@ func (self *SCloudpodsProviderFactory) ValidateUpdateCloudaccountCredential(ctx } func (self *SCloudpodsProviderFactory) GetProvider(cfg cloudprovider.ProviderConfig) (cloudprovider.ICloudProvider, error) { + adminProjectId := auth.GetAdminSession(context.TODO(), options.Options.Region).GetProjectDomainId() client, err := cloudpods.NewCloudpodsClient( cloudpods.NewCloudpodsClientConfig( cfg.URL, cfg.Account, cfg.Secret, - ).Debug(cfg.Debug).CloudproviderConfig(cfg), + ).Debug(cfg.Debug). + CloudproviderConfig(cfg). + AdminProjectId(adminProjectId), ) if err != nil { return nil, err diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/virtualmachine.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/virtualmachine.go index 5018a61c9a..ce43122ef9 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/virtualmachine.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/esxi/virtualmachine.go @@ -37,17 +37,17 @@ import ( "yunion.io/x/pkg/util/regutils" "yunion.io/x/pkg/utils" - billing_api "yunion.io/x/cloudmux/pkg/apis/billing" - api "yunion.io/x/cloudmux/pkg/apis/compute" - "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" cloudtypes "yunion.io/x/onecloud/pkg/cloudcommon/types" - "yunion.io/x/cloudmux/pkg/cloudprovider" "yunion.io/x/onecloud/pkg/httperrors" - "yunion.io/x/cloudmux/pkg/multicloud" "yunion.io/x/onecloud/pkg/util/billing" "yunion.io/x/onecloud/pkg/util/imagetools" "yunion.io/x/onecloud/pkg/util/netutils2" "yunion.io/x/onecloud/pkg/util/version" + + billing_api "yunion.io/x/cloudmux/pkg/apis/billing" + api "yunion.io/x/cloudmux/pkg/apis/compute" + "yunion.io/x/cloudmux/pkg/cloudprovider" + "yunion.io/x/cloudmux/pkg/multicloud" ) var ( @@ -441,9 +441,6 @@ func (self *SVirtualMachine) startVM(ctx context.Context) error { return errors.Wrap(httperrors.ErrInvalidStatus, "no valid host") } - lockman.LockRawObject(ctx, "host", ihost.GetGlobalId()) - defer lockman.ReleaseRawObject(ctx, "host", ihost.GetGlobalId()) - err := self.makeNicsStartConnected(ctx) if err != nil { log.Errorf("self.makeNicsStartConnected %s", err) diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/hcso/modelarts.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/hcso/modelarts.go index cdf1ed3f23..ec0cbedfc4 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/hcso/modelarts.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/hcso/modelarts.go @@ -22,9 +22,9 @@ import ( "yunion.io/x/pkg/errors" billing_api "yunion.io/x/cloudmux/pkg/apis/billing" + "yunion.io/x/cloudmux/pkg/apis/compute" "yunion.io/x/cloudmux/pkg/cloudprovider" "yunion.io/x/cloudmux/pkg/multicloud" - api "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/util/billing" ) @@ -288,12 +288,8 @@ func (self *SModelartsPool) GetName() string { func (self *SModelartsPool) GetStatus() string { res := strings.ToLower(self.Status.Phase) switch { - case res == api.MODELARTS_POOL_STATUS_RUNNING && len(self.Status.Resource.Creating) != 0: - res = api.MODELARTS_POOL_STATUS_CREATING - case self.Status.Phase == "CreationFailed": - res = api.MODELARTS_POOL_STATUS_CREATE_FAILED - case self.Status.Phase == "SeclingFailed": - res = api.MODELARTS_POOL_STATUS_CHANGE_CONFIG_FAILED + case res == compute.MODELARTS_POOL_STATUS_RUNNING && len(self.Status.Resource.Creating) != 0: + res = compute.MODELARTS_POOL_STATUS_CREATING } return res } diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/hcso/saml_provider.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/hcso/saml_provider.go index 4efbba45de..0a57fc709f 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/hcso/saml_provider.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/hcso/saml_provider.go @@ -220,12 +220,31 @@ func (self *SHuaweiClient) CreateSAMLProvider(opts *cloudprovider.SAMLProviderCr name = append(name, '-') } } - opts.Name = string(name) - _, err = client.SAMLProviders.Update(opts.Name, params) - if err != nil { - if he, ok := err.(*modules.HuaweiClientError); ok && he.Code != 409 { - return nil, errors.Wrapf(err, "SAMLProviders.Update") + samlName := string(name) + err = func() error { + idx := 1 + for { + _, err = client.SAMLProviders.Update(samlName, params) + if err == nil { + return nil + } + he, ok := err.(*modules.HuaweiClientError) + if !ok { + return errors.Wrapf(err, "SAMLProviders.Update") + } + if he.Code != 409 { + return errors.Wrapf(err, "SAMLProviders.Update") + } + samlName = fmt.Sprintf("%s-%d", string(name), idx) + idx++ + if idx >= 40 { + break + } } + return err + }() + if err != nil { + return nil, errors.Wrapf(err, "saml provider create") } ret := SAMLProvider{client: self, Id: opts.Name} err = self.UpdateSAMLProviderMetadata(opts.Name, opts.Metadata.String()) diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/modelarts_pool.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/modelarts_pool.go index dfb6b50902..05387b26c8 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/modelarts_pool.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/modelarts_pool.go @@ -22,9 +22,9 @@ import ( "yunion.io/x/pkg/errors" billing_api "yunion.io/x/cloudmux/pkg/apis/billing" + "yunion.io/x/cloudmux/pkg/apis/compute" "yunion.io/x/cloudmux/pkg/cloudprovider" "yunion.io/x/cloudmux/pkg/multicloud" - api "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/util/billing" ) @@ -287,12 +287,8 @@ func (self *SModelartsPool) GetName() string { func (self *SModelartsPool) GetStatus() string { res := strings.ToLower(self.Status.Phase) switch { - case res == api.MODELARTS_POOL_STATUS_RUNNING && len(self.Status.Resource.Creating) != 0: - res = api.MODELARTS_POOL_STATUS_CREATING - case self.Status.Phase == "CreationFailed": - res = api.MODELARTS_POOL_STATUS_CREATE_FAILED - case self.Status.Phase == "SeclingFailed": - res = api.MODELARTS_POOL_STATUS_CHANGE_CONFIG_FAILED + case res == compute.MODELARTS_POOL_STATUS_RUNNING && len(self.Status.Resource.Creating) != 0: + res = compute.MODELARTS_POOL_STATUS_CREATING } return res } diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer.go index cbeb124557..482ca096d9 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer.go @@ -27,7 +27,6 @@ import ( "yunion.io/x/pkg/utils" api "yunion.io/x/cloudmux/pkg/apis/compute" - "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/cloudmux/pkg/cloudprovider" "yunion.io/x/cloudmux/pkg/multicloud" ) @@ -103,9 +102,6 @@ func (self *SLoadbalancer) GetEgressMbps() int { // https://cloud.tencent.com/document/product/214/30689 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 { @@ -167,9 +163,6 @@ func onecloudHealthCodeToQcloud(codes string) int { // todo: 1.限制比较多必须加参数校验 2.Onecloud 不支持双向证书可能存在兼容性问题 // 应用型负载均衡 传统型不支持设置SNI 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) diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_backend.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_backend.go index 954e91c916..da80079b89 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_backend.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_backend.go @@ -21,7 +21,6 @@ import ( "yunion.io/x/jsonutils" api "yunion.io/x/cloudmux/pkg/apis/compute" - "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/cloudmux/pkg/cloudprovider" "yunion.io/x/cloudmux/pkg/multicloud" ) @@ -195,9 +194,6 @@ func (self *SLBBackend) GetProjectId() string { } 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 diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_listener.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_listener.go index 0ab633683c..bcf6a8a627 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_listener.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_listener.go @@ -24,7 +24,6 @@ import ( "yunion.io/x/jsonutils" api "yunion.io/x/cloudmux/pkg/apis/compute" - "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/cloudmux/pkg/cloudprovider" "yunion.io/x/cloudmux/pkg/multicloud" ) @@ -151,9 +150,6 @@ func (self *SLBListener) Stop() error { // https://cloud.tencent.com/document/product/214/30677 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( @@ -173,9 +169,6 @@ func (self *SLBListener) Sync(ctx context.Context, listener *cloudprovider.SLoad } 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 @@ -524,7 +517,7 @@ func (self *SRegion) GetLoadbalancerListeners(lbid string, t LB_TYPE, protocol s return listeners, nil } -// 返回requestID +// 返回requestID func (self *SRegion) CreateLoadbalancerListenerRule(lbid string, listenerId string, domain string, url string, scheduler string, sessionExpireTime int, hc *healthCheck) (string, error) { if len(lbid) == 0 { return "", fmt.Errorf("loadbalancer id should not be empty") @@ -560,7 +553,7 @@ func (self *SRegion) CreateLoadbalancerListenerRule(lbid string, listenerId stri return resp.GetString("RequestId") } -// 返回requestID +// 返回requestID func (self *SRegion) deleteLoadbalancerListener(lbid string, listenerId string) (string, error) { if len(lbid) == 0 { return "", fmt.Errorf("loadbalancer id should not be empty") @@ -579,7 +572,7 @@ func (self *SRegion) deleteLoadbalancerListener(lbid string, listenerId string) return resp.GetString("RequestId") } -// 返回requestID +// 返回requestID func (self *SRegion) deleteClassicLoadbalancerListener(lbid string, listenerId string) (string, error) { if len(lbid) == 0 { return "", fmt.Errorf("classic loadbalancer id should not be empty") @@ -603,12 +596,8 @@ func (self *SRegion) deleteClassicLoadbalancerListener(lbid string, listenerId s return fmt.Sprintf("%.f", _requestId), nil } -// 返回requestID +// 返回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") } diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_listenerrule.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_listenerrule.go index 42510f5fad..1550575a17 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_listenerrule.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/qcloud/loadbalancer_listenerrule.go @@ -22,7 +22,6 @@ import ( "yunion.io/x/jsonutils" api "yunion.io/x/cloudmux/pkg/apis/compute" - "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/cloudmux/pkg/cloudprovider" "yunion.io/x/cloudmux/pkg/multicloud" ) @@ -44,9 +43,6 @@ type SLBListenerRule struct { // https://cloud.tencent.com/document/api/214/30688 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 diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/remotefile/eip.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/remotefile/eip.go index 937e897c49..21a30188a3 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/remotefile/eip.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/remotefile/eip.go @@ -17,6 +17,7 @@ package remotefile import ( api "yunion.io/x/cloudmux/pkg/apis/compute" "yunion.io/x/cloudmux/pkg/cloudprovider" + "yunion.io/x/pkg/utils" ) type SEip struct { @@ -25,6 +26,7 @@ type SEip struct { IpAddr string RegionId string AssociateId string + Mode string Bandwidth int } @@ -33,6 +35,9 @@ func (self *SEip) GetIpAddr() string { } func (self *SEip) GetMode() string { + if utils.IsInStringArray(self.Mode, []string{api.EIP_MODE_STANDALONE_EIP, api.EIP_MODE_INSTANCE_PUBLICIP}) { + return self.Mode + } return api.EIP_MODE_STANDALONE_EIP }