diff --git a/pkg/compute/models/loadbalancerbackendgroups.go b/pkg/compute/models/loadbalancerbackendgroups.go index ff4917c158..e5f3c8a35b 100644 --- a/pkg/compute/models/loadbalancerbackendgroups.go +++ b/pkg/compute/models/loadbalancerbackendgroups.go @@ -52,13 +52,11 @@ func (man *SLoadbalancerBackendGroupManager) ListItemFilter(ctx context.Context, } userProjId := userCred.GetProjectId() data := query.(*jsonutils.JSONDict) - { - lbV := validators.NewModelIdOrNameValidator("loadbalancer", "loadbalancer", userProjId) - lbV.Optional(true) - q, err = lbV.QueryFilter(q, data) - if err != nil { - return nil, err - } + q, err = validators.ApplyModelFilters(q, data, []*validators.ModelFilterOptions{ + {Key: "loadbalancer", ModelKeyword: "loadbalancer", ProjectId: userProjId}, + }) + if err != nil { + return nil, err } return q, nil } diff --git a/pkg/compute/models/loadbalancerbackends.go b/pkg/compute/models/loadbalancerbackends.go index 4eb5dcba9d..3c03e56921 100644 --- a/pkg/compute/models/loadbalancerbackends.go +++ b/pkg/compute/models/loadbalancerbackends.go @@ -55,22 +55,12 @@ func (man *SLoadbalancerBackendManager) ListItemFilter(ctx context.Context, q *s } userProjId := userCred.GetProjectId() data := query.(*jsonutils.JSONDict) - { - backendGroupV := validators.NewModelIdOrNameValidator("backend_group", "loadbalancerbackendgroup", userProjId) - backendGroupV.Optional(true) - q, err = backendGroupV.QueryFilter(q, data) - if err != nil { - return nil, err - } - } - { - // NOTE extend this when new backend_type was added - backendV := validators.NewModelIdOrNameValidator("backend", "server", userProjId) - backendV.Optional(true) - q, err = backendV.QueryFilter(q, data) - if err != nil { - return nil, err - } + q, err = validators.ApplyModelFilters(q, data, []*validators.ModelFilterOptions{ + {Key: "backend_group", ModelKeyword: "loadbalancerbackendgroup", ProjectId: userProjId}, + {Key: "backend", ModelKeyword: "server", ProjectId: userProjId}, // NOTE extend this when new backend_type was added + }) + if err != nil { + return nil, err } return q, nil } diff --git a/pkg/compute/models/loadbalancerlistenerrules.go b/pkg/compute/models/loadbalancerlistenerrules.go index 26f6540822..78cd70cf01 100644 --- a/pkg/compute/models/loadbalancerlistenerrules.go +++ b/pkg/compute/models/loadbalancerlistenerrules.go @@ -72,21 +72,12 @@ func (man *SLoadbalancerListenerRuleManager) ListItemFilter(ctx context.Context, } userProjId := userCred.GetProjectId() data := query.(*jsonutils.JSONDict) - { - listenerV := validators.NewModelIdOrNameValidator("listener", "loadbalancerlistener", userProjId) - listenerV.Optional(true) - q, err = listenerV.QueryFilter(q, data) - if err != nil { - return nil, err - } - } - { - backendGroupV := validators.NewModelIdOrNameValidator("backend_group", "loadbalancerbackendgroup", userProjId) - backendGroupV.Optional(true) - q, err = backendGroupV.QueryFilter(q, data) - if err != nil { - return nil, err - } + q, err = validators.ApplyModelFilters(q, data, []*validators.ModelFilterOptions{ + {Key: "listener", ModelKeyword: "loadbalancerlistener", ProjectId: userProjId}, + {Key: "backend_group", ModelKeyword: "loadbalancerbackendgroup", ProjectId: userProjId}, + }) + if err != nil { + return nil, err } return q, nil } diff --git a/pkg/compute/models/loadbalancerlisteners.go b/pkg/compute/models/loadbalancerlisteners.go index 93d849fef0..df74938cba 100644 --- a/pkg/compute/models/loadbalancerlisteners.go +++ b/pkg/compute/models/loadbalancerlisteners.go @@ -143,29 +143,13 @@ func (man *SLoadbalancerListenerManager) ListItemFilter(ctx context.Context, q * } userProjId := userCred.GetProjectId() data := query.(*jsonutils.JSONDict) - { - lbV := validators.NewModelIdOrNameValidator("loadbalancer", "loadbalancer", userProjId) - lbV.Optional(true) - q, err = lbV.QueryFilter(q, data) - if err != nil { - return nil, err - } - } - { - backendGroupV := validators.NewModelIdOrNameValidator("backend_group", "loadbalancerbackendgroup", userProjId) - backendGroupV.Optional(true) - q, err = backendGroupV.QueryFilter(q, data) - if err != nil { - return nil, err - } - } - { - aclV := validators.NewModelIdOrNameValidator("acl", "loadbalanceracl", userProjId) - aclV.Optional(true) - q, err = aclV.QueryFilter(q, data) - if err != nil { - return nil, err - } + q, err = validators.ApplyModelFilters(q, data, []*validators.ModelFilterOptions{ + {Key: "loadbalancer", ModelKeyword: "loadbalancer", ProjectId: userProjId}, + {Key: "backend_group", ModelKeyword: "loadbalancerbackendgroup", ProjectId: userProjId}, + {Key: "acl", ModelKeyword: "loadbalanceracl", ProjectId: userProjId}, + }) + if err != nil { + return nil, err } return q, nil } diff --git a/pkg/compute/models/loadbalancers.go b/pkg/compute/models/loadbalancers.go index c77e689677..a1b092dc0b 100644 --- a/pkg/compute/models/loadbalancers.go +++ b/pkg/compute/models/loadbalancers.go @@ -62,21 +62,12 @@ func (man *SLoadbalancerManager) ListItemFilter(ctx context.Context, q *sqlchemy } userProjId := userCred.GetProjectId() data := query.(*jsonutils.JSONDict) - { - networkV := validators.NewModelIdOrNameValidator("network", "network", userProjId) - networkV.Optional(true) - q, err = networkV.QueryFilter(q, data) - if err != nil { - return nil, err - } - } - { - zoneV := validators.NewModelIdOrNameValidator("zone", "zone", userProjId) - zoneV.Optional(true) - q, err = zoneV.QueryFilter(q, data) - if err != nil { - return nil, err - } + q, err = validators.ApplyModelFilters(q, data, []*validators.ModelFilterOptions{ + {Key: "network", ModelKeyword: "network", ProjectId: userProjId}, + {Key: "zone", ModelKeyword: "zone", ProjectId: userProjId}, + }) + if err != nil { + return nil, err } return q, nil }