func (s *LoginCommandSuite) run(c *gc.C, stdin string, args ...string) (*cmd.Context, juju.NewAPIConnectionParams, error) { var argsOut juju.NewAPIConnectionParams cmd, _ := user.NewLoginCommandForTest(func(args juju.NewAPIConnectionParams) (user.LoginAPI, user.ConnectionAPI, error) { argsOut = args // The account details are modified in place, so take a copy. accountDetails := *argsOut.AccountDetails argsOut.AccountDetails = &accountDetails if s.loginErr != nil { err := s.loginErr s.loginErr = nil return nil, nil, err } return s.mockAPI, s.mockAPI, nil }, s.store) ctx := coretesting.Context(c) if stdin == "" { stdin = "sekrit\n" } ctx.Stdin = strings.NewReader(stdin) err := coretesting.InitCommand(cmd, args) if err != nil { return nil, argsOut, err } err = cmd.Run(ctx) return ctx, argsOut, err }
func newAPIConnectionFromNames( c *gc.C, controller, account, model string, store jujuclient.ClientStore, apiOpen api.OpenFunc, getBootstrapConfig func(string) (*config.Config, error), ) (api.Connection, error) { params := juju.NewAPIConnectionParams{ Store: store, ControllerName: controller, BootstrapConfig: getBootstrapConfig, DialOpts: api.DefaultDialOpts(), } if account != "" { accountDetails, err := store.AccountByName(controller, account) c.Assert(err, jc.ErrorIsNil) params.AccountDetails = accountDetails } if model != "" { modelDetails, err := store.ModelByName(controller, account, model) c.Assert(err, jc.ErrorIsNil) params.ModelUUID = modelDetails.ModelUUID } return juju.NewAPIFromStore(params, apiOpen) }
func newAPIConnectionFromNames( c *gc.C, controller, model string, store jujuclient.ClientStore, apiOpen api.OpenFunc, ) (api.Connection, error) { params := juju.NewAPIConnectionParams{ Store: store, ControllerName: controller, DialOpts: api.DefaultDialOpts(), OpenAPI: apiOpen, } accountDetails, err := store.AccountDetails(controller) if !errors.IsNotFound(err) { c.Assert(err, jc.ErrorIsNil) params.AccountDetails = accountDetails } if model != "" { modelDetails, err := store.ModelByName(controller, model) c.Assert(err, jc.ErrorIsNil) params.ModelUUID = modelDetails.ModelUUID } return juju.NewAPIConnection(params) }