diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-08-05 19:04:41 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-08-05 19:04:41 +0000 |
commit | 1e6c2baffb7605da2bc40a0a49c267c51a54a056 (patch) | |
tree | 1ecc2b9f1aec3789ffecf5406d90d80b01257a9c /lib/puppet | |
parent | 22e7b390878769e2079b5bbd5f10ab152b4b921d (diff) | |
download | puppet-1e6c2baffb7605da2bc40a0a49c267c51a54a056.tar.gz puppet-1e6c2baffb7605da2bc40a0a49c267c51a54a056.tar.xz puppet-1e6c2baffb7605da2bc40a0a49c267c51a54a056.zip |
Adding syslog support by devdas (#745).
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2748 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/provider/syslog/parsed.rb | 40 | ||||
-rw-r--r-- | lib/puppet/type/syslog.rb | 29 |
2 files changed, 69 insertions, 0 deletions
diff --git a/lib/puppet/provider/syslog/parsed.rb b/lib/puppet/provider/syslog/parsed.rb new file mode 100644 index 000000000..9904c673a --- /dev/null +++ b/lib/puppet/provider/syslog/parsed.rb @@ -0,0 +1,40 @@ +require 'puppet/provider/parsedfile' + +# The default target +# We should be able to override this by setting it explicitly in Facter +case Facter.value(:syslogconf) +when nil: + syslogconf = "/etc/syslog.conf" +else + syslogconf = Facter.value(:syslogconf) +end + +Puppet::Type.type(syslog).provide(:parsed, + :parent => Puppet::Provider::ParsedFile, + :default_target => syslogconf, + :filetype => :flat +) do +text_line :comment, :match => /^#/ +text_line :blank, :match => /^\s+/ + +record_line :parsed, :fields => %w{source target}, + :post_parse => proc { |hash| + if hash[:source] =~ /;/ + sources = hash[:source].split(";"); + sources.each { |level| + if level[:facility] =~ /\./ + names = level[:facility].split("\.") + hash[:facility] = names.shift + hash[:priority] = names + end + } + end + } + :pre_gen => proc { |hash| + if hash[:alias] + names = [hash[:name], hash[:alias]].flatten + hash[:name] = [hash[:name], hash[:alias]].flatten.join(",") + hash.delete(:alias) + end + } +end diff --git a/lib/puppet/type/syslog.rb b/lib/puppet/type/syslog.rb new file mode 100644 index 000000000..b685c4138 --- /dev/null +++ b/lib/puppet/type/syslog.rb @@ -0,0 +1,29 @@ +module Puppet + newtype(:syslog) do + @doc = "Installs and manages syslog config files for syslogd. + Facilities and levels when unspecified default to *. + + Example + syslog { logging: + facility => \"local0\", + level => *, + target => \"/var/log/local0.log\" + } + + To allow for multiple targets, pass target as an array." + + ensurable + + newproperty(:facility) + desc "The facility at which logging happens. See syslog.conf(5) for details" + end + + newproperty(:level) + desc "The level at which logging happens" + end + + newproperty(:target) + desc "The file or host to which logging happens" + end + end +end |