3 26fb88e9 2022-01-12 o import "encoding/json"
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"`
16 76669f9b 2022-01-11 o type HostState int
19 76669f9b 2022-01-11 o HostUp HostState = 0 + iota
21 76669f9b 2022-01-11 o HostUnreachable
24 76669f9b 2022-01-11 o func (s HostState) String() string {
27 76669f9b 2022-01-11 o return "HostUp"
29 76669f9b 2022-01-11 o return "HostDown"
30 76669f9b 2022-01-11 o case HostUnreachable:
31 76669f9b 2022-01-11 o return "HostUnreachable"
33 76669f9b 2022-01-11 o return "unhandled host state"
36 76669f9b 2022-01-11 o func (h Host) name() string {
40 76669f9b 2022-01-11 o func (h Host) path() string {
41 76669f9b 2022-01-11 o return "/objects/hosts/" + h.Name
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"`
50 50558780 2022-01-06 o type host struct {
51 50558780 2022-01-06 o Attrs Attrs `json:"attrs"`
53 50558780 2022-01-06 o jhost := &host{
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,
60 50558780 2022-01-06 o return json.Marshal(jhost)