Documentation
¶
Overview ¶
Provide authentication for REST commands. Currently only None and Basic supported.
TODO: + krb5 support using https://github.com/jcmturner/gokrb5/v8/...
Support for Geneos Gateway REST Commands ¶
Dataview Snapshot Support ¶
Only valid in GA5.14 and above ¶
In GA5.14.x the first column name is not exported and set to "rowname"
Index ¶
- Constants
- func AuthBasic(c *http.Request, username, password string) (err error)
- func AuthSSO()
- type ArgOptions
- type Args
- type Command
- type CommandOptions
- type CommandsResponse
- type CommandsResponseRaw
- type Connection
- func (c *Connection) CommandTargets(name string, target *xpath.XPath) (matches []*xpath.XPath)
- func (c *Connection) Do(endpoint string, command interface{}) (cr CommandsResponse, err error)
- func (c *Connection) Redial() (err error)
- func (c *Connection) RunCommand(name string, target *xpath.XPath, options ...ArgOptions) (stdout, stderr, execlog string, err error)
- func (c *Connection) RunCommandAll(name string, target *xpath.XPath, options ...ArgOptions) (stdout, stderr, execlog map[string]string, err error)
- func (c *Connection) Snapshot(target *xpath.XPath, scope ...Scope) (dataview *Dataview, err error)
- func (c *Connection) SnoozeInfo(target *xpath.XPath) (info map[string]string, err error)
- func (c *Connection) SnoozeManual(target *xpath.XPath, info string) (err error)
- func (c *Connection) Unsnooze(target *xpath.XPath, info string) (err error)
- type DataItem
- type Dataview
- type Fetch
- type SSOAuth
- type Scope
Constants ¶
const ( None = iota Basic SSO )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ArgOptions ¶
type ArgOptions func(*Args)
func Arg ¶
func Arg(index int, value string) ArgOptions
type Command ¶
type Command struct {
Name string `json:"command,omitempty"`
Target string `json:"target"`
Args *Args `json:"args,omitempty"`
}
A Command is made up of a Name, a Target and optional Args
type CommandOptions ¶
type CommandOptions func(*Connection)
func AllowInsecureCertificates ¶
func AllowInsecureCertificates(opt bool) CommandOptions
allow unverified connections over TLS to the gateway
func Ping ¶
func Ping(ping func(*Connection) bool) CommandOptions
override the ping() function used to test the availability of the gateway when used with DialGateways() and Redial()
func SetBasicAuth ¶
func SetBasicAuth(username, password string) CommandOptions
configure basic authentication on the connection, given a username and password
type CommandsResponse ¶
type CommandsResponse struct {
MimeType map[string]string `json:"mimetype"`
Status string `json:"status"`
StreamData map[string][]string `json:"streamdata"`
Dataview *Dataview `json:"dataview"`
XPaths []string `json:"xpaths"`
}
func CookResponse ¶
func CookResponse(raw CommandsResponseRaw) (cr CommandsResponse)
Convert a raw response into a slightly more structured one where the interleaved stream messages are merged, in order, into slices for each stream
type CommandsResponseRaw ¶
type Connection ¶
type Connection struct {
BaseURL *url.URL
AuthType int
Username string
Password string
SSO SSOAuth
InsecureSkipVerify bool
// contains filtered or unexported fields
}
func DialGateway ¶
func DialGateway(u *url.URL, options ...CommandOptions) (c *Connection, err error)
Set-up a Gateway REST command connection
func DialGateways ¶
func DialGateways(urls []*url.URL, options ...CommandOptions) (c *Connection, err error)
Round-Robin / random dialer. Given a slice of URLs, randomise and then try each one in turn until there is a response using the liveness ping function. If there is an existing connection configured then that is re-tested first before moving onto next URL
all endpoints are given the same options
func (*Connection) CommandTargets ¶
func (*Connection) Do ¶
func (c *Connection) Do(endpoint string, command interface{}) (cr CommandsResponse, err error)
execute a command, return the http response
func (*Connection) Redial ¶
func (c *Connection) Redial() (err error)
Redial the connection, finding the next working endpooint using the liveness ping() function given
func (*Connection) RunCommand ¶
func (c *Connection) RunCommand(name string, target *xpath.XPath, options ...ArgOptions) (stdout, stderr, execlog string, err error)
run a command against exactly one valid target, returning stdout, stderr and execlog where applicable
func (*Connection) RunCommandAll ¶
func (c *Connection) RunCommandAll(name string, target *xpath.XPath, options ...ArgOptions) (stdout, stderr, execlog map[string]string, err error)
run command against all matching data items, returning stdout, stderr and execlog (concatenated) where applicable
func (*Connection) Snapshot ¶
Return the snapshot of the Dataview target with an option Scope. If no Scope is given then only Values are requested. If more than one Scope is given then only the first is used.
func (*Connection) SnoozeInfo ¶
func (*Connection) SnoozeManual ¶
func (c *Connection) SnoozeManual(target *xpath.XPath, info string) (err error)
type Dataview ¶
type Dataview struct {
SampleTime time.Time `json:"sample-time,omitempty"`
Snoozed bool `json:"snoozed,omitempty"`
SnoozedAncestors bool `json:"snoozed-ancestors,omitempty"`
Headlines map[string]DataItem `json:"headlines,omitempty"`
Table map[string]map[string]DataItem `json:"table,omitempty"`
Columns []string `json:"-"`
}