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 e0c24850 2022-01-14 o // Host represents a Host object. To create a Host, the Name and CheckCommand
6 e0c24850 2022-01-14 o // fields must be set.
7 6e415953 2022-01-06 o type Host struct {
8 76669f9b 2022-01-11 o Name string `json:"name"`
9 76669f9b 2022-01-11 o Address string `json:"address"`
10 76669f9b 2022-01-11 o Address6 string `json:"address6"`
11 76669f9b 2022-01-11 o Groups []string `json:"groups"`
12 76669f9b 2022-01-11 o State HostState `json:"state"`
13 da19a2fd 2022-01-18 o StateType StateType `json:"state_type"`
14 76669f9b 2022-01-11 o CheckCommand string `json:"check_command"`
15 76669f9b 2022-01-11 o DisplayName string `json:"display_name"`
16 6e415953 2022-01-06 o }
17 6e415953 2022-01-06 o
18 e0c24850 2022-01-14 o type HostGroup struct {
19 5105405e 2022-01-18 o Name string `json:"name"`
20 e0c24850 2022-01-14 o DisplayName string `json:"display_name"`
21 e0c24850 2022-01-14 o }
22 e0c24850 2022-01-14 o
23 76669f9b 2022-01-11 o type HostState int
24 76669f9b 2022-01-11 o
25 76669f9b 2022-01-11 o const (
26 76669f9b 2022-01-11 o HostUp HostState = 0 + iota
27 76669f9b 2022-01-11 o HostDown
28 76669f9b 2022-01-11 o HostUnreachable
29 76669f9b 2022-01-11 o )
30 76669f9b 2022-01-11 o
31 76669f9b 2022-01-11 o func (s HostState) String() string {
32 76669f9b 2022-01-11 o switch s {
33 76669f9b 2022-01-11 o case HostUp:
34 76669f9b 2022-01-11 o return "HostUp"
35 76669f9b 2022-01-11 o case HostDown:
36 76669f9b 2022-01-11 o return "HostDown"
37 76669f9b 2022-01-11 o case HostUnreachable:
38 76669f9b 2022-01-11 o return "HostUnreachable"
39 76669f9b 2022-01-11 o }
40 76669f9b 2022-01-11 o return "unhandled host state"
41 50558780 2022-01-06 o }
42 50558780 2022-01-06 o
43 76669f9b 2022-01-11 o func (h Host) name() string {
44 76669f9b 2022-01-11 o return h.Name
45 50558780 2022-01-06 o }
46 50558780 2022-01-06 o
47 76669f9b 2022-01-11 o func (h Host) path() string {
48 76669f9b 2022-01-11 o return "/objects/hosts/" + h.Name
49 76669f9b 2022-01-11 o }
50 6e415953 2022-01-06 o
51 e0c24850 2022-01-14 o func (hg HostGroup) name() string {
52 e0c24850 2022-01-14 o return hg.Name
53 e0c24850 2022-01-14 o }
54 e0c24850 2022-01-14 o
55 e0c24850 2022-01-14 o func (hg HostGroup) path() string {
56 e0c24850 2022-01-14 o return "/objects/hostgroups/" + hg.Name
57 e0c24850 2022-01-14 o }
58 e0c24850 2022-01-14 o
59 50558780 2022-01-06 o func (h Host) MarshalJSON() ([]byte, error) {
60 50558780 2022-01-06 o type Attrs struct {
61 50558780 2022-01-06 o Address string `json:"address"`
62 50558780 2022-01-06 o CheckCommand string `json:"check_command"`
63 50558780 2022-01-06 o DisplayName string `json:"display_name"`
64 50558780 2022-01-06 o }
65 50558780 2022-01-06 o type host struct {
66 50558780 2022-01-06 o Attrs Attrs `json:"attrs"`
67 50558780 2022-01-06 o }
68 50558780 2022-01-06 o jhost := &host{
69 50558780 2022-01-06 o Attrs: Attrs{
70 50558780 2022-01-06 o Address: h.Address,
71 50558780 2022-01-06 o CheckCommand: h.CheckCommand,
72 50558780 2022-01-06 o DisplayName: h.DisplayName,
73 50558780 2022-01-06 o },
74 50558780 2022-01-06 o }
75 50558780 2022-01-06 o return json.Marshal(jhost)
76 50558780 2022-01-06 o }
77 e0c24850 2022-01-14 o
78 e0c24850 2022-01-14 o func (hg HostGroup) MarshalJSON() ([]byte, error) {
79 e0c24850 2022-01-14 o type attrs struct {
80 5105405e 2022-01-18 o DisplayName string `json:"display_name"`
81 e0c24850 2022-01-14 o }
82 e0c24850 2022-01-14 o type group struct {
83 e0c24850 2022-01-14 o Attrs attrs `json:"attrs"`
84 e0c24850 2022-01-14 o }
85 e0c24850 2022-01-14 o return json.Marshal(&group{
86 e0c24850 2022-01-14 o Attrs: attrs{
87 e0c24850 2022-01-14 o DisplayName: hg.DisplayName,
88 e0c24850 2022-01-14 o },
89 e0c24850 2022-01-14 o })
90 e0c24850 2022-01-14 o }