change the cronjob so that the failure to find any (^err:|^alert:|^emerg:|^crit:...
authorMicah Anderson <micah@riseup.net>
Tue, 15 Mar 2011 22:29:51 +0000 (18:29 -0400)
committerMicah Anderson <micah@riseup.net>
Tue, 15 Mar 2011 22:29:51 +0000 (18:29 -0400)
commit8aaf0f8b167702dd2b8e4d7e01b33d5915cf4f3b
tree8c0bc66ab1e471b640d50b7c6cac7191ee844cc5
parentd38e7cf64902ff55138e5f85cc7c3b880ea5fb74
change the cronjob so that the failure to find any (^err:|^alert:|^emerg:|^crit:) in the output from the puppet run doesn't leave us with a '1' return code from grep.

On Debian Squeeze systems, this problem would result in cron reporting that the cron command failed with an exit status 1:

/USR/SBIN/CRON[24107]: (CRON) error (grandchild #24108 failed with exit status 1)

This was because grep returns a '1' if it fails to find a match. We don't want the failure to find failure messages to produce a failure, so this checks the return code of the grep and fixes it to be '0' if there were no such failure log messages.

This is a bit ugly, if you ask me. We are already, unfortunately, swallowing the puppetd return code with the grep. It seems like these sorts of log messages should be retrieved via reports, logcheck, or something other than this grep of the output of the cronjob.
manifests/cron/linux.pp