Documentation ¶
Index ¶
- type Action
- func (a *Action) AggregateResult(result map[string]interface{}) error
- func (a *Action) AggregateResultJSON(jres []byte) error
- func (a *Action) AggregateSummaryFormattedStrings() (map[string][]string, error)
- func (a *Action) AggregateSummaryJSON() ([]byte, error)
- func (a *Action) AggregateSummaryStrings() (map[string]map[string]string, error)
- func (a *Action) DisplayMode() string
- func (a *Action) GetInput(i string) (*common.InputItem, bool)
- func (a *Action) GetOutput(o string) (*common.OutputItem, bool)
- func (a *Action) InputNames() (names []string)
- func (a *Action) OutputNames() (names []string)
- func (a *Action) RenderConsole() ([]byte, error)
- func (a *Action) RenderMarkdown() ([]byte, error)
- func (a *Action) RequiresInput(input string) bool
- func (a *Action) SetDefaults(inputs map[string]interface{}) error
- func (a *Action) SetOutputDefaults(results map[string]interface{})
- func (a *Action) ValidateAndConvertToDDLTypes(args map[string]string) (result map[string]interface{}, warnings []string, err error)
- func (a *Action) ValidateInputString(input string, val string) (warnings []string, err error)
- func (a *Action) ValidateInputValue(input string, val interface{}) (warnings []string, err error)
- func (a *Action) ValidateRequestData(data map[string]interface{}) (warnings []string, err error)
- func (a *Action) ValidateRequestJSON(req json.RawMessage) (warnings []string, err error)
- type ActionAggregateItem
- type DDL
- func (d *DDL) ActionInterface(action string) (*Action, error)
- func (d *DDL) ActionNames() []string
- func (d *DDL) HaveAction(action string) bool
- func (d *DDL) RenderConsole() ([]byte, error)
- func (d *DDL) RenderMarkdown() ([]byte, error)
- func (d *DDL) Timeout() time.Duration
- func (d *DDL) ToRuby() (string, error)
- func (d *DDL) ValidateAndConvertToDDLTypes(action string, args map[string]string) (result map[string]interface{}, warnings []string, err error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Action ¶
type Action struct { Name string `json:"action"` Input map[string]*common.InputItem `json:"input"` Output map[string]*common.OutputItem `json:"output"` Display string `json:"display"` Description string `json:"description"` Aggregation []ActionAggregateItem `json:"aggregate,omitempty"` sync.Mutex // contains filtered or unexported fields }
Action describes an individual action in an agent
func (*Action) AggregateResult ¶
AggregateResult receives a result and aggregate all the data found in it, most errors are squashed since aggregation are called during processing of replies and we do not want to fail a reply just because aggregation failed, thus this is basically a best efforts kind of thing on purpose
func (*Action) AggregateResultJSON ¶
AggregateResultJSON receives a JSON reply and aggregate all the data found in it
func (*Action) AggregateSummaryFormattedStrings ¶
AggregateSummaryFormattedStrings produce a formatted string for each output item that has a aggregate summary defined
func (*Action) AggregateSummaryJSON ¶
AggregateSummaryJSON produce a JSON representation of aggregate results for every output item that has a aggregate summary defined
func (*Action) AggregateSummaryStrings ¶
AggregateSummaryStrings produce a map of results for every output item that has a aggregate summary defined
func (*Action) DisplayMode ¶ added in v0.16.0
DisplayMode is the configured display mode
func (*Action) GetOutput ¶ added in v0.16.0
func (a *Action) GetOutput(o string) (*common.OutputItem, bool)
GetOutput gets a named output
func (*Action) InputNames ¶
InputNames retrieves all valid input names
func (*Action) OutputNames ¶
OutputNames retrieves all valid output names
func (*Action) RenderConsole ¶ added in v0.22.0
func (*Action) RenderMarkdown ¶ added in v0.22.0
func (*Action) RequiresInput ¶
RequiresInput reports if an input is required
func (*Action) SetDefaults ¶ added in v0.23.0
SetDefaults looks through inputs and sets default values on any values with defaults that's not been set
func (*Action) SetOutputDefaults ¶
SetOutputDefaults adds items to results that have defaults declared in the DDL but not found in the result
func (*Action) ValidateAndConvertToDDLTypes ¶
func (a *Action) ValidateAndConvertToDDLTypes(args map[string]string) (result map[string]interface{}, warnings []string, err error)
ValidateAndConvertToDDLTypes takes a map of strings like you might receive from the CLI, convert each item to the correct type according to the DDL type hints associated with inputs, validates its valid according to the DDL hints and returns a map of interface{} ready for conversion to JSON that would then have the correct types
func (*Action) ValidateInputString ¶
ValidateInputString attempts to convert a string to the correct type and validate it based on the DDL spec
func (*Action) ValidateInputValue ¶
ValidateInputValue validates the input matches requirements in the DDL
func (*Action) ValidateRequestData ¶
ValidateRequestData validates request data against the DDL
func (*Action) ValidateRequestJSON ¶
func (a *Action) ValidateRequestJSON(req json.RawMessage) (warnings []string, err error)
ValidateRequestJSON receives request data in JSON format and validates it against the DDL
type ActionAggregateItem ¶
type ActionAggregateItem struct { Function string `json:"function"` Arguments json.RawMessage `json:"args"` }
ActionAggregateItem describes a aggregate function to summarize data
func (*ActionAggregateItem) OutputName ¶
func (a *ActionAggregateItem) OutputName() string
OutputName is the name of the output being aggregated
type DDL ¶
type DDL struct { Schema string `json:"$schema"` Metadata *agents.Metadata `json:"metadata"` Actions []*Action `json:"actions"` SourceLocation string `json:"-"` }
DDL represents the schema of a mcorpc agent and is at a basic level compatible with the mcollective agent ddl format
func FindLocally ¶ added in v0.25.0
FindLocally looks in the supplied libdirs for a DDL file for a specific agent TODO: remove
func NewFromBytes ¶ added in v0.25.0
func (*DDL) ActionInterface ¶
ActionInterface looks up an Action by name
func (*DDL) ActionNames ¶
ActionNames is a list of known actions defined by a DDL
func (*DDL) HaveAction ¶
HaveAction determines if an action is known
func (*DDL) RenderConsole ¶ added in v0.22.0
RenderConsole create console appropriate output for agent provider ddls
func (*DDL) RenderMarkdown ¶ added in v0.22.0
RenderMarkdown create markdown appropriate output for agent provider ddls
func (*DDL) ValidateAndConvertToDDLTypes ¶
func (d *DDL) ValidateAndConvertToDDLTypes(action string, args map[string]string) (result map[string]interface{}, warnings []string, err error)
ValidateAndConvertToDDLTypes converts args to the correct data types as declared in the DDL and validates everything