mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-01 15:07:17 +08:00
fix(region): listitemfilter ignore empty slice
This commit is contained in:
@@ -47,6 +47,9 @@ func ListQueryByArchitecture(q *sqlchemy.SQuery, fieldKey string, archs []string
|
||||
}
|
||||
conditions := []sqlchemy.ICondition{}
|
||||
for _, arch := range archs {
|
||||
if len(arch) == 0 {
|
||||
continue
|
||||
}
|
||||
if arch == apis.OS_ARCH_X86 {
|
||||
conditions = append(conditions, sqlchemy.OR(
|
||||
sqlchemy.Startswith(q.Field(fieldKey), arch),
|
||||
|
||||
@@ -1703,6 +1703,9 @@ func (manager *SCloudaccountManager) ListItemFilter(
|
||||
managerStrs := query.CloudproviderId
|
||||
conditions := []sqlchemy.ICondition{}
|
||||
for _, managerStr := range managerStrs {
|
||||
if len(managerStr) == 0 {
|
||||
continue
|
||||
}
|
||||
providerObj, err := manager.FetchByIdOrName(userCred, managerStr)
|
||||
if err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
|
||||
@@ -1328,6 +1328,9 @@ func (manager *SCloudproviderManager) ListItemFilter(
|
||||
managerStrs := query.CloudproviderId
|
||||
conditions := []sqlchemy.ICondition{}
|
||||
for _, managerStr := range managerStrs {
|
||||
if len(managerStr) == 0 {
|
||||
continue
|
||||
}
|
||||
providerObj, err := manager.FetchByIdOrName(userCred, managerStr)
|
||||
if err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
|
||||
@@ -238,6 +238,9 @@ func (man *SDBInstanceManager) ListItemFilter(
|
||||
dn := DBInstanceNetworkManager.Query("dbinstance_id")
|
||||
conditions := []sqlchemy.ICondition{}
|
||||
for _, ipAddr := range query.IpAddr {
|
||||
if len(ipAddr) == 0 {
|
||||
continue
|
||||
}
|
||||
condition := sqlchemy.Contains(dn.Field("ip_addr"), ipAddr)
|
||||
conditions = append(conditions, condition)
|
||||
}
|
||||
|
||||
@@ -577,6 +577,9 @@ func (manager *SExternalProjectManager) ListItemFilter(
|
||||
managerStrs := query.CloudproviderId
|
||||
conditions := []sqlchemy.ICondition{}
|
||||
for _, managerStr := range managerStrs {
|
||||
if len(managerStr) == 0 {
|
||||
continue
|
||||
}
|
||||
providerObj, err := manager.FetchByIdOrName(userCred, managerStr)
|
||||
if err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
|
||||
@@ -493,6 +493,9 @@ func _managedResourceFilterByAccount(managerIdFieldName string, q *sqlchemy.SQue
|
||||
cloudproviderStrs := input.CloudproviderId
|
||||
managerIds := []string{}
|
||||
for _, cloudproviderStr := range cloudproviderStrs {
|
||||
if len(cloudproviderStr) == 0 {
|
||||
continue
|
||||
}
|
||||
provider, err := CloudproviderManager.FetchByIdOrName(nil, cloudproviderStr)
|
||||
if err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
@@ -591,6 +594,9 @@ func managedResourceFilterByZone(q *sqlchemy.SQuery, query api.ZonalFilterListIn
|
||||
func managedResourceFilterByRegion(q *sqlchemy.SQuery, query api.RegionalFilterListInput, filterField string, subqFunc func() *sqlchemy.SQuery) (*sqlchemy.SQuery, error) {
|
||||
regionIds := []string{}
|
||||
for _, region := range query.CloudregionId {
|
||||
if len(region) == 0 {
|
||||
continue
|
||||
}
|
||||
regionObj, err := ValidateCloudregionId(nil, region)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "ValidateCloudregionResourceInput")
|
||||
|
||||
@@ -2151,6 +2151,9 @@ func (manager *SNetworkManager) ListItemFilter(
|
||||
if len(ips) > 0 {
|
||||
conditions := []sqlchemy.ICondition{}
|
||||
for _, ip := range ips {
|
||||
if len(ip) == 0 {
|
||||
continue
|
||||
}
|
||||
ipIa, err := parseIpToIntArray(ip)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -163,6 +163,9 @@ func (manager *SVpcResourceBaseManager) ListItemFilter(
|
||||
var err error
|
||||
conditions := []sqlchemy.ICondition{}
|
||||
for _, vpcId := range query.VpcId {
|
||||
if len(vpcId) == 0 {
|
||||
continue
|
||||
}
|
||||
switch vpcId {
|
||||
case api.CLASSIC_VPC_NAME:
|
||||
conditions = append(conditions, sqlchemy.Equals(q.Field("name"), api.CLASSIC_VPC_NAME))
|
||||
|
||||
Reference in New Issue
Block a user