1
0
mirror of https://github.com/krislamo/puppet-fluentd synced 2024-12-16 13:20:35 +00:00
puppet-fluentd/manifests/plugin.pp
2016-05-11 18:32:31 +02:00

59 lines
1.2 KiB
Puppet

# Define: fluentd::plugin
# ===========================
#
# Installs a plugin for fluentd.
#
# Parameters
# ----------
# [*ensure*]
# Default: 'present'
# [*type*]
# Which type of plugin, allowed values are gem and file
# Default: 'gem'
# [*source*]
# source to file for the plugin only needed if you use type: file
# Default: 'undef'
#
# Examples
# --------
#
# @example
# ::fluentd::plugin { 'fluent-plugin-elasticsearch': }
#
# Copyright
# ---------
#
# Copyright 2015 wywy GmbH, unless otherwise noted.
#
define fluentd::plugin (
$ensure = present,
$type = 'gem',
$source = undef,
) {
case $type {
'gem': {
fluentd::plugin::gem { $name:
ensure => $ensure,
require => Class['Fluentd::Install'],
}
}
'file': {
# parameter validation
if ! ($ensure in [ 'present', 'absent' ]) {
fail('ensure parameter must be present or absent')
}
validate_string($source)
fluentd::plugin::file { $name:
ensure => $ensure,
source => $source,
require => Class['Fluentd::Install'],
}
}
default: {
fail("plugin type: '${type}' is currently not supported, use gem or file")
}
}
}