fix(region): ipv6 filter (#19411)

This commit is contained in:
屈轩
2024-02-01 18:52:48 +08:00
committed by GitHub
parent 483a97e6ad
commit 59dcb4260d
4 changed files with 11 additions and 0 deletions

View File

@@ -80,6 +80,9 @@ type VpcListInput struct {
// example: 192.168.222.0/24
CidrBlock []string `json:"cidr_block"`
// IPv6地址段
CidrBlock6 []string `json:"cidr_block6"`
// enmu: eip, none
ExternalAccessMode string `json:"external_access_mode"`

View File

@@ -425,6 +425,7 @@ func (manager *SGuestManager) ListItemFilter(
conditions := []sqlchemy.ICondition{}
for _, ipAddr := range query.IpAddrs {
conditions = append(conditions, sqlchemy.Regexp(grpnets.Field("ip_addr"), ipAddr))
conditions = append(conditions, sqlchemy.Regexp(grpnets.Field("ip6_addr"), ipAddr))
}
vipq = vipq.Join(grpnets, sqlchemy.Equals(grpnets.Field("group_id"), vipq.Field("group_id"))).Filter(
sqlchemy.OR(conditions...),
@@ -444,6 +445,7 @@ func (manager *SGuestManager) ListItemFilter(
conditions = []sqlchemy.ICondition{}
for _, ipAddr := range query.IpAddrs {
conditions = append(conditions, sqlchemy.Regexp(gnQ.Field("ip_addr"), ipAddr))
conditions = append(conditions, sqlchemy.Regexp(gnQ.Field("ip6_addr"), ipAddr))
}
gn := gnQ.Filter(sqlchemy.OR(conditions...))

View File

@@ -1315,6 +1315,10 @@ func (manager *SVpcManager) ListItemFilter(
q = q.In("cidr_block", query.CidrBlock)
}
if len(query.CidrBlock6) > 0 {
q = q.In("cidr_block6", query.CidrBlock6)
}
return q, nil
}

View File

@@ -32,6 +32,8 @@ type VpcListOptions struct {
ZoneId string `help:"Filter by zone which has networks"`
UsableForInterVpcNetworkId string `help:"Filter usable vpcs for inter vpc network"`
OrderByWireCount string
CidrBlock string `help:"IPv4 cidr block"`
CidrBlock6 string `help:"IPv6 cidr block"`
}
func (opts *VpcListOptions) GetContextId() string {