Remove elasticsearch module, it is no longer needed
[mirror/dsa-puppet.git] / 3rdparty / modules / elasticsearch / manifests / init.pp
diff --git a/3rdparty/modules/elasticsearch/manifests/init.pp b/3rdparty/modules/elasticsearch/manifests/init.pp
deleted file mode 100644 (file)
index 9b7b40d..0000000
+++ /dev/null
@@ -1,385 +0,0 @@
-# == Class: elasticsearch
-#
-# This class is able to install or remove elasticsearch on a node.
-# It manages the status of the related service.
-#
-# === 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>.
-#
-# [*autoupgrade*]
-#   Boolean. If set to <tt>true</tt>, any managed package gets upgraded
-#   on each Puppet run when the package provider is able to find a newer
-#   version than the present one. The exact behavior is provider dependent.
-#   Q.v.:
-#   * Puppet type reference: {package, "upgradeable"}[http://j.mp/xbxmNP]
-#   * {Puppet's package provider source code}[http://j.mp/wtVCaL]
-#   Defaults to <tt>false</tt>.
-#
-# [*status*]
-#   String to define the status of the service. Possible values:
-#   * <tt>enabled</tt>: Service is running and will be started at boot time.
-#   * <tt>disabled</tt>: Service is stopped and will not be started at boot
-#     time.
-#   * <tt>running</tt>: Service is running but will not be started at boot time.
-#     You can use this to start a service on the first Puppet run instead of
-#     the system startup.
-#   * <tt>unmanaged</tt>: Service will not be started at boot time and Puppet
-#     does not care whether the service is running or not. For example, this may
-#     be useful if a cluster management software is used to decide when to start
-#     the service plus assuring it is running on the desired node.
-#   Defaults to <tt>enabled</tt>. The singular form ("service") is used for the
-#   sake of convenience. Of course, the defined status affects all services if
-#   more than one is managed (see <tt>service.pp</tt> to check if this is the
-#   case).
-#
-# [*version*]
-#   String to set the specific version you want to install.
-#   Defaults to <tt>false</tt>.
-#
-# [*restart_on_change*]
-#   Boolean that determines if the application should be automatically restarted
-#   whenever the configuration changes. Disabling automatic restarts on config
-#   changes may be desired in an environment where you need to ensure restarts
-#   occur in a controlled/rolling manner rather than during a Puppet run.
-#
-#   Defaults to <tt>true</tt>, which will restart the application on any config
-#   change. Setting to <tt>false</tt> disables the automatic restart.
-#
-# [*configdir*]
-#   Path to directory containing the elasticsearch configuration.
-#   Use this setting if your packages deviate from the norm (/etc/elasticsearch)
-#
-# [*plugindir*]
-#   Path to directory containing the elasticsearch plugins
-#   Use this setting if your packages deviate from the norm (/usr/share/elasticsearch/plugins)
-#
-# [*plugintool*]
-#   Path to directory containing the elasticsearch plugin installation script
-#   Use this setting if your packages deviate from the norm (/usr/share/elasticsearch/bin/plugin)
-#
-# [*package_url*]
-#   Url to the package to download.
-#   This can be a http,https or ftp resource for remote packages
-#   puppet:// resource or file:/ for local packages
-#
-# [*package_provider*]
-#   Way to install the packages, currently only packages are supported.
-#
-# [*package_dir*]
-#   Directory where the packages are downloaded to
-#
-# [*package_name*]
-#   Name of the package to install
-#
-# [*purge_package_dir*]
-#   Purge package directory on removal
-#
-# [*package_dl_timeout*]
-#   For http,https and ftp downloads you can set howlong the exec resource may take.
-#   Defaults to: 600 seconds
-#
-# [*elasticsearch_user*]
-#   The user Elasticsearch should run as. This also sets the file rights.
-#
-# [*elasticsearch_group*]
-#   The group Elasticsearch should run as. This also sets the file rights
-#
-# [*purge_configdir*]
-#   Purge the config directory for any unmanaged files
-#
-# [*service_provider*]
-#   Service provider to use. By Default when a single service provider is possibe that one is selected.
-#
-# [*init_defaults*]
-#   Defaults file content in hash representation
-#
-# [*init_defaults_file*]
-#   Defaults file as puppet resource
-#
-# [*init_template*]
-#   Service file as a template
-#
-# [*config*]
-#   Elasticsearch configuration hash
-#
-# [*datadir*]
-#   Allows you to set the data directory of Elasticsearch
-#
-# [*java_install*]
-#  Install java which is required for Elasticsearch.
-#  Defaults to: false
-#
-# [*java_package*]
-#   If you like to install a custom java package, put the name here.
-#
-# [*manage_repo*]
-#   Enable repo management by enabling our official repositories
-#
-# [*repo_version*]
-#   Our repositories are versioned per major version (0.90, 1.0) select here which version you want
-#
-# [*logging_config*]
-#   Hash representation of information you want in the logging.yml file
-#
-# [*logging_file*]
-#   Instead of a hash you can supply a puppet:// file source for the logging.yml file
-#
-# [*logging_template*]
-#  Use a custom logging template - just supply the reative path ie ${module}/elasticsearch/logging.yml.erb
-#
-# [*default_logging_level*]
-#   Default logging level for Elasticsearch.
-#   Defaults to: INFO
-#
-# [*repo_stage*]
-#   Use stdlib stage setup for managing the repo, instead of anchoring
-#
-# [*instances*]
-#   Define instances via a hash. This is mainly used with Hiera's auto binding
-#   Defaults to: undef
-#
-# [*instances_hiera_merge*]
-#   Enable Hiera's merging function for the instances
-#   Defaults to: false
-#
-# [*plugins*]
-#   Define plugins via a hash. This is mainly used with Hiera's auto binding
-#   Defaults to: undef
-#
-# [*plugins_hiera_merge*]
-#   Enable Hiera's merging function for the plugins
-#   Defaults to: false
-#
-# The default values for the parameters are set in elasticsearch::params. Have
-# a look at the corresponding <tt>params.pp</tt> manifest file if you need more
-# technical information about them.
-#
-# === Examples
-#
-# * Installation, make sure service is running and will be started at boot time:
-#     class { 'elasticsearch': }
-#
-# * Removal/decommissioning:
-#     class { 'elasticsearch':
-#       ensure => 'absent',
-#     }
-#
-# * Install everything but disable service(s) afterwards
-#     class { 'elasticsearch':
-#       status => 'disabled',
-#     }
-#
-#
-# === Authors
-#
-# * Richard Pijnenburg <mailto:richard.pijnenburg@elasticsearch.com>
-#
-class elasticsearch(
-  $ensure                = $elasticsearch::params::ensure,
-  $status                = $elasticsearch::params::status,
-  $restart_on_change     = $elasticsearch::params::restart_on_change,
-  $autoupgrade           = $elasticsearch::params::autoupgrade,
-  $version               = false,
-  $package_provider      = 'package',
-  $package_url           = undef,
-  $package_dir           = $elasticsearch::params::package_dir,
-  $package_name          = $elasticsearch::params::package,
-  $purge_package_dir     = $elasticsearch::params::purge_package_dir,
-  $package_dl_timeout    = $elasticsearch::params::package_dl_timeout,
-  $elasticsearch_user    = $elasticsearch::params::elasticsearch_user,
-  $elasticsearch_group   = $elasticsearch::params::elasticsearch_group,
-  $configdir             = $elasticsearch::params::configdir,
-  $purge_configdir       = $elasticsearch::params::purge_configdir,
-  $service_provider      = 'init',
-  $init_defaults         = undef,
-  $init_defaults_file    = undef,
-  $init_template         = undef,
-  $config                = undef,
-  $datadir               = $elasticsearch::params::datadir,
-  $plugindir             = $elasticsearch::params::plugindir,
-  $plugintool            = $elasticsearch::params::plugintool,
-  $java_install          = false,
-  $java_package          = undef,
-  $manage_repo           = false,
-  $repo_version          = undef,
-  $logging_file          = undef,
-  $logging_config        = undef,
-  $logging_template      = undef,
-  $default_logging_level = $elasticsearch::params::default_logging_level,
-  $repo_stage            = false,
-  $instances             = undef,
-  $instances_hiera_merge = false,
-  $plugins               = undef,
-  $plugins_hiera_merge   = false
-) inherits elasticsearch::params {
-
-  anchor {'elasticsearch::begin': }
-  anchor {'elasticsearch::end': }
-
-
-  #### Validate parameters
-
-  # ensure
-  if ! ($ensure in [ 'present', 'absent' ]) {
-    fail("\"${ensure}\" is not a valid ensure parameter value")
-  }
-
-  # autoupgrade
-  validate_bool($autoupgrade)
-
-  # service status
-  if ! ($status in [ 'enabled', 'disabled', 'running', 'unmanaged' ]) {
-    fail("\"${status}\" is not a valid status parameter value")
-  }
-
-  # restart on change
-  validate_bool($restart_on_change)
-
-  # purge conf dir
-  validate_bool($purge_configdir)
-
-  if is_array($elasticsearch::params::service_providers) {
-    # Verify the service provider given is in the array
-    if ! ($service_provider in $elasticsearch::params::service_providers) {
-      fail("\"${service_provider}\" is not a valid provider for \"${::operatingsystem}\"")
-    }
-    $real_service_provider = $service_provider
-  } else {
-    # There is only one option so simply set it
-    $real_service_provider = $elasticsearch::params::service_providers
-  }
-
-  if ($package_url != undef and $version != false) {
-    fail('Unable to set the version number when using package_url option.')
-  }
-
-  if $ensure == 'present' {
-    # validate config hash
-    if ($config != undef) {
-      validate_hash($config)
-    }
-  }
-
-  # java install validation
-  validate_bool($java_install)
-
-  validate_bool($manage_repo)
-
-  if ($manage_repo == true) {
-    if $repo_version == undef {
-      fail('Please fill in a repository version at $repo_version')
-    } else {
-      validate_string($repo_version)
-    }
-  }
-
-  #### Manage actions
-
-  # package(s)
-  class { 'elasticsearch::package': }
-
-  # configuration
-  class { 'elasticsearch::config': }
-
-  # Hiera support for instances
-  validate_bool($instances_hiera_merge)
-
-  if $instances_hiera_merge == true {
-    $x_instances = hiera_hash('elasticsearch::instances', $::elasticsearch::instances)
-  } else {
-    $x_instances = $instances
-  }
-
-  if $x_instances {
-    validate_hash($x_instances)
-    create_resources('elasticsearch::instance', $x_instances)
-  }
-
-  # Hiera support for plugins
-  validate_bool($plugins_hiera_merge)
-
-  if $plugins_hiera_merge == true {
-    $x_plugins = hiera_hash('elasticsearch::plugins', $::elasticsearch::plugins)
-  } else {
-    $x_plugins = $plugins
-  }
-
-  if $x_plugins {
-    validate_hash($x_plugins)
-    create_resources('elasticsearch::plugin', $x_plugins)
-  }
-
-
-  if $java_install == true {
-    # Install java
-    class { '::java':
-      package      => $java_package,
-      distribution => 'jre',
-    }
-
-    # ensure we first java java and then manage the service
-    Anchor['elasticsearch::begin']
-    -> Class['::java']
-    -> Class['elasticsearch::package']
-  }
-
-  if ($manage_repo == true) {
-
-    if ($repo_stage == false) {
-      # use anchor for ordering
-
-      # Set up repositories
-      class { 'elasticsearch::repo': }
-
-      # Ensure that we set up the repositories before trying to install
-      # the packages
-      Anchor['elasticsearch::begin']
-      -> Class['elasticsearch::repo']
-      -> Class['elasticsearch::package']
-
-    } else {
-      # use staging for ordering
-
-      if !(defined(Stage[$repo_stage])) {
-        stage { $repo_stage:  before => Stage['main'] }
-      }
-
-      class { 'elasticsearch::repo':
-        stage => $repo_stage,
-      }
-    }
-  }
-
-  #### Manage relationships
-
-  if $ensure == 'present' {
-
-    # we need the software before configuring it
-    Anchor['elasticsearch::begin']
-    -> Class['elasticsearch::package']
-    -> Class['elasticsearch::config']
-    -> Elasticsearch::Instance <| |>
-    -> Elasticsearch::Template <| |>
-  } else {
-
-    # make sure all services are getting stopped before software removal
-    Elasticsearch::Instance <| |>
-    -> Class['elasticsearch::config']
-    -> Class['elasticsearch::package']
-
-  }
-
-}