# == Define: elasticsearch::script
#
# This define allows you to insert, update or delete scripts that are used within Elasticsearch
#
# === Parameters
#
# [*ensure*]
# String. Controls if the managed resources shall be present or
# absent. If set to absent:
# * The managed software packages are being uninstalled.
# * Any traces of the packages will be purged as good as possible. This may
# include existing configuration files. The exact behavior is provider
# dependent. Q.v.:
# * Puppet type reference: {package, "purgeable"}[http://j.mp/xbxmNP]
# * {Puppet's package provider source code}[http://j.mp/wtVCaL]
# * System modifications (if any) will be reverted as good as possible
# (e.g. removal of created users, services, changed log settings, ...).
# * This is thus destructive and should be used with care.
# Defaults to present.
#
# [*source*]
# Puppet source of the script
# Value type is string
# Default value: undef
# This variable is optional
#
# === Authors
#
# * Richard Pijnenburg
#
define elasticsearch::script(
$ensure = 'present',
$source = undef,
) {
require elasticsearch
# ensure
if ! ($ensure in [ 'present', 'absent' ]) {
fail("\"${ensure}\" is not a valid ensure parameter value")
}
validate_re($source, '^puppet://')
$filenameArray = split($source, '/')
$basefilename = $filenameArray[-1]
file { "${elasticsearch::configdir}/scripts/${basefilename}":
ensure => $ensure,
source => $source,
owner => $elasticsearch::elasticsearch_user,
group => $elasticsearch::elasticsearch_group,
mode => '0644',
}
}