add events search apis
This commit is contained in:
84
pkg/api/events/v1alpha1/types.go
Normal file
84
pkg/api/events/v1alpha1/types.go
Normal file
@@ -0,0 +1,84 @@
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
"github.com/emicklei/go-restful"
|
||||
"kubesphere.io/kubesphere/pkg/simple/client/events"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
type APIResponse struct {
|
||||
Events *events.Events `json:"query,omitempty" description:"query results"`
|
||||
Statistics *events.Statistics `json:"statistics,omitempty" description:"statistics results"`
|
||||
Histogram *events.Histogram `json:"histogram,omitempty" description:"histogram results"`
|
||||
}
|
||||
|
||||
type Query struct {
|
||||
Operation string `json:"operation,omitempty"`
|
||||
WorkspaceFilter string `json:"workspace_filter,omitempty"`
|
||||
WorkspaceSearch string `json:"workspace_search,omitempty"`
|
||||
InvolvedObjectNamespaceFilter string `json:"involved_object_namespace_filter,omitempty"`
|
||||
InvolvedObjectNamespaceSearch string `json:"involved_object_namespace_search,omitempty"`
|
||||
InvolvedObjectNameFilter string `json:"involved_object_name_filter,omitempty"`
|
||||
InvolvedObjectNameSearch string `json:"involved_object_name_search,omitempty"`
|
||||
InvolvedObjectKindFilter string `json:"involved_object_kind_filter,omitempty"`
|
||||
ReasonFilter string `json:"reason_filter,omitempty"`
|
||||
ReasonSearch string `json:"reason_search,omitempty"`
|
||||
MessageSearch string `json:"message_search,omitempty"`
|
||||
TypeFilter string `json:"type_filter,omitempty"`
|
||||
|
||||
StartTime *time.Time `json:"start_time,omitempty"`
|
||||
EndTime *time.Time `json:"end_time,omitempty"`
|
||||
|
||||
Interval string `json:"interval,omitempty"`
|
||||
Sort string `json:"sort,omitempty"`
|
||||
From int64 `json:"from,omitempty"`
|
||||
Size int64 `json:"size,omitempty"`
|
||||
}
|
||||
|
||||
func ParseQueryParameter(req *restful.Request) (*Query, error) {
|
||||
q := &Query{}
|
||||
|
||||
q.Operation = req.QueryParameter("operation")
|
||||
q.WorkspaceFilter = req.QueryParameter("workspace_filter")
|
||||
q.WorkspaceSearch = req.QueryParameter("workspace_search")
|
||||
q.InvolvedObjectNamespaceFilter = req.QueryParameter("involved_object_namespace_filter")
|
||||
q.InvolvedObjectNamespaceSearch = req.QueryParameter("involved_object_namespace_search")
|
||||
q.InvolvedObjectNameFilter = req.QueryParameter("involved_object_name_filter")
|
||||
q.InvolvedObjectNameSearch = req.QueryParameter("involved_object_name_search")
|
||||
q.InvolvedObjectKindFilter = req.QueryParameter("involved_object_kind_filter")
|
||||
q.ReasonFilter = req.QueryParameter("reason_filter")
|
||||
q.ReasonSearch = req.QueryParameter("reason_search")
|
||||
q.MessageSearch = req.QueryParameter("message_search")
|
||||
q.TypeFilter = req.QueryParameter("type_filter")
|
||||
|
||||
if tstr := req.QueryParameter("start_time"); tstr != "" {
|
||||
sec, err := strconv.ParseInt(tstr, 10, 64)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
t := time.Unix(sec, 0)
|
||||
q.StartTime = &t
|
||||
}
|
||||
if tstr := req.QueryParameter("end_time"); tstr != "" {
|
||||
sec, err := strconv.ParseInt(tstr, 10, 64)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
t := time.Unix(sec, 0)
|
||||
q.EndTime = &t
|
||||
}
|
||||
if q.Interval = req.QueryParameter("interval"); q.Interval == "" {
|
||||
q.Interval = "15m"
|
||||
}
|
||||
q.From, _ = strconv.ParseInt(req.QueryParameter("from"), 10, 64)
|
||||
size, err := strconv.ParseInt(req.QueryParameter("size"), 10, 64)
|
||||
if err != nil {
|
||||
size = 10
|
||||
}
|
||||
q.Size = size
|
||||
if q.Sort = req.QueryParameter("sort"); q.Sort != "asc" {
|
||||
q.Sort = "desc"
|
||||
}
|
||||
return q, nil
|
||||
}
|
||||
Reference in New Issue
Block a user