本文整理汇总了Golang中github.com/juju/juju/jujuclient.NewFileClientStore函数的典型用法代码示例。如果您正苦于以下问题:Golang NewFileClientStore函数的具体用法?Golang NewFileClientStore怎么用?Golang NewFileClientStore使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewFileClientStore函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestLoginCommand
func (s *cmdLoginSuite) TestLoginCommand(c *gc.C) {
s.createTestUser(c)
// logout "admin" first; we'll need to give it
// a non-random password before we can do so.
s.changeUserPassword(c, "admin", "hunter2")
s.run(c, nil, "logout")
// TODO(axw) 2016-09-08 #1621375
// "juju logout" should clear the cookies for the controller.
os.Remove(filepath.Join(utils.Home(), ".go-cookies"))
context := s.run(c, strings.NewReader("hunter2\nhunter2\n"), "login", "test")
c.Assert(testing.Stdout(context), gc.Equals, "")
c.Assert(testing.Stderr(context), gc.Equals, `
please enter password for [email protected] on kontroll:
You are now logged in to "kontroll" as "[email protected]".
`[1:])
// We should have a macaroon, but no password, in the client store.
store := jujuclient.NewFileClientStore()
accountDetails, err := store.AccountDetails("kontroll")
c.Assert(err, jc.ErrorIsNil)
c.Assert(accountDetails.Password, gc.Equals, "")
// We should be able to login with the macaroon.
s.run(c, nil, "status")
}
开发者ID:kat-co,项目名称:juju,代码行数:28,代码来源:cmd_juju_login_test.go
示例2: TestLoginCommand
func (s *cmdLoginSuite) TestLoginCommand(c *gc.C) {
s.createTestUser(c)
// logout "admin" first; we'll need to give it
// a non-random password before we can do so.
s.changeUserPassword(c, "admin", "hunter2")
s.run(c, nil, "logout")
context := s.run(c, strings.NewReader("hunter2\nhunter2\n"), "login", "test")
c.Assert(testing.Stdout(context), gc.Equals, "")
c.Assert(testing.Stderr(context), gc.Equals, `
password:
You are now logged in to "kontroll" as "[email protected]".
`[1:])
// We should have a macaroon, but no password, in the client store.
store := jujuclient.NewFileClientStore()
accountDetails, err := store.AccountByName("kontroll", "[email protected]")
c.Assert(err, jc.ErrorIsNil)
c.Assert(accountDetails.Password, gc.Equals, "")
c.Assert(accountDetails.Macaroon, gc.Not(gc.Equals), "")
// We should be able to login with the macaroon.
s.run(c, nil, "status")
}
开发者ID:makyo,项目名称:juju,代码行数:25,代码来源:cmd_juju_login_test.go
示例3: NewRegisterCommand
// NewRegisterCommand returns a command to allow the user to register a controller.
func NewRegisterCommand() cmd.Command {
c := ®isterCommand{}
c.apiOpen = c.APIOpen
c.listModelsFunc = c.listModels
c.store = jujuclient.NewFileClientStore()
return modelcmd.WrapBase(c)
}
开发者ID:bac,项目名称:juju,代码行数:8,代码来源:register.go
示例4: Init
// Init implements Command.Init, then calls the wrapped command's Init.
func (w *sysCommandWrapper) Init(args []string) error {
store := w.ClientStore()
if store == nil {
store = jujuclient.NewFileClientStore()
w.SetClientStore(store)
}
if w.setFlags {
if w.controllerName == "" && w.useDefaultControllerName {
name, err := w.getDefaultControllerName()
if err != nil {
return errors.Trace(err)
}
w.controllerName = name
}
if w.controllerName == "" && !w.useDefaultControllerName {
return ErrNoControllerSpecified
}
}
if w.controllerName != "" {
if err := w.SetControllerName(w.controllerName); err != nil {
return errors.Trace(err)
}
}
return w.ControllerCommand.Init(args)
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:26,代码来源:controller.go
示例5: CreateUserHome
// Create a home directory and Juju data home for user username.
// This is used by setUpConn to create the 'ubuntu' user home, after RootDir,
// and may be used again later for other users.
func (s *JujuConnSuite) CreateUserHome(c *gc.C, params *UserHomeParams) {
if s.RootDir == "" {
c.Fatal("JujuConnSuite.setUpConn required first for RootDir")
}
c.Assert(params.Username, gc.Not(gc.Equals), "")
home := filepath.Join(s.RootDir, "home", params.Username)
err := os.MkdirAll(home, 0777)
c.Assert(err, jc.ErrorIsNil)
err = utils.SetHome(home)
c.Assert(err, jc.ErrorIsNil)
jujuHome := filepath.Join(home, ".local", "share")
err = os.MkdirAll(filepath.Join(home, ".local", "share"), 0777)
c.Assert(err, jc.ErrorIsNil)
previousJujuXDGDataHome := osenv.SetJujuXDGDataHome(jujuHome)
if params.SetOldHome {
s.oldJujuXDGDataHome = previousJujuXDGDataHome
}
err = os.MkdirAll(s.DataDir(), 0777)
c.Assert(err, jc.ErrorIsNil)
jujuModelEnvKey := "JUJU_MODEL"
if params.ModelEnvKey != "" {
jujuModelEnvKey = params.ModelEnvKey
}
s.PatchEnvironment(osenv.JujuModelEnvKey, jujuModelEnvKey)
s.ControllerStore = jujuclient.NewFileClientStore()
}
开发者ID:bac,项目名称:juju,代码行数:34,代码来源:conn.go
示例6: Init
// Init implements Command.Init, then calls the wrapped command's Init.
func (w *sysCommandWrapper) Init(args []string) error {
store := w.ClientStore()
if store == nil {
store = jujuclient.NewFileClientStore()
}
store = QualifyingClientStore{store}
w.SetClientStore(store)
if w.setControllerFlags {
if w.controllerName == "" && w.useDefaultController {
store := w.ClientStore()
currentController, err := store.CurrentController()
if err != nil {
return translateControllerError(store, err)
}
w.controllerName = currentController
}
if w.controllerName == "" && !w.useDefaultController {
return ErrNoControllersDefined
}
}
if w.controllerName != "" {
if err := w.SetControllerName(w.controllerName); err != nil {
return translateControllerError(w.ClientStore(), err)
}
}
return w.ControllerCommand.Init(args)
}
开发者ID:bac,项目名称:juju,代码行数:29,代码来源:controller.go
示例7: newSwitchCommand
func newSwitchCommand() cmd.Command {
cmd := &switchCommand{
Store: jujuclient.NewFileClientStore(),
}
cmd.RefreshModels = cmd.JujuCommandBase.RefreshModels
return modelcmd.WrapBase(cmd)
}
开发者ID:bac,项目名称:juju,代码行数:7,代码来源:switch.go
示例8: Init
func (w *modelCommandWrapper) Init(args []string) error {
store := w.ClientStore()
if store == nil {
store = jujuclient.NewFileClientStore()
}
store = QualifyingClientStore{store}
w.SetClientStore(store)
if !w.skipModelFlags {
if w.modelName == "" && w.useDefaultModel {
// Look for the default.
defaultModel, err := GetCurrentModel(store)
if err != nil {
return err
}
w.modelName = defaultModel
}
if w.modelName == "" && !w.useDefaultModel {
return errors.Trace(ErrNoModelSpecified)
}
}
if w.modelName != "" {
if err := w.SetModelName(w.modelName); err != nil {
return translateControllerError(store, err)
}
}
return w.ModelCommand.Init(args)
}
开发者ID:bac,项目名称:juju,代码行数:27,代码来源:modelcommand.go
示例9: NewRegisterCommand
// NewRegisterCommand returns a command to allow the user to register a controller.
func NewRegisterCommand() cmd.Command {
cmd := ®isterCommand{}
cmd.apiOpen = cmd.APIOpen
cmd.refreshModels = cmd.RefreshModels
cmd.store = jujuclient.NewFileClientStore()
return modelcmd.WrapBase(cmd)
}
开发者ID:makyo,项目名称:juju,代码行数:8,代码来源:register.go
示例10: TestReadEmptyFile
func (s *ControllersFileSuite) TestReadEmptyFile(c *gc.C) {
err := ioutil.WriteFile(osenv.JujuXDGDataHomePath("controllers.yaml"), []byte(""), 0600)
c.Assert(err, jc.ErrorIsNil)
controllerStore := jujuclient.NewFileClientStore()
controllers, err := controllerStore.AllControllers()
c.Assert(err, jc.ErrorIsNil)
c.Assert(controllers, gc.IsNil)
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:9,代码来源:controllersfile_test.go
示例11: Init
// Init implements Command.Init, then calls the wrapped command's Init.
func (w *sysCommandWrapper) Init(args []string) error {
store := w.ClientStore()
if store == nil {
store = jujuclient.NewFileClientStore()
}
store = QualifyingClientStore{store}
w.SetClientStore(store)
return w.ControllerCommand.Init(args)
}
开发者ID:kat-co,项目名称:juju,代码行数:11,代码来源:controller.go
示例12: SetUpTest
func (s *ControllersSuite) SetUpTest(c *gc.C) {
s.FakeJujuXDGDataHomeSuite.SetUpTest(c)
s.store = jujuclient.NewFileClientStore()
s.controllerName = "test.controller"
s.controller = jujuclient.ControllerDetails{
UnresolvedAPIEndpoints: []string{"test.server.hostname"},
ControllerUUID: "test.uuid",
APIEndpoints: []string{"test.api.endpoint"},
CACert: "test.ca.cert",
Cloud: "aws",
CloudRegion: "southeastasia",
}
}
开发者ID:bac,项目名称:juju,代码行数:13,代码来源:controllers_test.go
示例13: TestRemoveControllerRemovesModels
func (s *ModelsSuite) TestRemoveControllerRemovesModels(c *gc.C) {
store := jujuclient.NewFileClientStore()
err := store.AddController("kontroll", jujuclient.ControllerDetails{
ControllerUUID: "abc",
CACert: "woop",
})
c.Assert(err, jc.ErrorIsNil)
err = store.RemoveController("kontroll")
c.Assert(err, jc.ErrorIsNil)
models, err := jujuclient.ReadModelsFile(jujuclient.JujuModelsPath())
c.Assert(err, jc.ErrorIsNil)
_, ok := models["admin/kontroll"]
c.Assert(ok, jc.IsFalse) // kontroll models are removed
}
开发者ID:bac,项目名称:juju,代码行数:15,代码来源:models_test.go
示例14: TestRemoveControllerRemovesaccounts
func (s *AccountsSuite) TestRemoveControllerRemovesaccounts(c *gc.C) {
store := jujuclient.NewFileClientStore()
err := store.AddController("kontroll", jujuclient.ControllerDetails{
ControllerUUID: "abc",
CACert: "woop",
})
c.Assert(err, jc.ErrorIsNil)
err = store.RemoveController("kontroll")
c.Assert(err, jc.ErrorIsNil)
accounts, err := jujuclient.ReadAccountsFile(jujuclient.JujuAccountsPath())
c.Assert(err, jc.ErrorIsNil)
_, ok := accounts["kontroll"]
c.Assert(ok, jc.IsFalse) // kontroll accounts are removed
}
开发者ID:bac,项目名称:juju,代码行数:15,代码来源:accounts_test.go
示例15: TestJujuEnvVars
func (suite *PluginSuite) TestJujuEnvVars(c *gc.C) {
// Plugins are run as model commands, and so require a current
// account and model.
err := modelcmd.WriteCurrentController("myctrl")
c.Assert(err, jc.ErrorIsNil)
store := jujuclient.NewFileClientStore()
err = store.UpdateAccount("myctrl", "[email protected]", jujuclient.AccountDetails{
User: "[email protected]",
Password: "hunter2",
})
c.Assert(err, jc.ErrorIsNil)
err = store.SetCurrentAccount("myctrl", "[email protected]")
c.Assert(err, jc.ErrorIsNil)
suite.makeFullPlugin(PluginParams{Name: "foo"})
output := badrun(c, 0, "foo", "-m", "mymodel", "-p", "pluginarg")
expectedDebug := "foo -m mymodel -p pluginarg\nmodel is: mymodel\n.*home is: .*\\.local/share/juju\n"
c.Assert(output, gc.Matches, expectedDebug)
}
开发者ID:makyo,项目名称:juju,代码行数:19,代码来源:plugin_test.go
示例16: TestJujuEnvVars
func (suite *PluginSuite) TestJujuEnvVars(c *gc.C) {
// Plugins are run as model commands, and so require a current
// account and model.
store := jujuclient.NewFileClientStore()
err := store.AddController("myctrl", jujuclient.ControllerDetails{
ControllerUUID: testing.ControllerTag.Id(),
CACert: "fake",
})
c.Assert(err, jc.ErrorIsNil)
err = store.SetCurrentController("myctrl")
c.Assert(err, jc.ErrorIsNil)
err = store.UpdateAccount("myctrl", jujuclient.AccountDetails{
User: "admin",
Password: "hunter2",
})
c.Assert(err, jc.ErrorIsNil)
suite.makeFullPlugin(PluginParams{Name: "foo"})
output := badrun(c, 0, "foo", "-m", "mymodel", "-p", "pluginarg")
expectedDebug := "foo -m mymodel -p pluginarg\nmodel is: mymodel\n"
c.Assert(output, gc.Matches, expectedDebug)
}
开发者ID:bac,项目名称:juju,代码行数:22,代码来源:plugin_test.go
示例17: NewContext
func NewContext() (*Context, error) {
initialize()
jar, err := cookiejar.New(nil)
if err != nil {
return nil, errors.Trace(err)
}
bclient := httpbakery.NewClient()
bclient.Jar = jar
bclient.VisitWebPage = httpbakery.OpenWebBrowser
dialOpts := api.DefaultDialOpts()
dialOpts.BakeryClient = bclient
store := jujuclient.NewFileClientStore()
cstore, err := newCacheStore(store)
if err != nil {
return nil, errors.Annotatef(err, "cannot make store cache")
}
return &Context{
store: cstore,
jar: jar,
dialOpts: dialOpts,
}, nil
}
开发者ID:rogpeppe,项目名称:misc,代码行数:23,代码来源:conn.go
示例18: setUpConn
func (s *JujuConnSuite) setUpConn(c *gc.C) {
if s.RootDir != "" {
c.Fatal("JujuConnSuite.setUpConn without teardown")
}
s.RootDir = c.MkDir()
s.oldHome = utils.Home()
home := filepath.Join(s.RootDir, "/home/ubuntu")
err := os.MkdirAll(home, 0777)
c.Assert(err, jc.ErrorIsNil)
utils.SetHome(home)
err = os.MkdirAll(filepath.Join(home, ".local", "share"), 0777)
c.Assert(err, jc.ErrorIsNil)
s.oldJujuXDGDataHome = osenv.SetJujuXDGDataHome(filepath.Join(home, ".local", "share", "juju"))
err = os.MkdirAll(osenv.JujuXDGDataHome(), 0777)
c.Assert(err, jc.ErrorIsNil)
err = os.MkdirAll(s.DataDir(), 0777)
c.Assert(err, jc.ErrorIsNil)
s.PatchEnvironment(osenv.JujuModelEnvKey, "admin")
cfg, err := config.New(config.UseDefaults, (map[string]interface{})(s.sampleConfig()))
c.Assert(err, jc.ErrorIsNil)
s.ControllerStore = jujuclient.NewFileClientStore()
ctx := testing.Context(c)
environ, err := environs.Prepare(
modelcmd.BootstrapContext(ctx),
s.ControllerStore,
environs.PrepareParams{
BaseConfig: cfg.AllAttrs(),
Credential: cloud.NewEmptyCredential(),
ControllerName: ControllerName,
CloudName: "dummy",
},
)
c.Assert(err, jc.ErrorIsNil)
// sanity check we've got the correct environment.
c.Assert(environ.Config().Name(), gc.Equals, "admin")
s.PatchValue(&dummy.DataDir, s.DataDir())
s.LogDir = c.MkDir()
s.PatchValue(&dummy.LogDir, s.LogDir)
versions := PreferredDefaultVersions(environ.Config(), version.Binary{
Number: jujuversion.Current,
Arch: "amd64",
Series: "precise",
})
current := version.Binary{
Number: jujuversion.Current,
Arch: arch.HostArch(),
Series: series.HostSeries(),
}
versions = append(versions, current)
// Upload tools for both preferred and fake default series
s.DefaultToolsStorageDir = c.MkDir()
s.PatchValue(&tools.DefaultBaseURL, s.DefaultToolsStorageDir)
stor, err := filestorage.NewFileStorageWriter(s.DefaultToolsStorageDir)
c.Assert(err, jc.ErrorIsNil)
// Upload tools to both release and devel streams since config will dictate that we
// end up looking in both places.
envtesting.AssertUploadFakeToolsVersions(c, stor, "released", "released", versions...)
envtesting.AssertUploadFakeToolsVersions(c, stor, "devel", "devel", versions...)
s.DefaultToolsStorage = stor
s.PatchValue(&juju.JujuPublicKey, sstesting.SignedMetadataPublicKey)
err = bootstrap.Bootstrap(modelcmd.BootstrapContext(ctx), environ, bootstrap.BootstrapParams{})
c.Assert(err, jc.ErrorIsNil)
s.BackingState = environ.(GetStater).GetStateInAPIServer()
s.State, err = newState(environ, s.BackingState.MongoConnectionInfo())
c.Assert(err, jc.ErrorIsNil)
apiInfo, err := environs.APIInfo(environ)
c.Assert(err, jc.ErrorIsNil)
apiInfo.Tag = s.AdminUserTag(c)
apiInfo.Password = environ.Config().AdminSecret()
s.APIState, err = api.Open(apiInfo, api.DialOpts{})
c.Assert(err, jc.ErrorIsNil)
err = s.State.SetAPIHostPorts(s.APIState.APIHostPorts())
c.Assert(err, jc.ErrorIsNil)
// Make sure the controller store has the controller api endpoint address set
controller, err := s.ControllerStore.ControllerByName(ControllerName)
c.Assert(err, jc.ErrorIsNil)
controller.APIEndpoints = []string{s.APIState.APIHostPorts()[0][0].String()}
err = s.ControllerStore.UpdateController(ControllerName, *controller)
c.Assert(err, jc.ErrorIsNil)
err = modelcmd.WriteCurrentController(ControllerName)
c.Assert(err, jc.ErrorIsNil)
s.Environ = environ
// Insert expected values...
servingInfo := state.StateServingInfo{
//.........这里部分代码省略.........
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:101,代码来源:conn.go
示例19: SetUpTest
func (s *ModelsSuite) SetUpTest(c *gc.C) {
s.FakeJujuXDGDataHomeSuite.SetUpTest(c)
s.store = jujuclient.NewFileClientStore()
writeTestModelsFile(c)
}
开发者ID:bac,项目名称:juju,代码行数:5,代码来源:models_test.go
示例20: NewShowControllerCommand
// NewShowControllerCommand returns a command to show details of the desired controllers.
func NewShowControllerCommand() cmd.Command {
cmd := &showControllerCommand{
store: jujuclient.NewFileClientStore(),
}
return modelcmd.WrapBase(cmd)
}
开发者ID:bac,项目名称:juju,代码行数:7,代码来源:showcontroller.go
注:本文中的github.com/juju/juju/jujuclient.NewFileClientStore函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论