influxdb/kit/check/response.go

40 lines
1.0 KiB
Go

package check
// Response is a result of a collection of health checks.
type Response struct {
Name string `json:"name"`
Status Status `json:"status"`
Message string `json:"message,omitempty"`
Checks Responses `json:"checks,omitempty"`
}
// HasCheck verifies whether the receiving Response has a check with the given name or not.
func (r *Response) HasCheck(name string) bool {
found := false
for _, check := range r.Checks {
if check.Name == name {
found = true
break
}
}
return found
}
// Responses is a sortable collection of Response objects.
type Responses []Response
func (r Responses) Len() int { return len(r) }
// Less defines the order in which responses are sorted.
//
// Failing responses are always sorted before passing responses. Responses with
// the same status are then sorted according to the name of the check.
func (r Responses) Less(i, j int) bool {
if r[i].Status == r[j].Status {
return r[i].Name < r[j].Name
}
return r[i].Status < r[j].Status
}
func (r Responses) Swap(i, j int) { r[i], r[j] = r[j], r[i] }