5 // Host represents a Host object. To create a Host, the Name and CheckCommand
8 Name string `json:"name"`
9 Address string `json:"address"`
10 Address6 string `json:"address6"`
11 Groups []string `json:"groups"`
12 State HostState `json:"state"`
13 CheckCommand string `json:"check_command"`
14 DisplayName string `json:"display_name"`
17 type HostGroup struct {
18 Name string `json:"name"`
19 DisplayName string `json:"display_name"`
25 HostUp HostState = 0 + iota
30 func (s HostState) String() string {
37 return "HostUnreachable"
39 return "unhandled host state"
42 func (h Host) name() string {
46 func (h Host) path() string {
47 return "/objects/hosts/" + h.Name
50 func (hg HostGroup) name() string {
54 func (hg HostGroup) path() string {
55 return "/objects/hostgroups/" + hg.Name
58 func (h Host) MarshalJSON() ([]byte, error) {
60 Address string `json:"address"`
61 CheckCommand string `json:"check_command"`
62 DisplayName string `json:"display_name"`
65 Attrs Attrs `json:"attrs"`
70 CheckCommand: h.CheckCommand,
71 DisplayName: h.DisplayName,
74 return json.Marshal(jhost)
77 func (hg HostGroup) MarshalJSON() ([]byte, error) {
79 DisplayName string `json:"display_name"`
82 Attrs attrs `json:"attrs"`
84 return json.Marshal(&group{
86 DisplayName: hg.DisplayName,