dev/provisioning/modules/elasticsearch/manifests/script.pp
changeset 28 b0b56e0f8c7f
equal deleted inserted replaced
27:a2342f26c9de 28:b0b56e0f8c7f
       
     1 # == Define: elasticsearch::script
       
     2 #
       
     3 #  This define allows you to insert, update or delete scripts that are used within Elasticsearch
       
     4 #
       
     5 # === Parameters
       
     6 #
       
     7 # [*ensure*]
       
     8 #   String. Controls if the managed resources shall be <tt>present</tt> or
       
     9 #   <tt>absent</tt>. If set to <tt>absent</tt>:
       
    10 #   * The managed software packages are being uninstalled.
       
    11 #   * Any traces of the packages will be purged as good as possible. This may
       
    12 #     include existing configuration files. The exact behavior is provider
       
    13 #     dependent. Q.v.:
       
    14 #     * Puppet type reference: {package, "purgeable"}[http://j.mp/xbxmNP]
       
    15 #     * {Puppet's package provider source code}[http://j.mp/wtVCaL]
       
    16 #   * System modifications (if any) will be reverted as good as possible
       
    17 #     (e.g. removal of created users, services, changed log settings, ...).
       
    18 #   * This is thus destructive and should be used with care.
       
    19 #   Defaults to <tt>present</tt>.
       
    20 #
       
    21 # [*source*]
       
    22 #   Puppet source of the script
       
    23 #   Value type is string
       
    24 #   Default value: undef
       
    25 #   This variable is mandatory
       
    26 #
       
    27 # === Authors
       
    28 #
       
    29 # * Richard Pijnenburg <mailto:richard.pijnenburg@elasticsearch.com>
       
    30 #
       
    31 define elasticsearch::script(
       
    32   $source,
       
    33   $ensure  = 'present',
       
    34 ) {
       
    35 
       
    36   require elasticsearch
       
    37 
       
    38   # ensure
       
    39   if ! ($ensure in [ 'present', 'absent' ]) {
       
    40     fail("\"${ensure}\" is not a valid ensure parameter value")
       
    41   }
       
    42 
       
    43   validate_re($source, '^(puppet|file)://')
       
    44 
       
    45   $filenameArray = split($source, '/')
       
    46   $basefilename = $filenameArray[-1]
       
    47 
       
    48   file { "${elasticsearch::params::homedir}/scripts/${basefilename}":
       
    49     ensure => $ensure,
       
    50     source => $source,
       
    51     owner  => $elasticsearch::elasticsearch_user,
       
    52     group  => $elasticsearch::elasticsearch_group,
       
    53     mode   => '0644',
       
    54   }
       
    55 }