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 newAPIConnectionParams( store jujuclient.ClientStore, controllerName, modelName string, accountDetails *jujuclient.AccountDetails, bakery *httpbakery.Client, apiOpen api.OpenFunc, getPassword func(string) (string, error), ) (juju.NewAPIConnectionParams, error) { if controllerName == "" { return juju.NewAPIConnectionParams{}, errors.Trace(errNoNameSpecified) } var modelUUID string if modelName != "" { modelDetails, err := store.ModelByName(controllerName, modelName) if err != nil { return juju.NewAPIConnectionParams{}, errors.Trace(err) } modelUUID = modelDetails.ModelUUID } dialOpts := api.DefaultDialOpts() dialOpts.BakeryClient = bakery if accountDetails != nil { bakery.WebPageVisitor = httpbakery.NewMultiVisitor( authentication.NewVisitor(accountDetails.User, getPassword), bakery.WebPageVisitor, ) } return juju.NewAPIConnectionParams{ Store: store, ControllerName: controllerName, AccountDetails: accountDetails, ModelUUID: modelUUID, DialOpts: dialOpts, OpenAPI: apiOpen, }, nil }
func newAPIConnectionParams( store jujuclient.ClientStore, controllerName, accountName, modelName string, bakery *httpbakery.Client, ) (juju.NewAPIConnectionParams, error) { if controllerName == "" { return juju.NewAPIConnectionParams{}, errors.Trace(errNoNameSpecified) } var accountDetails *jujuclient.AccountDetails if accountName != "" { var err error accountDetails, err = store.AccountByName(controllerName, accountName) if err != nil { return juju.NewAPIConnectionParams{}, errors.Trace(err) } } var modelUUID string if modelName != "" { modelDetails, err := store.ModelByName(controllerName, accountName, modelName) if err != nil { return juju.NewAPIConnectionParams{}, errors.Trace(err) } modelUUID = modelDetails.ModelUUID } dialOpts := api.DefaultDialOpts() dialOpts.BakeryClient = bakery return juju.NewAPIConnectionParams{ Store: store, ControllerName: controllerName, BootstrapConfig: NewGetBootstrapConfigFunc(store), AccountDetails: accountDetails, ModelUUID: modelUUID, DialOpts: dialOpts, }, nil }
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) }
func checkModelRemovedFromStore(c *gc.C, name string, store jujuclient.ClientStore) { controller, model := modelcmd.SplitModelName(name) _, err := store.ModelByName(controller, model) c.Assert(err, jc.Satisfies, errors.IsNotFound) }
func checkModelExistsInStore(c *gc.C, name string, store jujuclient.ClientStore) { controller, model := modelcmd.SplitModelName(name) _, err := store.ModelByName(controller, model) c.Assert(err, jc.ErrorIsNil) }