commit - 6d1ce85e966615f3886d8a2431b3e859d3008db6
commit + 82fc97ff8eb537c28bce19af5ffb697773bd200c
blob - 4cf94afd9784ee9e129e44fc674ca65474ae77d8
blob + d65e59b24fb1e7f2a481c9205a661f34ad299e46
--- host.go
+++ host.go
return json.Marshal(jhost)
}
-// Hosts returns all Hosts in the Icinga2 configuration.
-func (c *Client) Hosts() ([]Host, error) {
- objects, err := c.filterObjects("/objects/hosts", "")
+// Hosts returns Hosts matching the filter expression filter.
+// If no hosts match, error wraps ErrNoMatch.
+// To fetch all hosts, set filter to the empty string ("").
+func (c *Client) Hosts(filter string) ([]Host, error) {
+ objects, err := c.filterObjects("/objects/hosts", filter)
if err != nil {
- return nil, fmt.Errorf("get all hosts: %w", err)
+ return nil, fmt.Errorf("get hosts filter %q: %w", filter, err)
}
var hosts []Host
for _, o := range objects {
return hosts, nil
}
-// FilterHosts returns any matching hosts after applying the filter
-// expression expr. If no hosts match, an empty slice and an error wrapping
-// ErrNoMatch is returned.
-func (c *Client) FilterHosts(expr string) ([]Host, error) {
- objects, err := c.filterObjects("/objects/hosts", expr)
- if err != nil {
- return nil, fmt.Errorf("filter hosts %q: %w", expr, err)
- }
- var hosts []Host
- for _, o := range objects {
- v, ok := o.(Host)
- if !ok {
- return nil, fmt.Errorf("filter hosts %q: %T in response", expr, v)
- }
- hosts = append(hosts, v)
- }
- return hosts, nil
-}
-
// LookupHost returns the Host identified by name. If no Host is found,
// error wraps ErrNotExist.
func (c *Client) LookupHost(name string) (Host, error) {
blob - c306c079c0887aeabf9a9a65c029f758d2555e5c
blob + e8308305a7cde15ca9c8c2ca193ebd48305c0adf
--- host_test.go
+++ host_test.go
}
t.Logf("created host %s", h.Name)
}
- hosts, err := client.FilterHosts("match(\"*example.org\", host.name)")
+ hosts, err := client.Hosts("match(\"*example.org\", host.name)")
if err != nil {
t.Fatal(err)
}
blob - 43a5c780fceabdefc8a7482d3f3f92244511a925
blob + a09a08269b2f988f03f4099e057e222fde2177ac
--- object.go
+++ object.go
}
func (c *Client) lookupObject(objpath string) (object, error) {
- resp, err := c.get(objpath)
+ resp, err := c.get(objpath, "")
if err != nil {
return nil, err
}