# [*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 {
command => "mkdir -p ${dirs}",
creates => $instance_datadir,
require => Class['elasticsearch::package'],
- before => Elasticsearch::Service[$name]
+ before => Elasticsearch::Service[$name],
}
file { $instance_datadir:
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:
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":
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 {
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']
}
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,
}
}