// ServiceCharmActions is a single query which uses ServicesCharmActions to // get the charm.Actions for a single Service by tag. ServiceCharmActions(params.Entity) (*charm.Actions, error) // Actions fetches actions by tag. These Actions can be used to get // the ActionReceiver if necessary. Actions(params.Entities) (params.ActionResults, error) // FindActionTagsByPrefix takes a list of string prefixes and finds // corresponding ActionTags that match that prefix. FindActionTagsByPrefix(params.FindTags) (params.FindTagsResults, error) } // ActionCommandBase is the base type for action sub-commands. type ActionCommandBase struct { envcmd.EnvCommandBase } // NewActionAPIClient returns a client for the action api endpoint. func (c *ActionCommandBase) NewActionAPIClient() (APIClient, error) { return newAPIClient(c) } var newAPIClient = func(c *ActionCommandBase) (APIClient, error) { root, err := c.NewAPIRoot() if err != nil { return nil, errors.Trace(err) } return action.NewClient(root), nil }
// SetFlags implements Command.SetFlags. func (c *collectMetricsCommand) SetFlags(f *gnuflag.FlagSet) { c.ModelCommandBase.SetFlags(f) } type runClient interface { action.APIClient Run(run params.RunParams) ([]params.ActionResult, error) } var newRunClient = func(env modelcmd.ModelCommandBase) (runClient, error) { root, err := env.NewAPIRoot() if err != nil { return nil, errors.Trace(err) } return actionapi.NewClient(root), errors.Trace(err) } func parseRunOutput(result params.ActionResult) (string, string, error) { if result.Error != nil { return "", "", result.Error } stdout, ok := result.Output["Stdout"].(string) if !ok { return "", "", errors.New("could not read stdout") } stderr, ok := result.Output["Stderr"].(string) if !ok { return "", "", errors.New("could not read stderr") } return strings.Trim(stdout, " \t\n"), strings.Trim(stderr, " \t\n"), nil
func (s *baseSuite) SetUpTest(c *gc.C) { s.JujuConnSuite.SetUpTest(c) s.client = action.NewClient(s.APIState) }