forked from sensu/sensu-go
/
health.go
31 lines (26 loc) · 919 Bytes
/
health.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package actions
import (
"crypto/tls"
"github.com/coreos/etcd/clientv3"
"github.com/sensu/sensu-go/backend/store"
"github.com/sensu/sensu-go/types"
"golang.org/x/net/context"
)
// HealthController exposes actions which a viewer can perform
type HealthController struct {
store store.HealthStore
cluster clientv3.Cluster
etcdClientTLSConfig *tls.Config
}
// NewHealthController returns new HealthController
func NewHealthController(store store.HealthStore, cluster clientv3.Cluster, etcdClientTLSConfig *tls.Config) HealthController {
return HealthController{
store: store,
cluster: cluster,
etcdClientTLSConfig: etcdClientTLSConfig,
}
}
// GetClusterHealth returns health information
func (h HealthController) GetClusterHealth(ctx context.Context) *types.HealthResponse {
return h.store.GetClusterHealth(ctx, h.cluster, h.etcdClientTLSConfig)
}