github.com/cloud-green/juju@v0.0.0-20151002100041-a00291338d3d/cloudconfig/instancecfg/instancecfg_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package instancecfg_test 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/cloudconfig/instancecfg" 11 "github.com/juju/juju/environs/config" 12 "github.com/juju/juju/state/multiwatcher" 13 "github.com/juju/juju/testing" 14 ) 15 16 type instancecfgSuite struct { 17 testing.BaseSuite 18 } 19 20 var _ = gc.Suite(&instancecfgSuite{}) 21 22 func (*instancecfgSuite) TestInstanceTagsStateServer(c *gc.C) { 23 cfg := testing.CustomEnvironConfig(c, testing.Attrs{}) 24 stateServerJobs := []multiwatcher.MachineJob{multiwatcher.JobManageEnviron} 25 nonStateServerJobs := []multiwatcher.MachineJob{multiwatcher.JobHostUnits} 26 testInstanceTags(c, cfg, stateServerJobs, map[string]string{ 27 "juju-env-uuid": testing.EnvironmentTag.Id(), 28 "juju-is-state": "true", 29 }) 30 testInstanceTags(c, cfg, nonStateServerJobs, map[string]string{ 31 "juju-env-uuid": testing.EnvironmentTag.Id(), 32 }) 33 } 34 35 func (*instancecfgSuite) TestInstanceTagsNoUUID(c *gc.C) { 36 attrsWithoutUUID := testing.FakeConfig() 37 delete(attrsWithoutUUID, "uuid") 38 cfgWithoutUUID, err := config.New(config.NoDefaults, attrsWithoutUUID) 39 c.Assert(err, jc.ErrorIsNil) 40 testInstanceTags(c, 41 cfgWithoutUUID, 42 []multiwatcher.MachineJob(nil), 43 map[string]string{"juju-env-uuid": ""}, 44 ) 45 } 46 47 func (*instancecfgSuite) TestInstanceTagsUserSpecified(c *gc.C) { 48 cfg := testing.CustomEnvironConfig(c, testing.Attrs{ 49 "resource-tags": "a=b c=", 50 }) 51 testInstanceTags(c, cfg, nil, map[string]string{ 52 "juju-env-uuid": testing.EnvironmentTag.Id(), 53 "a": "b", 54 "c": "", 55 }) 56 } 57 58 func testInstanceTags(c *gc.C, cfg *config.Config, jobs []multiwatcher.MachineJob, expectTags map[string]string) { 59 tags := instancecfg.InstanceTags(cfg, jobs) 60 c.Assert(tags, jc.DeepEquals, expectTags) 61 }