github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/upgrades/deprecatedenvsettings_test.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package upgrades_test 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 10 jujutesting "github.com/juju/juju/juju/testing" 11 "github.com/juju/juju/state" 12 "github.com/juju/juju/upgrades" 13 ) 14 15 type processDeprecatedEnvSettingsSuite struct { 16 jujutesting.JujuConnSuite 17 ctx upgrades.Context 18 } 19 20 var _ = gc.Suite(&processDeprecatedEnvSettingsSuite{}) 21 22 func (s *processDeprecatedEnvSettingsSuite) SetUpTest(c *gc.C) { 23 s.JujuConnSuite.SetUpTest(c) 24 apiState, _ := s.OpenAPIAsNewMachine(c, state.JobManageEnviron) 25 s.ctx = &mockContext{ 26 agentConfig: &mockAgentConfig{dataDir: s.DataDir()}, 27 apiState: apiState, 28 state: s.State, 29 } 30 // Add in old environment settings. 31 newCfg := map[string]interface{}{ 32 "public-bucket": "foo", 33 "public-bucket-region": "bar", 34 "public-bucket-url": "shazbot", 35 "default-instance-type": "vulch", 36 "default-image-id": "1234", 37 "shared-storage-port": 1234, 38 "tools-url": "some.special.url.com", 39 } 40 err := s.State.UpdateEnvironConfig(newCfg, nil, nil) 41 c.Assert(err, jc.ErrorIsNil) 42 } 43 44 func (s *processDeprecatedEnvSettingsSuite) TestEnvSettingsSet(c *gc.C) { 45 cfg, err := s.State.EnvironConfig() 46 c.Assert(err, jc.ErrorIsNil) 47 allAttrs := cfg.AllAttrs() 48 c.Assert(allAttrs["public-bucket"], gc.Equals, "foo") 49 c.Assert(allAttrs["public-bucket-region"], gc.Equals, "bar") 50 c.Assert(allAttrs["public-bucket-url"], gc.Equals, "shazbot") 51 c.Assert(allAttrs["default-instance-type"], gc.Equals, "vulch") 52 c.Assert(allAttrs["default-image-id"], gc.Equals, "1234") 53 c.Assert(allAttrs["shared-storage-port"], gc.Equals, 1234) 54 c.Assert(allAttrs["tools-url"], gc.Equals, "some.special.url.com") 55 } 56 57 func (s *processDeprecatedEnvSettingsSuite) assertConfigProcessed(c *gc.C) { 58 cfg, err := s.State.EnvironConfig() 59 c.Assert(err, jc.ErrorIsNil) 60 allAttrs := cfg.AllAttrs() 61 for _, deprecated := range []string{ 62 "public-bucket", "public-bucket-region", "public-bucket-url", 63 "default-image-id", "default-instance-type", "shared-storage-port", "tools-url", 64 } { 65 _, ok := allAttrs[deprecated] 66 c.Assert(ok, jc.IsFalse) 67 } 68 } 69 70 func (s *processDeprecatedEnvSettingsSuite) TestOldConfigRemoved(c *gc.C) { 71 err := upgrades.ProcessDeprecatedEnvSettings(s.ctx) 72 c.Assert(err, jc.ErrorIsNil) 73 s.assertConfigProcessed(c) 74 } 75 76 func (s *processDeprecatedEnvSettingsSuite) TestIdempotent(c *gc.C) { 77 err := upgrades.ProcessDeprecatedEnvSettings(s.ctx) 78 c.Assert(err, jc.ErrorIsNil) 79 s.assertConfigProcessed(c) 80 81 err = upgrades.ProcessDeprecatedEnvSettings(s.ctx) 82 c.Assert(err, jc.ErrorIsNil) 83 s.assertConfigProcessed(c) 84 }