func (s *InitializeSuite) TestInitializeWithCloudRegionConfig(c *gc.C) { cfg := testing.ModelConfig(c) uuid := cfg.UUID() // Phony region-config regionInheritedConfigIn := cloud.RegionConfig{ "a-region": cloud.Attrs{ "a-key": "a-value", }, "b-region": cloud.Attrs{ "b-key": "b-value", }, } owner := names.NewLocalUserTag("initialize-admin") controllerCfg := testing.FakeControllerConfig() st, err := state.Initialize(state.InitializeParams{ Clock: clock.WallClock, ControllerConfig: controllerCfg, ControllerModelArgs: state.ModelArgs{ CloudName: "dummy", Owner: owner, Config: cfg, StorageProviderRegistry: storage.StaticProviderRegistry{}, }, CloudName: "dummy", Cloud: cloud.Cloud{ Type: "dummy", AuthTypes: []cloud.AuthType{cloud.EmptyAuthType}, RegionConfig: regionInheritedConfigIn, // Init with phony region-config }, MongoInfo: statetesting.NewMongoInfo(), MongoDialOpts: mongotest.DialOpts(), }) c.Assert(err, jc.ErrorIsNil) c.Assert(st, gc.NotNil) modelTag := st.ModelTag() c.Assert(modelTag.Id(), gc.Equals, uuid) err = st.Close() c.Assert(err, jc.ErrorIsNil) s.openState(c, modelTag) for k := range regionInheritedConfigIn { // Query for config for each region regionInheritedConfig, err := state.ReadSettings( s.State, state.GlobalSettingsC, "dummy#"+k) c.Assert(err, jc.ErrorIsNil) c.Assert( cloud.Attrs(regionInheritedConfig.Map()), jc.DeepEquals, regionInheritedConfigIn[k]) } }
func (s *InitializeSuite) TestInitializeWithControllerInheritedConfig(c *gc.C) { cfg := testing.ModelConfig(c) uuid := cfg.UUID() initial := cfg.AllAttrs() controllerInheritedConfigIn := map[string]interface{}{ "default-series": initial["default-series"], } owner := names.NewLocalUserTag("initialize-admin") controllerCfg := testing.FakeControllerConfig() st, err := state.Initialize(state.InitializeParams{ Clock: clock.WallClock, ControllerConfig: controllerCfg, ControllerModelArgs: state.ModelArgs{ CloudName: "dummy", Owner: owner, Config: cfg, StorageProviderRegistry: storage.StaticProviderRegistry{}, }, CloudName: "dummy", Cloud: cloud.Cloud{ Type: "dummy", AuthTypes: []cloud.AuthType{cloud.EmptyAuthType}, }, ControllerInheritedConfig: controllerInheritedConfigIn, MongoInfo: statetesting.NewMongoInfo(), MongoDialOpts: mongotest.DialOpts(), }) c.Assert(err, jc.ErrorIsNil) c.Assert(st, gc.NotNil) modelTag := st.ModelTag() c.Assert(modelTag.Id(), gc.Equals, uuid) err = st.Close() c.Assert(err, jc.ErrorIsNil) s.openState(c, modelTag) controllerInheritedConfig, err := state.ReadSettings(s.State, state.GlobalSettingsC, state.ControllerInheritedSettingsGlobalKey) c.Assert(err, jc.ErrorIsNil) c.Assert(controllerInheritedConfig.Map(), jc.DeepEquals, controllerInheritedConfigIn) expected := cfg.AllAttrs() for k, v := range config.ConfigDefaults() { if _, ok := expected[k]; !ok { expected[k] = v } } // Config as read from state has resources tags coerced to a map. expected["resource-tags"] = map[string]string{} cfg, err = s.State.ModelConfig() c.Assert(err, jc.ErrorIsNil) c.Assert(cfg.AllAttrs(), jc.DeepEquals, expected) }