| Index: modules/adblockplus/manifests/log/uplink.pp | 
| diff --git a/modules/adblockplus/manifests/log/uplink.pp b/modules/adblockplus/manifests/log/uplink.pp | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..c6cbab0ca5053982d37f3afafea00b90a7065510 | 
| --- /dev/null | 
| +++ b/modules/adblockplus/manifests/log/uplink.pp | 
| @@ -0,0 +1,64 @@ | 
| +# == Type: adblockplus::log::uplink | 
| +# | 
| +# Used internally by class adblockplus::log::master to establish an SSH | 
| +# uplink for each known server, both identifying and authenticating the | 
| +# client by examining its $ip addresses and $ssh_public_key, i.e.: | 
| +# | 
| +# # write into master:/var/adblockplus/log/uplink/$HOSTNAME/$@ | 
| +# client# ssh -i /etc/ssh/ssh_host_rsa_key log@master $@ < log.1.gz | 
| +# | 
| +# Note the uplink itself being just an SSH layer for upstream I/O, meant | 
| +# to become integrated as a client's post rotation command or similar. | 
| +# | 
| +# === Parameters: | 
| +# | 
| +# Identical to base::explicit_host_records. | 
| +# | 
| +# === Examples: | 
| +# | 
| +# adblockplus::log::uplink {'example': | 
| +# ip => ['10.8.0.1'], | 
| +# ssh_authorized_key => 'AAA...', | 
| +# } | 
| +# | 
| +define adblockplus::log::uplink ( | 
| + $ip, | 
| + $ssh_public_key = undef, | 
| + $role = undef, | 
| + $dns = undef, | 
| + $groups = undef, | 
| +) { | 
| + | 
| + include adblockplus::log::master | 
| + | 
| + $import_command = shellquote([ | 
| + $adblockplus::log::master::import_script, | 
| + '--source', $dns ? {undef => $name, default => $dns}, | 
| + '--target', $adblockplus::log::master::uplink_directory, | 
| + ]) | 
| + | 
| + $source_address_pattern = is_array($ip) ? { | 
| + true => join($ip, ','), | 
| + default => $ip, | 
| + } | 
| + | 
| + ssh_authorized_key {"adblockplus::log::uplink#$name": | 
| + ensure => $ssh_public_key ? { | 
| + undef => 'absent', | 
| + default => 'present', | 
| + }, | 
| + key => $ssh_public_key, | 
| + name => $name, | 
| + options => [ | 
| + "command=\"$import_command -- \$SSH_ORIGINAL_COMMAND\"", | 
| + "from=\"$source_address_pattern\"", | 
| + 'no-agent-forwarding', | 
| + 'no-port-forwarding', | 
| + 'no-pty', | 
| + 'no-X11-forwarding', | 
| + ], | 
| + require => File[$adblockplus::log::master::uplink_directory], | 
| + type => 'ssh-rsa', | 
| + user => $adblockplus::log::user, | 
| + } | 
| +} |