]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/elasticsearch/manifests/instance.pp
Upgrade to 3rdparty version 0.9.4 of elasticsearch/elasticsearch
[dsa-puppet.git] / 3rdparty / modules / elasticsearch / manifests / instance.pp
index 93ab6e5bd169dcf95d8ae3c233ad52dbd34049d8..814fa7050c1710fb18ea2132392078bb1cb83017 100644 (file)
 # [*init_defaults*]
 #   Defaults file content in hash representation
 #
+# [*init_defaults_file*]
+#   Defaults file as puppet resource
+#
 # === Authors
 #
 # * Richard Pijnenburg <mailto:richard.pijnenburg@elasticsearch.com>
 #
 define elasticsearch::instance(
-  $ensure           = $elasticsearch::ensure,
-  $status           = $elasticsearch::status,
-  $config           = undef,
-  $configdir        = undef,
-  $datadir          = undef,
-  $logging_file     = undef,
-  $logging_config   = undef,
-  $logging_template = undef,
-  $logging_level    = $elasticsearch::default_logging_level,
-  $init_defaults    = undef
+  $ensure             = $elasticsearch::ensure,
+  $status             = $elasticsearch::status,
+  $config             = undef,
+  $configdir          = undef,
+  $datadir            = undef,
+  $logging_file       = undef,
+  $logging_config     = undef,
+  $logging_template   = undef,
+  $logging_level      = $elasticsearch::default_logging_level,
+  $init_defaults      = undef,
+  $init_defaults_file = undef
 ) {
 
   require elasticsearch::params
 
   File {
     owner => $elasticsearch::elasticsearch_user,
-    group => $elasticsearch::elasticsearch_group
+    group => $elasticsearch::elasticsearch_group,
   }
 
   Exec {
@@ -199,7 +203,7 @@ define elasticsearch::instance(
       command => "mkdir -p ${dirs}",
       creates => $instance_datadir,
       require => Class['elasticsearch::package'],
-      before  => Elasticsearch::Service[$name]
+      before  => Elasticsearch::Service[$name],
     }
 
     file { $instance_datadir:
@@ -208,14 +212,14 @@ define elasticsearch::instance(
       group   => undef,
       mode    => '0644',
       require => [ Exec["mkdir_datadir_elasticsearch_${name}"], Class['elasticsearch::package'] ],
-      before  => Elasticsearch::Service[$name]
+      before  => Elasticsearch::Service[$name],
     }
 
     exec { "mkdir_configdir_elasticsearch_${name}":
       command => "mkdir -p ${instance_configdir}",
       creates => $elasticsearch::configdir,
       require => Class['elasticsearch::package'],
-      before  => Elasticsearch::Service[$name]
+      before  => Elasticsearch::Service[$name],
     }
 
     file { $instance_configdir:
@@ -224,7 +228,7 @@ define elasticsearch::instance(
       purge   => $elasticsearch::purge_configdir,
       force   => $elasticsearch::purge_configdir,
       require => [ Exec["mkdir_configdir_elasticsearch_${name}"], Class['elasticsearch::package'] ],
-      before  => Elasticsearch::Service[$name]
+      before  => Elasticsearch::Service[$name],
     }
 
     file { "${instance_configdir}/logging.yml":
@@ -234,13 +238,23 @@ define elasticsearch::instance(
       mode    => '0644',
       notify  => $notify_service,
       require => Class['elasticsearch::package'],
-      before  => Elasticsearch::Service[$name]
+      before  => Elasticsearch::Service[$name],
+    }
+
+    file { "${instance_configdir}/scripts":
+      ensure => 'link',
+      target => "${elasticsearch::configdir}/scripts",
     }
 
     # build up new config
     $instance_conf = merge($main_config, $instance_node_name, $instance_config, $instance_datadir_config)
 
     # defaults file content
+    # ensure user did not provide both init_defaults and init_defaults_file
+    if (($init_defaults != undef) and ($init_defaults_file != undef)) {
+      fail ('Only one of $init_defaults and $init_defaults_file should be defined')
+    }
+
     if (is_hash($elasticsearch::init_defaults)) {
       $global_init_defaults = $elasticsearch::init_defaults
     } else {
@@ -264,7 +278,7 @@ define elasticsearch::instance(
       content => template("${module_name}/etc/elasticsearch/elasticsearch.yml.erb"),
       mode    => '0644',
       notify  => $notify_service,
-      require => Class['elasticsearch::package']
+      require => Class['elasticsearch::package'],
     }
 
     $require_service = Class['elasticsearch::package']
@@ -285,12 +299,13 @@ define elasticsearch::instance(
   }
 
   elasticsearch::service { $name:
-    ensure        => $ensure,
-    status        => $status,
-    init_defaults => $init_defaults_new,
-    init_template => "${module_name}/etc/init.d/${elasticsearch::params::init_template}",
-    require       => $require_service,
-    before        => $before_service
+    ensure             => $ensure,
+    status             => $status,
+    init_defaults      => $init_defaults_new,
+    init_defaults_file => $init_defaults_file,
+    init_template      => "${module_name}/etc/init.d/${elasticsearch::params::init_template}",
+    require            => $require_service,
+    before             => $before_service,
   }
 
 }