github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/utils/syslog/config_test.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package syslog_test 5 6 import ( 7 "io/ioutil" 8 "path/filepath" 9 10 "github.com/juju/testing" 11 jc "github.com/juju/testing/checkers" 12 gc "gopkg.in/check.v1" 13 14 "github.com/juju/juju/agent" 15 "github.com/juju/juju/utils/syslog" 16 syslogtesting "github.com/juju/juju/utils/syslog/testing" 17 ) 18 19 type syslogConfigSuite struct { 20 testing.IsolationSuite 21 configDir string 22 } 23 24 var _ = gc.Suite(&syslogConfigSuite{}) 25 26 func (s *syslogConfigSuite) SetUpTest(c *gc.C) { 27 s.IsolationSuite.SetUpTest(c) 28 s.configDir = c.MkDir() 29 } 30 31 func (s *syslogConfigSuite) assertRsyslogConfigPath(c *gc.C, slConfig *syslog.SyslogConfig) { 32 slConfig.ConfigDir = s.configDir 33 slConfig.ConfigFileName = "rsyslog.conf" 34 c.Assert(slConfig.ConfigFilePath(), gc.Equals, filepath.Join(s.configDir, "rsyslog.conf")) 35 } 36 37 func (s *syslogConfigSuite) assertRsyslogConfigContents(c *gc.C, slConfig *syslog.SyslogConfig, 38 expectedConf string) { 39 data, err := slConfig.Render() 40 c.Assert(err, jc.ErrorIsNil) 41 c.Assert(string(data), gc.Equals, expectedConf) 42 } 43 44 func (s *syslogConfigSuite) TestAccumulateConfigRender(c *gc.C) { 45 syslogConfigRenderer := syslog.NewAccumulateConfig("some-machine", agent.DefaultLogDir, 8888, "", []string{"foo"}) 46 s.assertRsyslogConfigContents( 47 c, 48 syslogConfigRenderer, 49 syslogtesting.ExpectedAccumulateSyslogConf(c, "some-machine", "", 8888), 50 ) 51 } 52 53 func (s *syslogConfigSuite) TestAccumulateConfigWrite(c *gc.C) { 54 syslogConfigRenderer := syslog.NewAccumulateConfig("some-machine", agent.DefaultLogDir, 8888, "", []string{"foo"}) 55 syslogConfigRenderer.ConfigDir = s.configDir 56 syslogConfigRenderer.ConfigFileName = "rsyslog.conf" 57 s.assertRsyslogConfigPath(c, syslogConfigRenderer) 58 err := syslogConfigRenderer.Write() 59 c.Assert(err, jc.ErrorIsNil) 60 syslogConfData, err := ioutil.ReadFile(syslogConfigRenderer.ConfigFilePath()) 61 c.Assert(err, jc.ErrorIsNil) 62 c.Assert( 63 string(syslogConfData), 64 gc.Equals, 65 syslogtesting.ExpectedAccumulateSyslogConf(c, "some-machine", "", 8888), 66 ) 67 } 68 69 func (s *syslogConfigSuite) TestAccumulateConfigRenderWithNamespace(c *gc.C) { 70 syslogConfigRenderer := syslog.NewAccumulateConfig("some-machine", agent.DefaultLogDir, 8888, "namespace", []string{"foo"}) 71 syslogConfigRenderer.LogDir += "-namespace" 72 s.assertRsyslogConfigContents( 73 c, syslogConfigRenderer, syslogtesting.ExpectedAccumulateSyslogConf( 74 c, "some-machine", "namespace", 8888, 75 ), 76 ) 77 } 78 79 func (s *syslogConfigSuite) TestForwardConfigRender(c *gc.C) { 80 syslogConfigRenderer := syslog.NewForwardConfig( 81 "some-machine", agent.DefaultLogDir, 999, "", []string{"server"}, 82 ) 83 s.assertRsyslogConfigContents( 84 c, syslogConfigRenderer, syslogtesting.ExpectedForwardSyslogConf( 85 c, "some-machine", agent.DefaultLogDir, "", "server", 999, 86 ), 87 ) 88 } 89 90 func (s *syslogConfigSuite) TestForwardConfigRenderWithNamespace(c *gc.C) { 91 syslogConfigRenderer := syslog.NewForwardConfig( 92 "some-machine", agent.DefaultLogDir, 999, "namespace", []string{"server"}, 93 ) 94 s.assertRsyslogConfigContents( 95 c, syslogConfigRenderer, syslogtesting.ExpectedForwardSyslogConf( 96 c, "some-machine", agent.DefaultLogDir, "namespace", "server", 999, 97 ), 98 ) 99 } 100 101 func (s *syslogConfigSuite) TestForwardConfigWrite(c *gc.C) { 102 syslogConfigRenderer := syslog.NewForwardConfig( 103 "some-machine", agent.DefaultLogDir, 999, "", []string{"server"}, 104 ) 105 syslogConfigRenderer.ConfigDir = s.configDir 106 syslogConfigRenderer.ConfigFileName = "rsyslog.conf" 107 s.assertRsyslogConfigPath(c, syslogConfigRenderer) 108 err := syslogConfigRenderer.Write() 109 c.Assert(err, jc.ErrorIsNil) 110 syslogConfData, err := ioutil.ReadFile(syslogConfigRenderer.ConfigFilePath()) 111 c.Assert(err, jc.ErrorIsNil) 112 c.Assert( 113 string(syslogConfData), 114 gc.Equals, 115 syslogtesting.ExpectedForwardSyslogConf( 116 c, "some-machine", agent.DefaultLogDir, "", "server", 999, 117 ), 118 ) 119 }