func (s *InitializeSuite) TestInitialize(c *C) { _, err := s.State.EnvironConfig() c.Assert(err, checkers.Satisfies, errors.IsNotFoundError) _, err = s.State.Annotator("environment-foo") c.Assert(err, checkers.Satisfies, errors.IsNotFoundError) _, err = s.State.EnvironConstraints() c.Assert(err, checkers.Satisfies, errors.IsNotFoundError) cfg := testing.EnvironConfig(c) initial := cfg.AllAttrs() st, err := state.Initialize(state.TestingStateInfo(), cfg, state.TestingDialOpts()) c.Assert(err, IsNil) c.Assert(st, NotNil) err = st.Close() c.Assert(err, IsNil) cfg, err = s.State.EnvironConfig() c.Assert(err, IsNil) c.Assert(cfg.AllAttrs(), DeepEquals, initial) env, err := s.State.Annotator("environment-" + cfg.Name()) c.Assert(err, IsNil) annotations, err := env.Annotations() c.Assert(err, IsNil) c.Assert(annotations, HasLen, 0) cons, err := s.State.EnvironConstraints() c.Assert(err, IsNil) c.Assert(cons, DeepEquals, constraints.Value{}) }
func (s *lxcBrokerSuite) SetUpTest(c *gc.C) { s.lxcSuite.SetUpTest(c) tools := &tools.Tools{ Version: version.MustParseBinary("2.3.4-foo-bar"), URL: "http://tools.testing.invalid/2.3.4-foo-bar.tgz", } s.broker = provisioner.NewLxcBroker(coretesting.EnvironConfig(c), tools) }
// TestingInitialize initializes the state and returns it. If state was not // already initialized, and cfg is nil, the minimal default environment // configuration will be used. func TestingInitialize(c *C, cfg *config.Config) *State { if cfg == nil { cfg = testing.EnvironConfig(c) } st, err := Initialize(TestingStateInfo(), cfg, TestingDialOpts()) c.Assert(err, IsNil) return st }
func StartContainer(c *gc.C, manager lxc.ContainerManager, machineId string) instance.Instance { config := testing.EnvironConfig(c) stateInfo := jujutesting.FakeStateInfo(machineId) apiInfo := jujutesting.FakeAPIInfo(machineId) series := "series" nonce := "fake-nonce" tools := &tools.Tools{ Binary: version.MustParseBinary("2.3.4-foo-bar"), URL: "http://tools.testing.invalid/2.3.4-foo-bar.tgz", } inst, err := manager.StartContainer(machineId, series, nonce, tools, config, stateInfo, apiInfo) c.Assert(err, gc.IsNil) return inst }
func (s *InitializeSuite) TestEnvironConfigWithAdminSecret(c *C) { // admin-secret blocks Initialize. good := testing.EnvironConfig(c) bad, err := good.Apply(map[string]interface{}{"admin-secret": "foo"}) _, err = state.Initialize(state.TestingStateInfo(), bad, state.TestingDialOpts()) c.Assert(err, ErrorMatches, "admin-secret should never be written to the state") // admin-secret blocks SetEnvironConfig. st := state.TestingInitialize(c, good) st.Close() err = s.State.SetEnvironConfig(bad) c.Assert(err, ErrorMatches, "admin-secret should never be written to the state") // EnvironConfig remains inviolate. cfg, err := s.State.EnvironConfig() c.Assert(err, IsNil) c.Assert(cfg.AllAttrs(), DeepEquals, good.AllAttrs()) }
func (s *InitializeSuite) TestDoubleInitializeConfig(c *C) { cfg := testing.EnvironConfig(c) initial := cfg.AllAttrs() st := state.TestingInitialize(c, cfg) st.Close() // A second initialize returns an open *State, but ignores its params. // TODO(fwereade) I think this is crazy, but it's what we were testing // for originally... cfg, err := cfg.Apply(map[string]interface{}{"authorized-keys": "something-else"}) c.Assert(err, IsNil) st, err = state.Initialize(state.TestingStateInfo(), cfg, state.TestingDialOpts()) c.Assert(err, IsNil) c.Assert(st, NotNil) st.Close() cfg, err = s.State.EnvironConfig() c.Assert(err, IsNil) c.Assert(cfg.AllAttrs(), DeepEquals, initial) }
func (s *InitializeSuite) TestEnvironConfigWithoutAgentVersion(c *C) { // admin-secret blocks Initialize. good := testing.EnvironConfig(c) attrs := good.AllAttrs() delete(attrs, "agent-version") bad, err := config.New(attrs) c.Assert(err, IsNil) _, err = state.Initialize(state.TestingStateInfo(), bad, state.TestingDialOpts()) c.Assert(err, ErrorMatches, "agent-version must always be set in state") // Bad agent-version blocks SetEnvironConfig. st := state.TestingInitialize(c, good) st.Close() err = s.State.SetEnvironConfig(bad) c.Assert(err, ErrorMatches, "agent-version must always be set in state") // EnvironConfig remains inviolate. cfg, err := s.State.EnvironConfig() c.Assert(err, IsNil) c.Assert(cfg.AllAttrs(), DeepEquals, good.AllAttrs()) }