commit - a17d3f9dc6856d0cb60bf176e66844dc2752782d
commit + cb667a50cb18cc38d49e520642743de727bed3ca
blob - acd4390c9d48fa0fd5d47a465bf3e067da19816c
blob + 9f383893d447961fbb9659a79fa71f6a4086fd04
--- host.go
+++ host.go
package icinga
-import "encoding/json"
+import (
+ "encoding/json"
+ "time"
+)
// Host represents a Host object. To create a Host, the Name and CheckCommand
// fields must be set.
StateType StateType `json:"state_type,omitempty"`
CheckCommand string `json:"check_command"`
DisplayName string `json:"display_name,omitempty"`
+ LastCheck time.Time `json:",omitempty"`
+ LastCheckResult CheckResult `json:"last_check_result,omitempty"`
Acknowledgement bool `json:",omitempty"`
}
type alias Host
aux := &struct {
Acknowledgement int
+ LastCheck float64 `json:"last_check"`
*alias
}{
alias: (*alias)(h),
if aux.Acknowledgement != 0 {
h.Acknowledgement = true
}
+ h.LastCheck = time.Unix(int64(aux.LastCheck), 0)
return nil
}
blob - 18943250b3644b6953b6f9f2ba10819721dcc176
blob + 5dbbc2be788f77314110f3e09e341be0a15b6d25
--- host_test.go
+++ host_test.go
import (
"os"
- "reflect"
"testing"
)
func TestHostUnmarshal(t *testing.T) {
- want := Host{
- Name: "VuS9jZ8u.example.org",
- Address: "",
- Groups: []string{},
- State: HostDown,
- StateType: StateSoft,
- CheckCommand: "hostalive",
- DisplayName: "VuS9jZ8u.example.org",
- Acknowledgement: false,
- }
f, err := os.Open("testdata/objects/hosts/VuS9jZ8u.example.org")
if err != nil {
t.Fatal(err)
if err != nil {
t.Fatal(err)
}
- got := resp.Results[0].(Host)
- if !reflect.DeepEqual(want, got) {
- t.Errorf("want %+v, got %+v", want, got)
+ host := resp.Results[0].(Host)
+ if host.LastCheck.IsZero() {
+ t.Error("zero time")
}
+ if !host.Acknowledgement {
+ t.Error("should be acknowledged")
+ }
+ if t.Failed() {
+ t.Log(host)
+ }
}
blob - 8489d3be87abb80b5dfdf4791a962e05133740dd
blob + 0085a777636dfc7ca7c1d96ba594c780da81f234
--- object.go
+++ object.go
m["attrs"] = v
case Host:
aux := &struct {
- // fields not added to Host yet
- // LastCheck struct{}
- // LastCheckResult struct{}
+ LastCheck *struct{} `json:",omitempty"`
+ LastCheckResult *struct{} `json:"last_check_result,omitempty"`
Host
}{Host: v}
m["attrs"] = aux
blob - 7f7cfd4e0aebe84b39cce6a4b2852c1f6db1e453
blob + 04f7c04817e692311cd86d05ada51b03a41412a8
--- testdata/objects/hosts/VuS9jZ8u.example.org
+++ testdata/objects/hosts/VuS9jZ8u.example.org
{
"attrs": {
"__name": "VuS9jZ8u.example.org",
- "acknowledgement": 0,
+ "acknowledgement": 1,
"acknowledgement_expiry": 0,
"acknowledgement_last_change": 0,
"action_url": "",