diff --git a/pkg/api/alerting/v2alpha1/types.go b/pkg/api/alerting/v2alpha1/types.go index a73c47e6d710cff45c43c629cd81aae4ac834221..44ace5ab3078dd5541ddd61ce09f63d71cf947f7 100644 --- a/pkg/api/alerting/v2alpha1/types.go +++ b/pkg/api/alerting/v2alpha1/types.go @@ -18,7 +18,6 @@ package v2alpha1 import ( "context" - "regexp" "sort" "strconv" "strings" @@ -46,8 +45,6 @@ var ( templateTestData = template.AlertTemplateData(map[string]string{}, map[string]string{}, 0) templateTestTextPrefix = "{{$labels := .Labels}}{{$externalLabels := .ExternalLabels}}{{$value := .Value}}" - - ruleLabelNameMatcher = regexp.MustCompile(`[a-zA-Z_][a-zA-Z0-9_]*`) ) type RuleLevel string @@ -166,7 +163,7 @@ type AlertingRuleQueryParams struct { LabelEqualFilters map[string]string LabelContainFilters map[string]string - Offset int + PageNum int Limit int SortField string SortType string @@ -275,7 +272,7 @@ func (q *AlertingRuleQueryParams) Sort(rules []*GettableAlertingRule) { func (q *AlertingRuleQueryParams) Sub(rules []*GettableAlertingRule) []*GettableAlertingRule { start, stop := 0, 10 if q != nil { - start, stop = q.Offset, q.Offset+q.Limit + start, stop = (q.PageNum-1)*q.Limit, q.PageNum*q.Limit } total := len(rules) if start < total { @@ -292,8 +289,8 @@ type AlertQueryParams struct { LabelEqualFilters map[string]string LabelContainFilters map[string]string - Offset int - Limit int + PageNum int + Limit int } func (q *AlertQueryParams) Filter(alerts []*Alert) []*Alert { @@ -352,7 +349,7 @@ func (q *AlertQueryParams) Sort(alerts []*Alert) { func (q *AlertQueryParams) Sub(alerts []*Alert) []*Alert { start, stop := 0, 10 if q != nil { - start, stop = q.Offset, q.Offset+q.Limit + start, stop = (q.PageNum-1)*q.Limit, q.PageNum*q.Limit } total := len(alerts) if start < total { @@ -373,7 +370,14 @@ func ParseAlertingRuleQueryParams(req *restful.Request) (*AlertingRuleQueryParam q.NameContainFilter = req.QueryParameter("name") q.State = req.QueryParameter("state") q.Health = req.QueryParameter("health") - q.Offset, _ = strconv.Atoi(req.QueryParameter("offset")) + q.PageNum, err = strconv.Atoi(req.QueryParameter("page")) + if err != nil { + q.PageNum = 1 + err = nil + } + if q.PageNum <= 0 { + q.PageNum = 1 + } q.Limit, err = strconv.Atoi(req.QueryParameter("limit")) if err != nil { q.Limit = 10 @@ -392,7 +396,14 @@ func ParseAlertQueryParams(req *restful.Request) (*AlertQueryParams, error) { ) q.State = req.QueryParameter("state") - q.Offset, _ = strconv.Atoi(req.QueryParameter("offset")) + q.PageNum, err = strconv.Atoi(req.QueryParameter("page")) + if err != nil { + q.PageNum = 1 + err = nil + } + if q.PageNum <= 0 { + q.PageNum = 1 + } q.Limit, err = strconv.Atoi(req.QueryParameter("limit")) if err != nil { q.Limit = 10 diff --git a/pkg/kapis/alerting/v2alpha1/register.go b/pkg/kapis/alerting/v2alpha1/register.go index 3fb055d8e2099d704b5e333f3fadc490842b547d..95ddba912206df7a13aab65e174666057b99f751 100644 --- a/pkg/kapis/alerting/v2alpha1/register.go +++ b/pkg/kapis/alerting/v2alpha1/register.go @@ -68,7 +68,7 @@ func AddToContainer(container *restful.Container, informers informers.InformerFa Param(ws.QueryParameter("label_filters", "label filters, concatenating multiple filters with commas, equal symbol for exact query, wave symbol for fuzzy query e.g. name~a").DataFormat("key=%s,key~%s")). Param(ws.QueryParameter("sort_field", "sort field, one of `name`, `lastEvaluation`, `evaluationTime`")). Param(ws.QueryParameter("sort_type", "sort type, one of `asc`, `desc`")). - Param(ws.QueryParameter("offset", "offset of the result set").DataType("integer").DefaultValue("0")). + Param(ws.QueryParameter("page", "page of the result set").DataType("integer").DefaultValue("1")). Param(ws.QueryParameter("limit", "limit size of the result set").DataType("integer").DefaultValue("10")). Returns(http.StatusOK, ksapi.StatusOK, alertingv2alpha1.GettableAlertingRuleList{}). Metadata(restfulspec.KeyOpenAPITags, []string{constants.AlertingTag})) @@ -78,7 +78,7 @@ func AddToContainer(container *restful.Container, informers informers.InformerFa Doc("list the alerts of the cluster-level custom alerting rules"). Param(ws.QueryParameter("state", "state, one of `firing`, `pending`, `inactive`")). Param(ws.QueryParameter("label_filters", "label filters, concatenating multiple filters with commas, equal symbol for exact query, wave symbol for fuzzy query e.g. name~a").DataFormat("key=%s,key~%s")). - Param(ws.QueryParameter("offset", "offset of the result set").DataType("integer").DefaultValue("0")). + Param(ws.QueryParameter("page", "page of the result set").DataType("integer").DefaultValue("1")). Param(ws.QueryParameter("limit", "limit size of the result set").DataType("integer").DefaultValue("10")). Returns(http.StatusOK, ksapi.StatusOK, alertingv2alpha1.AlertList{}). Metadata(restfulspec.KeyOpenAPITags, []string{constants.AlertingTag})) @@ -124,7 +124,7 @@ func AddToContainer(container *restful.Container, informers informers.InformerFa Param(ws.QueryParameter("label_filters", "label filters, concatenating multiple filters with commas, equal symbol for exact query, wave symbol for fuzzy query e.g. name~a").DataFormat("key=%s,key~%s")). Param(ws.QueryParameter("sort_field", "sort field, one of `name`, `lastEvaluation`, `evaluationTime`")). Param(ws.QueryParameter("sort_type", "sort type, one of `asc`, `desc`")). - Param(ws.QueryParameter("offset", "offset of the result set").DataType("integer").DefaultValue("0")). + Param(ws.QueryParameter("page", "page of the result set").DataType("integer").DefaultValue("1")). Param(ws.QueryParameter("limit", "limit size of the result set").DataType("integer").DefaultValue("10")). Returns(http.StatusOK, ksapi.StatusOK, alertingv2alpha1.GettableAlertingRuleList{}). Metadata(restfulspec.KeyOpenAPITags, []string{constants.AlertingTag})) @@ -134,7 +134,7 @@ func AddToContainer(container *restful.Container, informers informers.InformerFa Doc("list the alerts of the custom alerting rules in the specified namespace."). Param(ws.QueryParameter("state", "state, one of `firing`, `pending`, `inactive`")). Param(ws.QueryParameter("label_filters", "label filters, concatenating multiple filters with commas, equal symbol for exact query, wave symbol for fuzzy query e.g. name~a").DataFormat("key=%s,key~%s")). - Param(ws.QueryParameter("offset", "offset of the result set").DataType("integer").DefaultValue("0")). + Param(ws.QueryParameter("page", "page of the result set").DataType("integer").DefaultValue("1")). Param(ws.QueryParameter("limit", "limit size of the result set").DataType("integer").DefaultValue("10")). Returns(http.StatusOK, ksapi.StatusOK, alertingv2alpha1.AlertList{}). Metadata(restfulspec.KeyOpenAPITags, []string{constants.AlertingTag})) @@ -180,7 +180,7 @@ func AddToContainer(container *restful.Container, informers informers.InformerFa Param(ws.QueryParameter("label_filters", "label filters, concatenating multiple filters with commas, equal symbol for exact query, wave symbol for fuzzy query e.g. name~a").DataFormat("key=%s,key~%s")). Param(ws.QueryParameter("sort_field", "sort field, one of `name`, `lastEvaluation`, `evaluationTime`")). Param(ws.QueryParameter("sort_type", "sort type, one of `asc`, `desc`")). - Param(ws.QueryParameter("offset", "offset of the result set").DataType("integer").DefaultValue("0")). + Param(ws.QueryParameter("page", "page of the result set").DataType("integer").DefaultValue("1")). Param(ws.QueryParameter("limit", "limit size of the result set").DataType("integer").DefaultValue("10")). Returns(http.StatusOK, ksapi.StatusOK, alertingv2alpha1.GettableAlertingRuleList{}). Metadata(restfulspec.KeyOpenAPITags, []string{constants.AlertingTag})) @@ -190,7 +190,7 @@ func AddToContainer(container *restful.Container, informers informers.InformerFa Doc("list the alerts of the builtin(non-custom) rules"). Param(ws.QueryParameter("state", "state, one of `firing`, `pending`, `inactive`")). Param(ws.QueryParameter("label_filters", "label filters, concatenating multiple filters with commas, equal symbol for exact query, wave symbol for fuzzy query e.g. name~a").DataFormat("key=%s,key~%s")). - Param(ws.QueryParameter("offset", "offset of the result set").DataType("integer").DefaultValue("0")). + Param(ws.QueryParameter("page", "page of the result set").DataType("integer").DefaultValue("1")). Param(ws.QueryParameter("limit", "limit size of the result set").DataType("integer").DefaultValue("10")). Returns(http.StatusOK, ksapi.StatusOK, alertingv2alpha1.AlertList{}). Metadata(restfulspec.KeyOpenAPITags, []string{constants.AlertingTag}))