Blame


1 6e415953 2022-01-06 o package icinga
2 6e415953 2022-01-06 o
3 26fb88e9 2022-01-12 o import "encoding/json"
4 50558780 2022-01-06 o
5 50558780 2022-01-06 o // Host represents a Host object.
6 6e415953 2022-01-06 o type Host struct {
7 76669f9b 2022-01-11 o Name string `json:"name"`
8 76669f9b 2022-01-11 o Address string `json:"address"`
9 76669f9b 2022-01-11 o Address6 string `json:"address6"`
10 76669f9b 2022-01-11 o Groups []string `json:"groups"`
11 76669f9b 2022-01-11 o State HostState `json:"state"`
12 76669f9b 2022-01-11 o CheckCommand string `json:"check_command"`
13 76669f9b 2022-01-11 o DisplayName string `json:"display_name"`
14 6e415953 2022-01-06 o }
15 6e415953 2022-01-06 o
16 76669f9b 2022-01-11 o type HostState int
17 76669f9b 2022-01-11 o
18 76669f9b 2022-01-11 o const (
19 76669f9b 2022-01-11 o HostUp HostState = 0 + iota
20 76669f9b 2022-01-11 o HostDown
21 76669f9b 2022-01-11 o HostUnreachable
22 76669f9b 2022-01-11 o )
23 76669f9b 2022-01-11 o
24 76669f9b 2022-01-11 o func (s HostState) String() string {
25 76669f9b 2022-01-11 o switch s {
26 76669f9b 2022-01-11 o case HostUp:
27 76669f9b 2022-01-11 o return "HostUp"
28 76669f9b 2022-01-11 o case HostDown:
29 76669f9b 2022-01-11 o return "HostDown"
30 76669f9b 2022-01-11 o case HostUnreachable:
31 76669f9b 2022-01-11 o return "HostUnreachable"
32 76669f9b 2022-01-11 o }
33 76669f9b 2022-01-11 o return "unhandled host state"
34 50558780 2022-01-06 o }
35 50558780 2022-01-06 o
36 76669f9b 2022-01-11 o func (h Host) name() string {
37 76669f9b 2022-01-11 o return h.Name
38 50558780 2022-01-06 o }
39 50558780 2022-01-06 o
40 76669f9b 2022-01-11 o func (h Host) path() string {
41 76669f9b 2022-01-11 o return "/objects/hosts/" + h.Name
42 76669f9b 2022-01-11 o }
43 6e415953 2022-01-06 o
44 50558780 2022-01-06 o func (h Host) MarshalJSON() ([]byte, error) {
45 50558780 2022-01-06 o type Attrs struct {
46 50558780 2022-01-06 o Address string `json:"address"`
47 50558780 2022-01-06 o CheckCommand string `json:"check_command"`
48 50558780 2022-01-06 o DisplayName string `json:"display_name"`
49 50558780 2022-01-06 o }
50 50558780 2022-01-06 o type host struct {
51 50558780 2022-01-06 o Attrs Attrs `json:"attrs"`
52 50558780 2022-01-06 o }
53 50558780 2022-01-06 o jhost := &host{
54 50558780 2022-01-06 o Attrs: Attrs{
55 50558780 2022-01-06 o Address: h.Address,
56 50558780 2022-01-06 o CheckCommand: h.CheckCommand,
57 50558780 2022-01-06 o DisplayName: h.DisplayName,
58 50558780 2022-01-06 o },
59 50558780 2022-01-06 o }
60 50558780 2022-01-06 o return json.Marshal(jhost)
61 50558780 2022-01-06 o }