43 lines
789 B
Go
43 lines
789 B
Go
package resources
|
|
|
|
import (
|
|
"net/url"
|
|
)
|
|
|
|
type MetricsRequestType uint32
|
|
|
|
const (
|
|
MetricsByNamespaceRequestType MetricsRequestType = iota
|
|
AllMetricsRequestType
|
|
CustomNamespaceRequestType
|
|
)
|
|
|
|
type MetricsRequest struct {
|
|
*ResourceRequest
|
|
Namespace string
|
|
}
|
|
|
|
func GetMetricsRequest(parameters url.Values) (MetricsRequest, error) {
|
|
resourceRequest, err := getResourceRequest(parameters)
|
|
if err != nil {
|
|
return MetricsRequest{}, err
|
|
}
|
|
|
|
return MetricsRequest{
|
|
ResourceRequest: resourceRequest,
|
|
Namespace: parameters.Get("namespace"),
|
|
}, nil
|
|
}
|
|
|
|
func (r *MetricsRequest) Type() MetricsRequestType {
|
|
if r.Namespace == "" {
|
|
return AllMetricsRequestType
|
|
}
|
|
|
|
if isCustomNamespace(r.Namespace) {
|
|
return CustomNamespaceRequestType
|
|
}
|
|
|
|
return MetricsByNamespaceRequestType
|
|
}
|