Merge lp:~wallyworld/juju-core/rsyslog-stutter into lp:~go-bot/juju-core/trunk

Proposed by Ian Booth
Status: Merged
Approved by: Ian Booth
Approved revision: no longer in the source branch.
Merged at revision: 1372
Proposed branch: lp:~wallyworld/juju-core/rsyslog-stutter
Merge into: lp:~go-bot/juju-core/trunk
Diff against target: 121 lines (+20/-5)
4 files modified
environs/cloudinit/cloudinit_test.go (+4/-4)
log/syslog/config.go (+9/-0)
log/syslog/config_test.go (+4/-0)
worker/deployer/simple_test.go (+3/-1)
To merge this branch: bzr merge lp:~wallyworld/juju-core/rsyslog-stutter
Reviewer Review Type Date Requested Status
Juju Engineering Pending
Review via email: mp+172268@code.launchpad.net

Commit message

Fix rsyslog stutter issue

Bug 1195223 said that rsyslog was writing repetitive
information to the all-machines log file. Extra rsyslog
config is added to specify the use of an explicit state
file which rsyslog uses to keep track of where it is up
to when tailing files to be logged.

I tested live on EC2 and after 30 minutes and deploying
a mysql charm, the all machines log was about 80k and
did not contain duplicate logged items.

https://codereview.appspot.com/10820043/

Description of the change

Fix rsyslog stutter issue

Bug 1195223 said that rsyslog was writing repetitive
information to the all-machines log file. Extra rsyslog
config is added to specify the use of an explicit state
file which rsyslog uses to keep track of where it is up
to when tailing files to be logged.

I tested live on EC2 and after 30 minutes and deploying
a mysql charm, the all machines log was about 80k and
did not contain duplicate logged items.

https://codereview.appspot.com/10820043/

To post a comment you must log in.
Revision history for this message
Ian Booth (wallyworld) wrote :

Reviewers: mp+172268_code.launchpad.net,

Message:
Please take a look.

Description:
Fix rsyslog stutter issue

Bug 1195223 said that rsyslog was writing repetitive
information to the all-machines log file. Extra rsyslog
config is added to specify the use of an explicit state
file which rsyslog uses to keep track of where it is up
to when tailing files to be logged.

I tested live on EC2 and after 30 minutes and deploying
a mysql charm, the all machines log was about 80k and
did not contain duplicate logged items.

https://code.launchpad.net/~wallyworld/juju-core/rsyslog-stutter/+merge/172268

(do not edit description out of merge proposal)

Please review this at https://codereview.appspot.com/10820043/

Affected files:
   A [revision details]
   M log/syslog/config.go
   M log/syslog/config_test.go

Index: [revision details]
=== added file '[revision details]'
--- [revision details] 2012-01-01 00:00:00 +0000
+++ [revision details] 2012-01-01 00:00:00 +0000
@@ -0,0 +1,2 @@
+Old revision: tarmac-20130701001136-uj4xmbgpnl1rbt9n
+New revision: <email address hidden>

Index: log/syslog/config.go
=== modified file 'log/syslog/config.go'
--- log/syslog/config.go 2013-05-02 15:55:42 +0000
+++ log/syslog/config.go 2013-07-01 03:03:59 +0000
@@ -17,6 +17,8 @@
  const stateServerRsyslogTemplate = `
  $ModLoad imfile

+$InputFileStateFile {{statefilePath}}
+$InputFilePersistStateInterval 50
  $InputFilePollInterval 5
  $InputFileName {{logfilePath}}
  $InputFileTag local-juju-{{logfileName}}:
@@ -41,6 +43,8 @@
  const nodeRsyslogTemplate = `
  $ModLoad imfile

+$InputFileStateFile {{statefilePath}}
+$InputFilePersistStateInterval 50
  $InputFilePollInterval 5
  $InputFileName {{logfilePath}}
  $InputFileTag juju-{{logfileName}}:
@@ -118,10 +122,15 @@
    return fmt.Sprintf("/var/log/juju/%s.log", slConfig.LogFileName)
   }

+ var stateFilePath = func() string {
+ return fmt.Sprintf("/var/spool/rsyslog/%s-state", slConfig.LogFileName)
+ }
+
   t := template.New("")
   t.Funcs(template.FuncMap{"logfileName": logFileName})
   t.Funcs(template.FuncMap{"bootstrapIP": bootstrapIP})
   t.Funcs(template.FuncMap{"logfilePath": logFilePath})
+ t.Funcs(template.FuncMap{"statefilePath": stateFilePath})

   // Process the rsyslog config template and echo to the conf file.
   p, err := t.Parse(slConfig.configTemplate)

Index: log/syslog/config_test.go
=== modified file 'log/syslog/config_test.go'
--- log/syslog/config_test.go 2013-05-02 15:55:42 +0000
+++ log/syslog/config_test.go 2013-07-01 03:03:59 +0000
@@ -41,6 +41,8 @@
  var expectedAccumulateSyslogConf = `
  $ModLoad imfile

+$InputFileStateFile /var/spool/rsyslog/some-machine-state
+$InputFilePersistStateInterval 50
  $InputFilePollInterval 5
  $InputFileName /var/log/juju/some-machine.log
  $InputFileTag local-juju-some-machine:
@@ -80,6 +82,8 @@
  var expectedForwardSyslogConf = `
  $ModLoad imfile

+$InputFileStateFile /var/spool/rsyslog/some-machine-state
+$InputFilePersistStateInterval 50
  $InputFilePollInterval 5
  $InputFileName /var/log/juju/some-machine.log
  $InputFileTag juju-some-machine:

Revision history for this message
John A Meinel (jameinel) wrote :
Revision history for this message
Martin Packman (gz) wrote :

LGMT, shame there's no explict unit test but can see that's not simple
to write.

https://codereview.appspot.com/10820043/

Revision history for this message
Martin Packman (gz) wrote :
Revision history for this message
Go Bot (go-bot) wrote :
Download full text (56.9 KiB)

The attempt to merge lp:~wallyworld/juju-core/rsyslog-stutter into lp:juju-core failed. Below is the output from the failed tests.

ok launchpad.net/juju-core/bzr 6.315s
ok launchpad.net/juju-core/cert 5.076s
ok launchpad.net/juju-core/charm 0.576s
? launchpad.net/juju-core/charm/hooks [no test files]
ok launchpad.net/juju-core/cloudinit 0.009s
ok launchpad.net/juju-core/cmd 0.210s
? launchpad.net/juju-core/cmd/builddb [no test files]
? launchpad.net/juju-core/cmd/charmd [no test files]
? launchpad.net/juju-core/cmd/charmload [no test files]
ok launchpad.net/juju-core/cmd/juju 108.946s
ok launchpad.net/juju-core/cmd/jujud 42.016s
ok launchpad.net/juju-core/constraints 0.013s
ok launchpad.net/juju-core/container/lxc 0.356s
? launchpad.net/juju-core/container/lxc/mock [no test files]
ok launchpad.net/juju-core/downloader 5.343s
ok launchpad.net/juju-core/environs 1.759s
ok launchpad.net/juju-core/environs/agent 2.624s
? launchpad.net/juju-core/environs/all [no test files]
ok launchpad.net/juju-core/environs/azure 2.470s

----------------------------------------------------------------------
FAIL: cloudinit_test.go:273: cloudinitSuite.TestCloudInit

test 0
script: set -xe
script: mkdir -p /var/lib/juju
script: mkdir -p /var/log/juju
script: bin='/var/lib/juju/tools/1\.2\.3-precise-amd64'
script: mkdir -p \$bin
script: wget --no-verbose -O - 'http://foo\.com/tools/juju1\.2\.3-precise-amd64\.tgz' \| tar xz -C \$bin
script: echo -n 'http://foo\.com/tools/juju1\.2\.3-precise-amd64\.tgz' > \$bin/downloaded-url\.txt
script: cat > /etc/rsyslog\.d/25-juju\.conf << 'EOF'\\n\\n\$ModLoad imfile\\n\\n\$InputFileStateFile /var/spool/rsyslog/machine-0-state\\n\$InputFilePersistStateInterval 50\\n\$InputFilePollInterval 5\\n\$InputFileName /var/log/juju/machine-0\.log\\n\$InputFileTag local-juju-machine-0:\\n\$InputFileStateFile machine-0\\n\$InputRunFileMonitor\\n\\n\$ModLoad imudp\\n\$UDPServerRun 514\\n\\n# Messages received from remote rsyslog machines contain a leading space so we\\n# need to account for that\.\\n\$template JujuLogFormatLocal,"%HOSTNAME%:%msg:::drop-last-lf%\\n"\\n\$template JujuLogFormat,"%HOSTNAME%:%msg:2:2048:drop-last-lf%\\n"\\n\\n:syslogtag, startswith, "juju-" /var/log/juju/all-machines\.log;JujuLogFormat\\n:syslogtag, startswith, "local-juju-" /var/log/juju/all-machines\.log;JujuLogFormatLocal\\n& ~\\nEOF\\n
script: restart rsyslog
script: mkdir -p '/var/lib/juju/agents/machine-0'
script: echo 'datadir: /var/lib/juju\\nstateservercert:\\n- 83\\n- 69\\n- 82\\n- 86\\n- 69\\n- 82\\n- 32\\n- 67\\n- 69\\n- 82\\n- 84\\n- 10\\n- 45\\n- 45\\n- 45\\n- 45\\n- 45\\n- 66\\n- 69\\n- 71\\n- 73\\n- 78\\n- 32\\n- 67\\n- 69\\n- 82\\n- 84\\n- 73\\n- 70\\n- 73\\n- 67\\n- 65\\n- 84\\n- 69\\n- 45\\n- 45\\n- 45\\n- 45\\n- 45\\n- 10\\n- 77\\n- 73\\n- 73\\n- 66\\n- 100\\n- 122\\n- 67\\n- 67\\n- 65\\n- 83\\n- 79\\n- 103\\n- 65\\n- 119\\n- 73\\n- 66\\n- 65\\n- 103\\n- 73\\n- 66\\n- 65\\n- 68\\n- 65\\n- 76\\n- 66\\n- 103\\n- 107\\n- 113\\n- 104\\n- 107\\n- 105\\n- 71\\n- 57\\n- 119\\n- 48\\n- 66\\n- 65\\n- 81\\n- 85\\n- 119\\n- 72\\n- 106\\n- 69\\n- 78\\n- 77\\n- 65\\n- 115\\n- 71\\n- 65\\n- 49\\n- 85\\n- 69\\n- 67...

Revision history for this message
Go Bot (go-bot) wrote :
Download full text (7.2 KiB)

The attempt to merge lp:~wallyworld/juju-core/rsyslog-stutter into lp:juju-core failed. Below is the output from the failed tests.

ok launchpad.net/juju-core/bzr 6.354s
ok launchpad.net/juju-core/cert 3.400s
ok launchpad.net/juju-core/charm 0.609s
? launchpad.net/juju-core/charm/hooks [no test files]
ok launchpad.net/juju-core/cloudinit 0.009s
ok launchpad.net/juju-core/cmd 0.241s
? launchpad.net/juju-core/cmd/builddb [no test files]
? launchpad.net/juju-core/cmd/charmd [no test files]
? launchpad.net/juju-core/cmd/charmload [no test files]
ok launchpad.net/juju-core/cmd/juju 109.387s
ok launchpad.net/juju-core/cmd/jujud 41.360s
ok launchpad.net/juju-core/constraints 0.013s
ok launchpad.net/juju-core/container/lxc 0.374s
? launchpad.net/juju-core/container/lxc/mock [no test files]
ok launchpad.net/juju-core/downloader 5.316s
ok launchpad.net/juju-core/environs 1.722s
ok launchpad.net/juju-core/environs/agent 2.498s
? launchpad.net/juju-core/environs/all [no test files]
ok launchpad.net/juju-core/environs/azure 2.496s
ok launchpad.net/juju-core/environs/cloudinit 0.548s
ok launchpad.net/juju-core/environs/config 0.891s
ok launchpad.net/juju-core/environs/dummy 15.242s
ok launchpad.net/juju-core/environs/ec2 90.906s
ok launchpad.net/juju-core/environs/imagemetadata 0.253s
ok launchpad.net/juju-core/environs/instances 0.247s
ok launchpad.net/juju-core/environs/jujutest 0.233s
ok launchpad.net/juju-core/environs/local 0.252s
ok launchpad.net/juju-core/environs/localstorage 0.277s
ok launchpad.net/juju-core/environs/maas 8.783s
ok launchpad.net/juju-core/environs/openstack 8.603s
? launchpad.net/juju-core/environs/testing [no test files]
ok launchpad.net/juju-core/environs/tools 18.775s
? launchpad.net/juju-core/errors [no test files]
ok launchpad.net/juju-core/instance 0.007s
ok launchpad.net/juju-core/juju 12.542s
? launchpad.net/juju-core/juju/testing [no test files]
ok launchpad.net/juju-core/log 0.008s
ok launchpad.net/juju-core/log/syslog 0.010s
ok launchpad.net/juju-core/rpc 0.272s
ok launchpad.net/juju-core/rpc/jsoncodec 0.218s
ok launchpad.net/juju-core/schema 0.011s
ok launchpad.net/juju-core/state 55.322s
? launchpad.net/juju-core/state/api [no test files]
? launchpad.net/juju-core/state/api/common [no test files]
ok launchpad.net/juju-core/state/api/machineagent 1.703s
ok launchpad.net/juju-core/state/api/machiner 1.967s
ok launchpad.net/juju-core/state/api/params 0.022s
ok launchpad.net/juju-core/state/apiserver 1.865s
ok launchpad.net/juju-core/state/apiserver/client 12.789s
ok launchpad.net/juju-core/state/apiserver/common 0.020s
ok launchpad.net/juju-core/state/apiserver/machine 3.042s
? launchpad.net/juju-core/state/apiserver/testing [no test files]
ok launchpad.net/juju-core/state/multiwatcher 1.134s
ok launchpad.net/juju-core/state/presence 8.006s
ok launchpad.net/juju-core/state/statecmd 6.558s
? launchpad.net/juju-core/state/testing [no test files]
ok launchpad.net/juju-core/state/watcher 5.313s
ok launchpad.net/juju-core/store 18.008s
ok launchpad.net/juju-core/testing 1.305s
ok launchpad.net/j...

Read more...

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'environs/cloudinit/cloudinit_test.go'
2--- environs/cloudinit/cloudinit_test.go 2013-06-16 22:27:47 +0000
3+++ environs/cloudinit/cloudinit_test.go 2013-07-01 12:40:48 +0000
4@@ -84,7 +84,7 @@
5 mkdir -p \$bin
6 wget --no-verbose -O - 'http://foo\.com/tools/juju1\.2\.3-precise-amd64\.tgz' \| tar xz -C \$bin
7 echo -n 'http://foo\.com/tools/juju1\.2\.3-precise-amd64\.tgz' > \$bin/downloaded-url\.txt
8-cat > /etc/rsyslog.d/25-juju.conf << 'EOF'\\n\\n\$ModLoad imfile\\n\\n\$InputFilePollInterval 5\\n\$InputFileName /var/log/juju/machine-0.log\\n\$InputFileTag local-juju-machine-0:\\n\$InputFileStateFile machine-0\\n\$InputRunFileMonitor\\n\\n\$ModLoad imudp\\n\$UDPServerRun 514\\n\\n# Messages received from remote rsyslog machines contain a leading space so we\\n# need to account for that.\\n\$template JujuLogFormatLocal,\"%HOSTNAME%:%msg:::drop-last-lf%\\n\"\\n\$template JujuLogFormat,\"%HOSTNAME%:%msg:2:2048:drop-last-lf%\\n\"\\n\\n:syslogtag, startswith, \"juju-\" /var/log/juju/all-machines.log;JujuLogFormat\\n:syslogtag, startswith, \"local-juju-\" /var/log/juju/all-machines.log;JujuLogFormatLocal\\n& ~\\nEOF\\n
9+cat > /etc/rsyslog.d/25-juju.conf << 'EOF'\\n\\n\$ModLoad imfile\\n\\n\$InputFileStateFile /var/spool/rsyslog/juju-machine-0-state\\n\$InputFilePersistStateInterval 50\\n\$InputFilePollInterval 5\\n\$InputFileName /var/log/juju/machine-0.log\\n\$InputFileTag local-juju-machine-0:\\n\$InputFileStateFile machine-0\\n\$InputRunFileMonitor\\n\\n\$ModLoad imudp\\n\$UDPServerRun 514\\n\\n# Messages received from remote rsyslog machines contain a leading space so we\\n# need to account for that.\\n\$template JujuLogFormatLocal,\"%HOSTNAME%:%msg:::drop-last-lf%\\n\"\\n\$template JujuLogFormat,\"%HOSTNAME%:%msg:2:2048:drop-last-lf%\\n\"\\n\\n:syslogtag, startswith, \"juju-\" /var/log/juju/all-machines.log;JujuLogFormat\\n:syslogtag, startswith, \"local-juju-\" /var/log/juju/all-machines.log;JujuLogFormatLocal\\n& ~\\nEOF\\n
10 restart rsyslog
11 mkdir -p '/var/lib/juju/agents/machine-0'
12 echo 'datadir: /var/lib/juju\\nstateservercert:\\n[^']+stateserverkey:\\n[^']+stateport: 37017\\napiport: 17070\\noldpassword: arble\\nmachinenonce: FAKE_NONCE\\nstateinfo:\\n addrs:\\n - localhost:37017\\n cacert:\\n[^']+ tag: machine-0\\n password: ""\\noldapipassword: ""\\napiinfo:\\n addrs:\\n - localhost:17070\\n cacert:\\n[^']+ tag: machine-0\\n password: ""\\n' > '/var/lib/juju/agents/machine-0/agent\.conf'
13@@ -139,7 +139,7 @@
14 mkdir -p \$bin
15 wget --no-verbose -O - 'http://foo\.com/tools/juju1\.2\.3-raring-amd64\.tgz' \| tar xz -C \$bin
16 echo -n 'http://foo\.com/tools/juju1\.2\.3-raring-amd64\.tgz' > \$bin/downloaded-url\.txt
17-cat > /etc/rsyslog.d/25-juju.conf << 'EOF'\\n\\n\$ModLoad imfile\\n\\n\$InputFilePollInterval 5\\n\$InputFileName /var/log/juju/machine-0.log\\n\$InputFileTag local-juju-machine-0:\\n\$InputFileStateFile machine-0\\n\$InputRunFileMonitor\\n\\n\$ModLoad imudp\\n\$UDPServerRun 514\\n\\n# Messages received from remote rsyslog machines contain a leading space so we\\n# need to account for that.\\n\$template JujuLogFormatLocal,\"%HOSTNAME%:%msg:::drop-last-lf%\\n\"\\n\$template JujuLogFormat,\"%HOSTNAME%:%msg:2:2048:drop-last-lf%\\n\"\\n\\n:syslogtag, startswith, \"juju-\" /var/log/juju/all-machines.log;JujuLogFormat\\n:syslogtag, startswith, \"local-juju-\" /var/log/juju/all-machines.log;JujuLogFormatLocal\\n& ~\\nEOF\\n
18+cat > /etc/rsyslog.d/25-juju.conf << 'EOF'\\n\\n\$ModLoad imfile\\n\\n\$InputFileStateFile /var/spool/rsyslog/juju-machine-0-state\\n\$InputFilePersistStateInterval 50\\n\$InputFilePollInterval 5\\n\$InputFileName /var/log/juju/machine-0.log\\n\$InputFileTag local-juju-machine-0:\\n\$InputFileStateFile machine-0\\n\$InputRunFileMonitor\\n\\n\$ModLoad imudp\\n\$UDPServerRun 514\\n\\n# Messages received from remote rsyslog machines contain a leading space so we\\n# need to account for that.\\n\$template JujuLogFormatLocal,\"%HOSTNAME%:%msg:::drop-last-lf%\\n\"\\n\$template JujuLogFormat,\"%HOSTNAME%:%msg:2:2048:drop-last-lf%\\n\"\\n\\n:syslogtag, startswith, \"juju-\" /var/log/juju/all-machines.log;JujuLogFormat\\n:syslogtag, startswith, \"local-juju-\" /var/log/juju/all-machines.log;JujuLogFormatLocal\\n& ~\\nEOF\\n
19 restart rsyslog
20 mkdir -p '/var/lib/juju/agents/machine-0'
21 echo 'datadir: /var/lib/juju\\nstateservercert:\\n[^']+stateserverkey:\\n[^']+stateport: 37017\\napiport: 17070\\noldpassword: arble\\nmachinenonce: FAKE_NONCE\\nstateinfo:\\n addrs:\\n - localhost:37017\\n cacert:\\n[^']+ tag: machine-0\\n password: ""\\noldapipassword: ""\\napiinfo:\\n addrs:\\n - localhost:17070\\n cacert:\\n[^']+ tag: machine-0\\n password: ""\\n' > '/var/lib/juju/agents/machine-0/agent\.conf'
22@@ -190,7 +190,7 @@
23 mkdir -p \$bin
24 wget --no-verbose -O - 'http://foo\.com/tools/juju1\.2\.3-linux-amd64\.tgz' \| tar xz -C \$bin
25 echo -n 'http://foo\.com/tools/juju1\.2\.3-linux-amd64\.tgz' > \$bin/downloaded-url\.txt
26-cat > /etc/rsyslog.d/25-juju.conf << 'EOF'\\n\\n\$ModLoad imfile\\n\\n\$InputFilePollInterval 5\\n\$InputFileName /var/log/juju/machine-99.log\\n\$InputFileTag juju-machine-99:\\n\$InputFileStateFile machine-99\\n\$InputRunFileMonitor\\n\\n:syslogtag, startswith, \"juju-\" @state-addr.example.com:514\\n& ~\\nEOF\\n
27+cat > /etc/rsyslog.d/25-juju.conf << 'EOF'\\n\\n\$ModLoad imfile\\n\\n\$InputFileStateFile /var/spool/rsyslog/juju-machine-99-state\\n\$InputFilePersistStateInterval 50\\n\$InputFilePollInterval 5\\n\$InputFileName /var/log/juju/machine-99.log\\n\$InputFileTag juju-machine-99:\\n\$InputFileStateFile machine-99\\n\$InputRunFileMonitor\\n\\n:syslogtag, startswith, \"juju-\" @state-addr.example.com:514\\n& ~\\nEOF\\n
28 restart rsyslog
29 mkdir -p '/var/lib/juju/agents/machine-99'
30 echo 'datadir: /var/lib/juju\\noldpassword: arble\\nmachinenonce: FAKE_NONCE\\nstateinfo:\\n addrs:\\n - state-addr\.example\.com:12345\\n cacert:\\n[^']+ tag: machine-99\\n password: ""\\noldapipassword: ""\\napiinfo:\\n addrs:\\n - state-addr\.example\.com:54321\\n cacert:\\n[^']+ tag: machine-99\\n password: ""\\n' > '/var/lib/juju/agents/machine-99/agent\.conf'
31@@ -229,7 +229,7 @@
32 mkdir -p \$bin
33 wget --no-verbose -O - 'http://foo\.com/tools/juju1\.2\.3-linux-amd64\.tgz' \| tar xz -C \$bin
34 echo -n 'http://foo\.com/tools/juju1\.2\.3-linux-amd64\.tgz' > \$bin/downloaded-url\.txt
35-cat > /etc/rsyslog.d/25-juju.conf << 'EOF'\\n\\n\$ModLoad imfile\\n\\n\$InputFilePollInterval 5\\n\$InputFileName /var/log/juju/machine-2-lxc-1.log\\n\$InputFileTag juju-machine-2-lxc-1:\\n\$InputFileStateFile machine-2-lxc-1\\n\$InputRunFileMonitor\\n\\n:syslogtag, startswith, \"juju-\" @state-addr.example.com:514\\n& ~\\nEOF\\n
36+cat > /etc/rsyslog.d/25-juju.conf << 'EOF'\\n\\n\$ModLoad imfile\\n\\n\$InputFileStateFile /var/spool/rsyslog/juju-machine-2-lxc-1-state\\n\$InputFilePersistStateInterval 50\\n\$InputFilePollInterval 5\\n\$InputFileName /var/log/juju/machine-2-lxc-1.log\\n\$InputFileTag juju-machine-2-lxc-1:\\n\$InputFileStateFile machine-2-lxc-1\\n\$InputRunFileMonitor\\n\\n:syslogtag, startswith, \"juju-\" @state-addr.example.com:514\\n& ~\\nEOF\\n
37 restart rsyslog
38 mkdir -p '/var/lib/juju/agents/machine-2-lxc-1'
39 echo 'datadir: /var/lib/juju\\noldpassword: arble\\nmachinenonce: FAKE_NONCE\\nstateinfo:\\n addrs:\\n - state-addr\.example\.com:12345\\n cacert:\\n[^']+ tag: machine-2-lxc-1\\n password: ""\\noldapipassword: ""\\napiinfo:\\n addrs:\\n - state-addr\.example\.com:54321\\n cacert:\\n[^']+ tag: machine-2-lxc-1\\n password: ""\\n' > '/var/lib/juju/agents/machine-2-lxc-1/agent\.conf'
40
41=== modified file 'log/syslog/config.go'
42--- log/syslog/config.go 2013-05-02 15:55:42 +0000
43+++ log/syslog/config.go 2013-07-01 12:40:48 +0000
44@@ -17,6 +17,8 @@
45 const stateServerRsyslogTemplate = `
46 $ModLoad imfile
47
48+$InputFileStateFile {{statefilePath}}
49+$InputFilePersistStateInterval 50
50 $InputFilePollInterval 5
51 $InputFileName {{logfilePath}}
52 $InputFileTag local-juju-{{logfileName}}:
53@@ -41,6 +43,8 @@
54 const nodeRsyslogTemplate = `
55 $ModLoad imfile
56
57+$InputFileStateFile {{statefilePath}}
58+$InputFilePersistStateInterval 50
59 $InputFilePollInterval 5
60 $InputFileName {{logfilePath}}
61 $InputFileTag juju-{{logfileName}}:
62@@ -118,10 +122,15 @@
63 return fmt.Sprintf("/var/log/juju/%s.log", slConfig.LogFileName)
64 }
65
66+ var stateFilePath = func() string {
67+ return fmt.Sprintf("/var/spool/rsyslog/juju-%s-state", slConfig.LogFileName)
68+ }
69+
70 t := template.New("")
71 t.Funcs(template.FuncMap{"logfileName": logFileName})
72 t.Funcs(template.FuncMap{"bootstrapIP": bootstrapIP})
73 t.Funcs(template.FuncMap{"logfilePath": logFilePath})
74+ t.Funcs(template.FuncMap{"statefilePath": stateFilePath})
75
76 // Process the rsyslog config template and echo to the conf file.
77 p, err := t.Parse(slConfig.configTemplate)
78
79=== modified file 'log/syslog/config_test.go'
80--- log/syslog/config_test.go 2013-05-02 15:55:42 +0000
81+++ log/syslog/config_test.go 2013-07-01 12:40:48 +0000
82@@ -41,6 +41,8 @@
83 var expectedAccumulateSyslogConf = `
84 $ModLoad imfile
85
86+$InputFileStateFile /var/spool/rsyslog/juju-some-machine-state
87+$InputFilePersistStateInterval 50
88 $InputFilePollInterval 5
89 $InputFileName /var/log/juju/some-machine.log
90 $InputFileTag local-juju-some-machine:
91@@ -80,6 +82,8 @@
92 var expectedForwardSyslogConf = `
93 $ModLoad imfile
94
95+$InputFileStateFile /var/spool/rsyslog/juju-some-machine-state
96+$InputFilePersistStateInterval 50
97 $InputFilePollInterval 5
98 $InputFileName /var/log/juju/some-machine.log
99 $InputFileTag juju-some-machine:
100
101=== modified file 'worker/deployer/simple_test.go'
102--- worker/deployer/simple_test.go 2013-06-28 17:32:42 +0000
103+++ worker/deployer/simple_test.go 2013-07-01 12:40:48 +0000
104@@ -193,6 +193,8 @@
105 var expectedSyslogConf = `
106 $ModLoad imfile
107
108+$InputFileStateFile /var/spool/rsyslog/juju-%s-state
109+$InputFilePersistStateInterval 50
110 $InputFilePollInterval 5
111 $InputFileName /var/log/juju/%s.log
112 $InputFileTag juju-%s:
113@@ -258,7 +260,7 @@
114 c.Assert(err, IsNil)
115 parts := strings.SplitN(name, "/", 2)
116 unitTag := fmt.Sprintf("unit-%s-%s", parts[0], parts[1])
117- expectedSyslogConfReplaced := fmt.Sprintf(expectedSyslogConf, unitTag, unitTag, unitTag)
118+ expectedSyslogConfReplaced := fmt.Sprintf(expectedSyslogConf, unitTag, unitTag, unitTag, unitTag)
119 c.Assert(string(syslogConfData), Equals, expectedSyslogConfReplaced)
120
121 }

Subscribers

People subscribed via source and target branches

to status/vote changes: