From b86c5b921c79d9c82eba71ede8212f33945ff3b4 Mon Sep 17 00:00:00 2001 From: ioito Date: Tue, 10 Jan 2023 19:00:17 +0800 Subject: [PATCH] fix(region): vender update --- go.mod | 2 +- go.sum | 4 +-- pkg/compute/models/elasticips.go | 8 ++--- pkg/compute/models/natgateways.go | 6 ++-- vendor/modules.txt | 2 +- .../pkg/multicloud/huawei/natgateway.go | 36 ++++++------------- .../pkg/multicloud/openstack/instance.go | 4 +++ 7 files changed, 25 insertions(+), 37 deletions(-) diff --git a/go.mod b/go.mod index 4280bb5dfb..d36137d91c 100644 --- a/go.mod +++ b/go.mod @@ -81,7 +81,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.20230106094242-0603d3751c54 + yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230110105742-0052589685ec 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 6555ea11e8..0b6e2a59dc 100644 --- a/go.sum +++ b/go.sum @@ -1158,8 +1158,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.20230106094242-0603d3751c54 h1:tzU1pOfDP4tLIoHLECa0uKPv+pPIoA4MZe3C5Os/3Gc= -yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230106094242-0603d3751c54/go.mod h1:yEMFtIKPyIdIfPzsw7oTcH41JXc8G5StUAQw3ZoGj5I= +yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230110105742-0052589685ec h1:p9OjNhquM20n3J39TY9XMx1LL2xJPKaPtHkrrP/1nAo= +yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230110105742-0052589685ec/go.mod h1:yEMFtIKPyIdIfPzsw7oTcH41JXc8G5StUAQw3ZoGj5I= 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/pkg/compute/models/elasticips.go b/pkg/compute/models/elasticips.go index f731348367..7137c573de 100644 --- a/pkg/compute/models/elasticips.go +++ b/pkg/compute/models/elasticips.go @@ -906,12 +906,8 @@ func (self *SElasticip) AssociateNatGateway(ctx context.Context, userCred mcclie if nat.Deleted { return fmt.Errorf("nat gateway is deleted") } - if len(self.AssociateType) > 0 && len(self.AssociateId) > 0 { - if self.AssociateType == api.EIP_ASSOCIATE_TYPE_NAT_GATEWAY && self.AssociateId == nat.Id { - return nil - } else { - return fmt.Errorf("Eip has been associated!!") - } + if len(self.AssociateId) > 0 && self.AssociateType == api.EIP_ASSOCIATE_TYPE_NAT_GATEWAY && self.AssociateId == nat.Id { + return nil } _, err := db.Update(self, func() error { self.AssociateType = api.EIP_ASSOCIATE_TYPE_NAT_GATEWAY diff --git a/pkg/compute/models/natgateways.go b/pkg/compute/models/natgateways.go index f1dcfe8c0e..137fdb3d60 100644 --- a/pkg/compute/models/natgateways.go +++ b/pkg/compute/models/natgateways.go @@ -644,8 +644,8 @@ func (self *SNatGateway) GetEips() ([]SElasticip, error) { } func (self *SNatGateway) SyncNatGatewayEips(ctx context.Context, userCred mcclient.TokenCredential, provider *SCloudprovider, extEips []cloudprovider.ICloudEIP) compare.SyncResult { - lockman.LockRawObject(ctx, "elasticip", self.Id) - defer lockman.ReleaseRawObject(ctx, "elasticip", self.Id) + lockman.LockRawObject(ctx, ElasticipManager.Keyword(), self.Id) + defer lockman.ReleaseRawObject(ctx, ElasticipManager.Keyword(), self.Id) result := compare.SyncResult{} @@ -673,6 +673,8 @@ func (self *SNatGateway) SyncNatGatewayEips(ctx context.Context, userCred mcclie result.Delete() } + result.UpdateCnt = len(commondb) + for i := 0; i < len(added); i += 1 { region, _ := self.GetRegion() neip, err := ElasticipManager.getEipByExtEip(ctx, userCred, added[i], provider, region, provider.GetOwnerId()) diff --git a/vendor/modules.txt b/vendor/modules.txt index cecc44c67b..b8554f96cd 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1439,7 +1439,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.20230106094242-0603d3751c54 +# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230110105742-0052589685ec ## 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/multicloud/huawei/natgateway.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/natgateway.go index 62a54e8df4..5fd425460d 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/natgateway.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/natgateway.go @@ -107,33 +107,19 @@ func (gateway *SNatGateway) GetExpiredAt() time.Time { } func (gateway *SNatGateway) GetIEips() ([]cloudprovider.ICloudEIP, error) { - IEips, err := gateway.region.GetIEips() + ports, err := gateway.region.GetPorts(gateway.ID) if err != nil { - return nil, errors.Wrapf(err, `get all Eips of region %q error`, gateway.region.GetId()) + return nil, errors.Wrapf(err, "GetPorts(%s)", gateway.ID) } - dNatTables, err := gateway.GetINatDTable() - if err != nil { - return nil, errors.Wrapf(err, `get all DNatTable of gateway %q error`, gateway.GetId()) - } - sNatTables, err := gateway.GetINatSTable() - if err != nil { - return nil, errors.Wrapf(err, `get all SNatTable of gateway %q error`, gateway.GetId()) - } - - // Get natIPSet of nat rules - natIPSet := make(map[string]struct{}) - for _, snat := range sNatTables { - natIPSet[snat.GetIP()] = struct{}{} - } - for _, dnat := range dNatTables { - natIPSet[dnat.GetExternalIp()] = struct{}{} - } - - // Add Eip whose GetIpAddr() in natIPSet to ret - ret := make([]cloudprovider.ICloudEIP, 0, 2) - for i := range IEips { - if _, ok := natIPSet[IEips[i].GetIpAddr()]; ok { - ret = append(ret, IEips[i]) + ret := []cloudprovider.ICloudEIP{} + for i := range ports { + eips, err := gateway.region.GetEips(ports[i].ID, nil) + if err != nil { + return nil, err + } + for i := range eips { + eips[i].region = gateway.region + ret = append(ret, &eips[i]) } } return ret, nil diff --git a/vendor/yunion.io/x/cloudmux/pkg/multicloud/openstack/instance.go b/vendor/yunion.io/x/cloudmux/pkg/multicloud/openstack/instance.go index abc2ec4ae3..611b6baee2 100644 --- a/vendor/yunion.io/x/cloudmux/pkg/multicloud/openstack/instance.go +++ b/vendor/yunion.io/x/cloudmux/pkg/multicloud/openstack/instance.go @@ -438,6 +438,10 @@ func (instance *SInstance) Refresh() error { if err != nil { return err } + instance.Addresses = nil + instance.VolumesAttached = nil + instance.SecurityGroups = nil + instance.Tags = nil return jsonutils.Update(instance, _instance) }