fix(region): skip sync used ip addr (#19208)

This commit is contained in:
屈轩
2024-01-09 17:50:29 +08:00
committed by GitHub
parent 9cce3064b3
commit 8cf0b0e216
5 changed files with 10 additions and 17 deletions
+1 -1
View File
@@ -88,7 +88,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.20240107043224-6b8945f3c23a
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240109085612-93eff1024d5f
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32
yunion.io/x/jsonutils v1.0.1-0.20230613121553-0f3b41e2ef19
yunion.io/x/log v1.0.1-0.20230411060016-feb3f46ab361
+2 -2
View File
@@ -1201,8 +1201,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.20240107043224-6b8945f3c23a h1:nFdT/vqHCKZv0ZnJE1WWaIvYyqpsszhRJnhoOpsQf8g=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240107043224-6b8945f3c23a/go.mod h1:aj1gR9PPb6eqqKOwvANe26CoZFY8ydmXy0fuvgKYXH0=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240109085612-93eff1024d5f h1:I4L3JsssDNrAH33UEtZAMNSeZa8Ctf5F7zjYlJmrvjM=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240109085612-93eff1024d5f/go.mod h1:aj1gR9PPb6eqqKOwvANe26CoZFY8ydmXy0fuvgKYXH0=
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32 h1:v7POYkQwo1XzOxBoIoRVr/k0V9Y5JyjpshlIFa9raug=
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws=
yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634=
@@ -168,6 +168,10 @@ func (manager *SNetworkinterfacenetworkManager) newFromCloudInterfaceAddress(ctx
if !network.IsAddressInRange(ipAddr) {
return fmt.Errorf("ip %s not in network %s(%s) range", address.IpAddr, network.Name, network.Id)
}
// skip sync used ip address
if used, err := network.isAddressUsed(address.IpAddr); err != nil || used {
return nil
}
address.NetworkId = network.Id
+1 -1
View File
@@ -1465,7 +1465,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.20240107043224-6b8945f3c23a
# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240109085612-93eff1024d5f
## explicit; go 1.18
yunion.io/x/cloudmux/pkg/apis
yunion.io/x/cloudmux/pkg/apis/billing
+2 -13
View File
@@ -19,7 +19,6 @@ import (
"strings"
"yunion.io/x/pkg/errors"
"yunion.io/x/pkg/utils"
api "yunion.io/x/cloudmux/pkg/apis/compute"
"yunion.io/x/cloudmux/pkg/cloudprovider"
@@ -129,19 +128,9 @@ func (port *Port) GetICloudInterfaceAddresses() ([]cloudprovider.ICloudInterface
return address, nil
}
// 华为云端口API device_owner 变化会导致子网ip重复同步,故忽略弹性网卡同步
func (region *SRegion) GetINetworkInterfaces() ([]cloudprovider.ICloudNetworkInterface, error) {
ports, err := region.GetPorts("")
if err != nil {
return nil, err
}
ret := []cloudprovider.ICloudNetworkInterface{}
for i := 0; i < len(ports); i++ {
if len(ports[i].DeviceID) == 0 || !utils.IsInStringArray(ports[i].DeviceOwner, []string{"compute:CCI", "compute:nova", "neutron:LOADBALANCERV2"}) {
ports[i].region = region
ret = append(ret, &ports[i])
}
}
return ret, nil
return []cloudprovider.ICloudNetworkInterface{}, nil
}
// https://console.huaweicloud.com/apiexplorer/#/openapi/VPC/doc?version=v2&api=ShowPort