Beispiel #1
0
func (s *SwitchSimpleSuite) TestCurrentModelHasPrecedence(c *gc.C) {
	testing.WriteEnvironments(c, testing.MultipleEnvConfig)
	modelcmd.WriteCurrentModel("fubar")
	context, err := testing.RunCommand(c, newSwitchCommand())
	c.Assert(err, jc.ErrorIsNil)
	c.Assert(testing.Stdout(context), gc.Equals, "fubar\n")
}
Beispiel #2
0
func (s *ModelCommandSuite) TestGetDefaultModelCurrentModelSet(c *gc.C) {
	err := modelcmd.WriteCurrentModel("fubar")
	c.Assert(err, jc.ErrorIsNil)
	env, err := modelcmd.GetDefaultModel()
	c.Assert(env, gc.Equals, "fubar")
	c.Assert(err, jc.ErrorIsNil)
}
Beispiel #3
0
func (s *filesSuite) TestWriteControllerRemovesEnvironmentFile(c *gc.C) {
	err := modelcmd.WriteCurrentModel("fubar")
	c.Assert(err, jc.ErrorIsNil)
	err = modelcmd.WriteCurrentController("baz")
	c.Assert(err, jc.ErrorIsNil)
	c.Assert(modelcmd.GetCurrentModelFilePath(), jc.DoesNotExist)
}
Beispiel #4
0
func (s *filesSuite) TestWriteEnvironmentAddsNewline(c *gc.C) {
	err := modelcmd.WriteCurrentModel("fubar")
	c.Assert(err, jc.ErrorIsNil)
	current, err := ioutil.ReadFile(modelcmd.GetCurrentModelFilePath())
	c.Assert(err, jc.ErrorIsNil)
	c.Assert(string(current), gc.Equals, "fubar\n")
}
Beispiel #5
0
func (s *createSuite) SetUpTest(c *gc.C) {
	s.FakeJujuXDGDataHomeSuite.SetUpTest(c)
	s.fake = &fakeCreateClient{}
	s.parser = nil
	store := configstore.Default
	s.AddCleanup(func(*gc.C) {
		configstore.Default = store
	})
	s.store = configstore.NewMem()
	configstore.Default = func() (configstore.Storage, error) {
		return s.store, nil
	}
	// Set up the current environment, and write just enough info
	// so we don't try to refresh
	envName := "test-master"
	s.serverUUID = "fake-server-uuid"
	info := s.store.CreateInfo(envName)
	info.SetAPIEndpoint(configstore.APIEndpoint{
		Addresses:  []string{"localhost"},
		CACert:     testing.CACert,
		ModelUUID:  s.serverUUID,
		ServerUUID: s.serverUUID,
	})
	info.SetAPICredentials(configstore.APICredentials{User: "******", Password: "******"})
	err := info.Write()
	c.Assert(err, jc.ErrorIsNil)
	s.server = info
	err = modelcmd.WriteCurrentModel(envName)
	c.Assert(err, jc.ErrorIsNil)
}
Beispiel #6
0
func (s *ModelCommandSuite) TestGetDefaultModelBothSet(c *gc.C) {
	os.Setenv(osenv.JujuModelEnvKey, "magic")
	err := modelcmd.WriteCurrentModel("fubar")
	c.Assert(err, jc.ErrorIsNil)
	env, err := modelcmd.GetDefaultModel()
	c.Assert(env, gc.Equals, "magic")
	c.Assert(err, jc.ErrorIsNil)
}
Beispiel #7
0
func (*filesSuite) TestCurrentCommenctionNameEnvironment(c *gc.C) {
	err := modelcmd.WriteCurrentModel("fubar")
	c.Assert(err, jc.ErrorIsNil)
	name, isController, err := modelcmd.CurrentConnectionName()
	c.Assert(err, jc.ErrorIsNil)
	c.Assert(isController, jc.IsFalse)
	c.Assert(name, gc.Equals, "fubar")
}
Beispiel #8
0
func (s *filesSuite) TestSetCurrentControllerExistingEnv(c *gc.C) {
	err := modelcmd.WriteCurrentModel("fubar")
	c.Assert(err, jc.ErrorIsNil)
	ctx := testing.Context(c)
	err = modelcmd.SetCurrentController(ctx, "new-sys")
	c.Assert(err, jc.ErrorIsNil)
	s.assertCurrentController(c, "new-sys")
	c.Assert(testing.Stderr(ctx), gc.Equals, "fubar -> new-sys (controller)\n")
}
Beispiel #9
0
// switchEnvironment changes the default environment to the given name and
// return, if set, the current default environment name.
func switchEnvironment(envName string) (string, error) {
	if defaultEnv := os.Getenv(osenv.JujuModelEnvKey); defaultEnv != "" {
		return "", errors.Errorf("cannot switch when %s is overriding the model (set to %q)", osenv.JujuModelEnvKey, defaultEnv)
	}
	currentEnv, err := modelcmd.GetDefaultModel()
	if err != nil {
		return "", errors.Annotate(err, "cannot get the default model")
	}
	if err := modelcmd.WriteCurrentModel(envName); err != nil {
		return "", errors.Trace(err)
	}
	return currentEnv, nil
}
Beispiel #10
0
func (s *ControllerCommandSuite) TestControllerCommandInitEnvFile(c *gc.C) {
	// If there is a current-model file, use that.
	err := modelcmd.WriteCurrentModel("fubar")
	c.Assert(err, jc.ErrorIsNil)
	testEnsureControllerName(c, "fubar")
}
Beispiel #11
0
func (s *UserSuite) SetUpTest(c *gc.C) {
	s.JujuConnSuite.SetUpTest(c)
	modelcmd.WriteCurrentModel("dummymodel")
}
Beispiel #12
0
func (*filesSuite) TestErrorWritingCurrentModel(c *gc.C) {
	// Can't write a file over a directory.
	os.MkdirAll(modelcmd.GetCurrentModelFilePath(), 0777)
	err := modelcmd.WriteCurrentModel("fubar")
	c.Assert(err, gc.ErrorMatches, "unable to write to the model file: .*")
}
Beispiel #13
0
func (s *filesSuite) TestReadCurrentModelSet(c *gc.C) {
	err := modelcmd.WriteCurrentModel("fubar")
	c.Assert(err, jc.ErrorIsNil)
	s.assertCurrentModel(c, "fubar")
}