]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/elasticsearch/manifests/script.pp
Upgrade to 3rdparty version 0.9.4 of elasticsearch/elasticsearch
[dsa-puppet.git] / 3rdparty / modules / elasticsearch / manifests / script.pp
diff --git a/3rdparty/modules/elasticsearch/manifests/script.pp b/3rdparty/modules/elasticsearch/manifests/script.pp
new file mode 100644 (file)
index 0000000..ddf78c4
--- /dev/null
@@ -0,0 +1,55 @@
+# == 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 <tt>present</tt> or
+#   <tt>absent</tt>. If set to <tt>absent</tt>:
+#   * 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 <tt>present</tt>.
+#
+# [*source*]
+#   Puppet source of the script
+#   Value type is string
+#   Default value: undef
+#   This variable is optional
+#
+# === Authors
+#
+# * Richard Pijnenburg <mailto:richard.pijnenburg@elasticsearch.com>
+#
+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',
+  }
+}