| Index: modules/adblockplus/manifests/log/master.pp | 
| diff --git a/modules/adblockplus/manifests/log/master.pp b/modules/adblockplus/manifests/log/master.pp | 
| index 856cb7f512e87f67aadcdd413776a0b4b2c83b71..7214a0d0c73f9913eba0de401e4bb1311a2ca37a 100644 | 
| --- a/modules/adblockplus/manifests/log/master.pp | 
| +++ b/modules/adblockplus/manifests/log/master.pp | 
| @@ -3,10 +3,35 @@ | 
| # A server setup to collect and pre-process (i.e. anonymize and combine) | 
| # log files using Logstash (https://logstash.net/) pipelines. | 
| # | 
| -class adblockplus::log::master { | 
| +# === Parameters: | 
| +# | 
| +# [*uplinks*] | 
| +# A hash of $name => $parameters resembling the servers registry within | 
| +# file modules/private/hiera/hosts.yaml, which is used by default. | 
| +# | 
| +# === Examples: | 
| +# | 
| +# class {'adblockplus::log::master': | 
| +# uplinks => { | 
| +# 'filter1' => { | 
| +# ip => '10.8.0.1', | 
| +# ssh_public_key 'AAA...', | 
| +# }, | 
| +# }, | 
| +# } | 
| +# | 
| +class adblockplus::log::master ( | 
| + $uplinks = hiera('adblockplus::log::master::uplinks', hiera('servers', {})), | 
| +) { | 
| - include adblockplus | 
| - realize(File[$adblockplus::directory]) | 
| + include adblockplus::log | 
| + realize(File[$adblockplus::log::directory]) | 
| + realize(User[$adblockplus::log::user]) | 
| + | 
| + # Used as internal constants within adblockplus::log::* resources | 
| + $data_directory = "$adblockplus::log::directory/data" | 
| + $uplink_directory = "$adblockplus::log::directory/uplink" | 
| + $import_script = '/usr/local/bin/adblockplus-log-import' | 
| # Mapping hiera values explicitly becomes obsolete with Puppet 3.x | 
| class {'logstash': | 
| @@ -16,14 +41,40 @@ class adblockplus::log::master { | 
| version => hiera('logstash::version', '1.4'), | 
| } | 
| + # Location for input sockets in Logstash pipeline configurations | 
| + file {$uplink_directory: | 
| + ensure => 'directory', | 
| + group => $adblockplus::log::group, | 
| + mode => 0750, | 
| + owner => 'logstash', | 
| + require => [ | 
| + File[$adblockplus::log::directory], | 
| + Package['logstash'], | 
| + User[$adblockplus::log::user], | 
| + ], | 
| + } | 
| + | 
| # Default location for output files in Logstash pipeline configurations | 
| - file {"$adblockplus::directory/log": | 
| + file {$data_directory: | 
| + ensure => 'directory', | 
| before => Service['logstash'], | 
| group => 'logstash', | 
| mode => 0775, | 
| + owner => 'root', | 
| require => [ | 
| - File[$adblockplus::directory], | 
| + File[$adblockplus::log::directory], | 
| Package['logstash'], | 
| ], | 
| } | 
| + | 
| + # The Python script dispatching incoming logs | 
| + file {$import_script: | 
| + ensure => 'present', | 
| + mode => 0755, | 
| + require => User[$adblockplus::log::user], | 
| + source => 'puppet:///modules/adblockplus/log/import.py', | 
| + } | 
| + | 
| + # See modules/adblockplus/manifests/log/uplink.pp | 
| + create_resources('adblockplus::log::uplink', $uplinks) | 
| } |