commit - 001c466e0421fdbaa864cc31ba288f60dc37068a
commit + 410b374583e5172b215020f0ad3db35a8635fa59
blob - 36b12a496a825ccc2aef75a719a123d76ce3879a
blob + 3c67ea4fc33cb634ff122f5813bdfe569199371c
--- crud.go
+++ crud.go
package icinga
-import "fmt"
+import (
+ "fmt"
+ "net/url"
+)
// Hosts returns a slice of Host matching the filter expression filter.
// If no hosts match, error wraps ErrNoMatch.
// LookupHost returns the Host identified by name. If no Host is found, error
// wraps ErrNotExist.
func (c *Client) LookupHost(name string) (Host, error) {
- obj, err := c.lookupObject("/objects/hosts/" + name)
+ obj, err := c.lookupObject("/objects/hosts/" + url.PathEscape(name))
if err != nil {
return Host{}, fmt.Errorf("lookup host %s: %w", name, err)
}
// depending on the Host are also deleted. If no Host is found, error wraps
// ErrNotExist.
func (c *Client) DeleteHost(name string, cascade bool) error {
- if err := c.deleteObject("/objects/hosts/"+name, cascade); err != nil {
+ if err := c.deleteObject("/objects/hosts/"+url.PathEscape(name), cascade); err != nil {
return fmt.Errorf("delete host %s: %w", name, err)
}
return nil
// LookupService returns the Service identified by name. If no Service is found, error
// wraps ErrNotExist.
func (c *Client) LookupService(name string) (Service, error) {
- obj, err := c.lookupObject("/objects/services/" + name)
+ obj, err := c.lookupObject("/objects/services/" + url.PathEscape(name))
if err != nil {
return Service{}, fmt.Errorf("lookup service %s: %w", name, err)
}
// depending on the Service are also deleted. If no Service is found, error wraps
// ErrNotExist.
func (c *Client) DeleteService(name string, cascade bool) error {
- if err := c.deleteObject("/objects/services/"+name, cascade); err != nil {
+ if err := c.deleteObject("/objects/services/"+url.PathEscape(name), cascade); err != nil {
return fmt.Errorf("delete service %s: %w", name, err)
}
return nil
// LookupUser returns the User identified by name. If no User is found, error
// wraps ErrNotExist.
func (c *Client) LookupUser(name string) (User, error) {
- obj, err := c.lookupObject("/objects/users/" + name)
+ obj, err := c.lookupObject("/objects/users/" + url.PathEscape(name))
if err != nil {
return User{}, fmt.Errorf("lookup user %s: %w", name, err)
}
// depending on the User are also deleted. If no User is found, error wraps
// ErrNotExist.
func (c *Client) DeleteUser(name string, cascade bool) error {
- if err := c.deleteObject("/objects/users/"+name, cascade); err != nil {
+ if err := c.deleteObject("/objects/users/"+url.PathEscape(name), cascade); err != nil {
return fmt.Errorf("delete user %s: %w", name, err)
}
return nil
// LookupHostGroup returns the HostGroup identified by name. If no HostGroup is found, error
// wraps ErrNotExist.
func (c *Client) LookupHostGroup(name string) (HostGroup, error) {
- obj, err := c.lookupObject("/objects/hostgroups/" + name)
+ obj, err := c.lookupObject("/objects/hostgroups/" + url.PathEscape(name))
if err != nil {
return HostGroup{}, fmt.Errorf("lookup hostgroup %s: %w", name, err)
}
// depending on the HostGroup are also deleted. If no HostGroup is found, error wraps
// ErrNotExist.
func (c *Client) DeleteHostGroup(name string, cascade bool) error {
- if err := c.deleteObject("/objects/hostgroups/"+name, cascade); err != nil {
+ if err := c.deleteObject("/objects/hostgroups/"+url.PathEscape(name), cascade); err != nil {
return fmt.Errorf("delete hostgroup %s: %w", name, err)
}
return nil
blob - 2bfde846644d3988f576e0136e9afe7d219c9d62
blob + 021e2c3fc98c66ff53123d27c4e80dc5272e816c
--- crud.sh
+++ crud.sh
package icinga
-import \"fmt\"
+import (
+ \"fmt\"
+ \"net/url\"
+)
"
args=`getopt o: $*`
blob - 98555ec48091ac0edc461dbba2a34659164d40b9
blob + 881465210f60f6d5c9fdea50ed48d10abf49c365
--- crud.skel
+++ crud.skel
// LookupTYPE returns the TYPE identified by name. If no TYPE is found, error
// wraps ErrNotExist.
func (c *Client) LookupTYPE(name string) (TYPE, error) {
- obj, err := c.lookupObject("/objects/PLURAL/" + name)
+ obj, err := c.lookupObject("/objects/PLURAL/" + url.PathEscape(name))
if err != nil {
return TYPE{}, fmt.Errorf("lookup LOWER %s: %w", name, err)
}
// depending on the TYPE are also deleted. If no TYPE is found, error wraps
// ErrNotExist.
func (c *Client) DeleteTYPE(name string, cascade bool) error {
- if err := c.deleteObject("/objects/PLURAL/"+name, cascade); err != nil {
+ if err := c.deleteObject("/objects/PLURAL/"+url.PathEscape(name), cascade); err != nil {
return fmt.Errorf("delete LOWER %s: %w", name, err)
}
return nil