]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/memcached/manifests/init.pp
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / memcached / manifests / init.pp
1 # == Class: memcached
2 #
3 # Manage memcached
4 #
5 # == Parameters
6 # [* syslog *]
7 # Boolean.
8 # If true will pipe output to /bin/logger, sends to syslog.
9 #
10 class memcached (
11   $package_ensure  = 'present',
12   $service_manage  = true,
13   $logfile         = $::memcached::params::logfile,
14   $syslog          = false,
15   $pidfile         = '/var/run/memcached.pid',
16   $manage_firewall = false,
17   $max_memory      = false,
18   $item_size       = false,
19   $lock_memory     = false,
20   $listen_ip       = '0.0.0.0',
21   $tcp_port        = 11211,
22   $udp_port        = 11211,
23   $user            = $::memcached::params::user,
24   $max_connections = '8192',
25   $verbosity       = undef,
26   $unix_socket     = undef,
27   $install_dev     = false,
28   $processorcount  = $::processorcount,
29   $service_restart = true,
30   $auto_removal    = false,
31   $use_sasl        = false,
32   $use_registry    = $::memcached::params::use_registry,
33   $registry_key    = 'HKLM\System\CurrentControlSet\services\memcached\ImagePath',
34   $large_mem_pages = false
35 ) inherits memcached::params {
36
37   # validate type and convert string to boolean if necessary
38   if is_string($manage_firewall) {
39     $manage_firewall_bool = str2bool($manage_firewall)
40   } else {
41     $manage_firewall_bool = $manage_firewall
42   }
43   validate_bool($manage_firewall_bool)
44   validate_bool($service_restart)
45   validate_bool($service_manage)
46
47   validate_bool($syslog)
48
49   # Logging to syslog and file are mutually exclusive
50   # Fail if both options are defined
51   if $syslog and str2bool($logfile) {
52     fail 'Define either syslog or logfile as logging destinations but not both.'
53   }
54
55   if $package_ensure == 'absent' {
56     $service_ensure = 'stopped'
57     $service_enable = false
58   } else {
59     $service_ensure = 'running'
60     $service_enable = true
61   }
62
63   package { $memcached::params::package_name:
64     ensure   => $package_ensure,
65     provider => $memcached::params::package_provider
66   }
67
68   if $install_dev {
69     package { $memcached::params::dev_package_name:
70       ensure  => $package_ensure,
71       require => Package[$memcached::params::package_name]
72     }
73   }
74
75   if $manage_firewall_bool == true {
76     firewall { "100_tcp_${tcp_port}_for_memcached":
77       port   => $tcp_port,
78       proto  => 'tcp',
79       action => 'accept',
80     }
81
82     firewall { "100_udp_${udp_port}_for_memcached":
83       port   => $udp_port,
84       proto  => 'udp',
85       action => 'accept',
86     }
87   }
88
89   if $service_restart and $service_manage {
90     $service_notify_real = Service[$memcached::params::service_name]
91   } else {
92     $service_notify_real = undef
93   }
94
95   if ( $memcached::params::config_file ) {
96     file { $memcached::params::config_file:
97       owner   => 'root',
98       group   => 'root',
99       mode    => '0644',
100       content => template($memcached::params::config_tmpl),
101       require => Package[$memcached::params::package_name],
102       notify  => $service_notify_real,
103     }
104   }
105
106   if $service_manage {
107     service { $memcached::params::service_name:
108       ensure     => $service_ensure,
109       enable     => $service_enable,
110       hasrestart => true,
111       hasstatus  => $memcached::params::service_hasstatus,
112     }
113   }
114
115   if $use_registry {
116     registry_value{ $registry_key:
117       ensure => 'present',
118       type   => 'string',
119       data   => template($memcached::params::config_tmpl),
120       notify => $service_notify_real,
121     }
122   }
123 }