diff --git a/pkg/compute/models/routetables.go b/pkg/compute/models/routetables.go index ebf7930615..07eda270c9 100644 --- a/pkg/compute/models/routetables.go +++ b/pkg/compute/models/routetables.go @@ -108,13 +108,13 @@ func (man *SRouteTableManager) ListItemFilter(ctx context.Context, q *sqlchemy.S } userProjId := userCred.GetProjectId() data := query.(*jsonutils.JSONDict) - for _, key := range []string{"vpc", "cloudregion"} { - v := validators.NewModelIdOrNameValidator(key, key, userProjId) - v.Optional(true) - q, err = v.QueryFilter(q, data) - if err != nil { - return nil, err - } + q, err = validators.ApplyModelFilters(q, data, []*validators.ModelFilterOptions{ + {Key: "vpc", ModelKeyword: "vpc", ProjectId: userProjId}, + {Key: "cloudregion", ModelKeyword: "cloudregion", ProjectId: userProjId}, + {Key: "manager", ModelKeyword: "cloudprovider", ProjectId: userProjId}, + }) + if err != nil { + return nil, err } return q, nil } diff --git a/pkg/mcclient/options/routetables.go b/pkg/mcclient/options/routetables.go index c214d824b8..004aaf20c3 100644 --- a/pkg/mcclient/options/routetables.go +++ b/pkg/mcclient/options/routetables.go @@ -126,6 +126,7 @@ type RouteTableDeleteOptions struct { } type RouteTableListOptions struct { + Manager string Vpc string Cloudregion string