+++ /dev/null
-# == Class: memcached
-#
-# Manage memcached
-#
-# == Parameters
-# [* syslog *]
-# Boolean.
-# If true will pipe output to /bin/logger, sends to syslog.
-#
-class memcached (
- $package_ensure = 'present',
- $service_manage = true,
- $logfile = $::memcached::params::logfile,
- $syslog = false,
- $pidfile = '/var/run/memcached.pid',
- $manage_firewall = false,
- $max_memory = false,
- $item_size = false,
- $lock_memory = false,
- $listen_ip = '0.0.0.0',
- $tcp_port = 11211,
- $udp_port = 11211,
- $user = $::memcached::params::user,
- $max_connections = '8192',
- $verbosity = undef,
- $unix_socket = undef,
- $install_dev = false,
- $processorcount = $::processorcount,
- $service_restart = true,
- $auto_removal = false,
- $use_sasl = false,
- $use_registry = $::memcached::params::use_registry,
- $registry_key = 'HKLM\System\CurrentControlSet\services\memcached\ImagePath',
- $large_mem_pages = false
-) inherits memcached::params {
-
- # validate type and convert string to boolean if necessary
- if is_string($manage_firewall) {
- $manage_firewall_bool = str2bool($manage_firewall)
- } else {
- $manage_firewall_bool = $manage_firewall
- }
- validate_bool($manage_firewall_bool)
- validate_bool($service_restart)
- validate_bool($service_manage)
-
- validate_bool($syslog)
-
- # Logging to syslog and file are mutually exclusive
- # Fail if both options are defined
- if $syslog and str2bool($logfile) {
- fail 'Define either syslog or logfile as logging destinations but not both.'
- }
-
- if $package_ensure == 'absent' {
- $service_ensure = 'stopped'
- $service_enable = false
- } else {
- $service_ensure = 'running'
- $service_enable = true
- }
-
- package { $memcached::params::package_name:
- ensure => $package_ensure,
- provider => $memcached::params::package_provider
- }
-
- if $install_dev {
- package { $memcached::params::dev_package_name:
- ensure => $package_ensure,
- require => Package[$memcached::params::package_name]
- }
- }
-
- if $manage_firewall_bool == true {
- firewall { "100_tcp_${tcp_port}_for_memcached":
- port => $tcp_port,
- proto => 'tcp',
- action => 'accept',
- }
-
- firewall { "100_udp_${udp_port}_for_memcached":
- port => $udp_port,
- proto => 'udp',
- action => 'accept',
- }
- }
-
- if $service_restart and $service_manage {
- $service_notify_real = Service[$memcached::params::service_name]
- } else {
- $service_notify_real = undef
- }
-
- if ( $memcached::params::config_file ) {
- file { $memcached::params::config_file:
- owner => 'root',
- group => 'root',
- mode => '0644',
- content => template($memcached::params::config_tmpl),
- require => Package[$memcached::params::package_name],
- notify => $service_notify_real,
- }
- }
-
- if $service_manage {
- service { $memcached::params::service_name:
- ensure => $service_ensure,
- enable => $service_enable,
- hasrestart => true,
- hasstatus => $memcached::params::service_hasstatus,
- }
- }
-
- if $use_registry {
- registry_value{ $registry_key:
- ensure => 'present',
- type => 'string',
- data => template($memcached::params::config_tmpl),
- notify => $service_notify_real,
- }
- }
-}