// decorateAndWriteInfo decorates the info struct with information // from the given cfg, and the writes that out to the filesystem. func decorateAndWriteInfo( store jujuclient.ClientStore, details prepareDetails, controllerName, modelName string, ) error { accountName := details.User if err := store.UpdateController(controllerName, details.ControllerDetails); err != nil { return errors.Trace(err) } if err := store.UpdateBootstrapConfig(controllerName, details.BootstrapConfig); err != nil { return errors.Trace(err) } if err := store.UpdateAccount(controllerName, accountName, details.AccountDetails); err != nil { return errors.Trace(err) } if err := store.SetCurrentAccount(controllerName, accountName); err != nil { return errors.Trace(err) } if err := store.UpdateModel(controllerName, accountName, modelName, details.ModelDetails); err != nil { return errors.Trace(err) } if err := store.SetCurrentModel(controllerName, accountName, modelName); err != nil { return errors.Trace(err) } return nil }
// RefreshModels refreshes the local models cache for the current user // on the specified controller. func (c *JujuCommandBase) RefreshModels(store jujuclient.ClientStore, controllerName string) error { modelManager, err := c.modelAPI(store, controllerName) if err != nil { return errors.Trace(err) } defer modelManager.Close() accountDetails, err := store.AccountDetails(controllerName) if err != nil { return errors.Trace(err) } models, err := modelManager.ListModels(accountDetails.User) if err != nil { return errors.Trace(err) } for _, model := range models { modelDetails := jujuclient.ModelDetails{model.UUID} owner := names.NewUserTag(model.Owner) modelName := jujuclient.JoinOwnerModelName(owner, model.Name) if err := store.UpdateModel(controllerName, modelName, modelDetails); err != nil { return errors.Trace(err) } } return nil }
// decorateAndWriteInfo decorates the info struct with information // from the given cfg, and the writes that out to the filesystem. func decorateAndWriteInfo( store jujuclient.ClientStore, details prepareDetails, controllerName, modelName string, ) error { qualifiedModelName := jujuclient.JoinOwnerModelName( names.NewUserTag(details.AccountDetails.User), modelName, ) if err := store.AddController(controllerName, details.ControllerDetails); err != nil { return errors.Trace(err) } if err := store.UpdateBootstrapConfig(controllerName, details.BootstrapConfig); err != nil { return errors.Trace(err) } if err := store.UpdateAccount(controllerName, details.AccountDetails); err != nil { return errors.Trace(err) } if err := store.UpdateModel(controllerName, qualifiedModelName, details.ModelDetails); err != nil { return errors.Trace(err) } if err := store.SetCurrentModel(controllerName, qualifiedModelName); err != nil { return errors.Trace(err) } return nil }