Documentation ¶
Index ¶
- Constants
- func CheckForAgents(ctx context.Context) error
- func FetchAgents(ctx context.Context) error
- func SaveAgents(aa Agents) error
- type APIAction
- type APIActions
- type APIAgent
- type APIAgents
- type APIConfig
- type APIConfigAgent
- type Action
- type Actions
- type Agent
- type Agents
- type Command
- type CommandData
- type CommandResult
- type Commands
- type Config
- type ConfigData
- type ConfigFile
- type ConfigResult
- type InstalledAgent
- type InstalledAgents
- type Platform
- type Poller
- type Result
Constants ¶
View Source
const ( START = "start" STOP = "stop" RESTART = "restart" STATUS = "status" RELOAD = "reload" INVENTORY = "inventory" VERSION = "version" )
View Source
const ( // action types. CONFIG = "config" COMMAND = "command" STATUS_ACTIVE = "active" //nolint:revive,nosnakecase,stylecheck STATUS_ERROR = "error" //nolint:revive,nosnakecase,stylecheck )
Variables ¶
This section is empty.
Functions ¶
func CheckForAgents ¶
func FetchAgents ¶
func SaveAgents ¶
Types ¶
type APIAction ¶
type APIAction struct { ConfigAssignmentID string `json:"config_assignment_id"` Config APIConfig `json:"configuration"` Agent APIConfigAgent `json:"agent"` }
type APIActions ¶
type APIActions []APIAction
type APIConfigAgent ¶
type APIConfigAgent struct {
ID string `json:"agent_type_id"`
}
type Agent ¶
type Agent struct { ConfigFiles map[string]string `json:"config_files" yaml:"config_files"` Binary string `json:"binary" yaml:"binary"` Start string `json:"start" yaml:"start"` Stop string `json:"stop" yaml:"stop"` Restart string `json:"restart" yaml:"restart"` Reload string `json:"reload" yaml:"reload"` Status string `json:"status" yaml:"status"` Version string `json:"version" yaml:"version"` }
type Agents ¶
key1 is platform (GOOS) e.g. darwin, windows, linux, freebsd, etc. key2 is agent e.g. fluent-bit, telegraf, etc.
func LoadAgents ¶
func ParseAPIAgents ¶
type Command ¶
type Command struct { ID string `json:"id" yaml:"id"` Agent string `json:"agent" yaml:"agent"` Command string `json:"command" yaml:"command"` }
not OS commands, commands the agent knows (e.g. restart_agent, agent_status, etc.). how to restart an agent is in the agent inventory. agent status would be the result of running `systemctl status <agent>`.
type CommandData ¶
type CommandResult ¶
type CommandResult struct { ID string `json:"id" yaml:"id"` Status string `json:"status" yaml:"status"` // active or error CommandData CommandData `json:"data" yaml:"data"` }
Output will be base64 encoded.
type Config ¶
type Config struct { ID string `json:"id" yaml:"id"` Path string `json:"path" yaml:"path"` Contents string `json:"contents" yaml:"contents"` }
Contest should be base64 encoded.
type ConfigData ¶
type ConfigFile ¶
type ConfigResult ¶
type ConfigResult struct { ID string `json:"config_assignment_id" yaml:"config_assignment_id"` Status string `json:"status" yaml:"status"` // STATUS_ACTIVE or STATUS_ERROR Info string `json:"info,omitempty" yaml:"info,omitempty"` ConfigData ConfigData `json:"data,omitempty" yaml:"data,omitempty"` }
write result will be "OK" or the err received when trying to write the file. reload result will be empty or base64 encoded as it may be multi-line output.
type InstalledAgent ¶
type InstalledAgents ¶
type InstalledAgents []InstalledAgent
type Platform ¶
type Platform struct { ID string `json:"platform_id" yaml:"platform_id"` AgentTypeID string `json:"agent_type_id" yaml:"agent_type_id"` Executable string `json:"executable" yaml:"executable"` Commands []Commands `json:"commands" yaml:"commands"` Start string `json:"start" yaml:"start"` Stop string `json:"stop" yaml:"stop"` Restart string `json:"restart" yaml:"restart"` Reload string `json:"reload" yaml:"reload"` Status string `json:"status" yaml:"status"` Version string `json:"version" yaml:"version"` ConfigFiles []ConfigFile `json:"config_files" yaml:"config_files"` }
type Result ¶
type Result struct { ActionID string `json:"action_id" yaml:"action_id"` // not used at this time, api only supports configs ConfigResult ConfigResult `json:"config_result" yaml:"config_result"` CommandResult CommandResult `json:"command_result" yaml:"command_result"` }
Click to show internal directories.
Click to hide internal directories.