8 # If true will pipe output to /bin/logger, sends to syslog.
11 $package_ensure = 'present',
12 $service_manage = true,
13 $logfile = $::memcached::params::logfile,
15 $pidfile = '/var/run/memcached.pid',
16 $manage_firewall = false,
20 $listen_ip = '0.0.0.0',
23 $user = $::memcached::params::user,
24 $max_connections = '8192',
28 $processorcount = $::processorcount,
29 $service_restart = true,
30 $auto_removal = 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 {
37 # validate type and convert string to boolean if necessary
38 if is_string($manage_firewall) {
39 $manage_firewall_bool = str2bool($manage_firewall)
41 $manage_firewall_bool = $manage_firewall
43 validate_bool($manage_firewall_bool)
44 validate_bool($service_restart)
45 validate_bool($service_manage)
47 validate_bool($syslog)
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.'
55 if $package_ensure == 'absent' {
56 $service_ensure = 'stopped'
57 $service_enable = false
59 $service_ensure = 'running'
60 $service_enable = true
63 package { $memcached::params::package_name:
64 ensure => $package_ensure,
65 provider => $memcached::params::package_provider
69 package { $memcached::params::dev_package_name:
70 ensure => $package_ensure,
71 require => Package[$memcached::params::package_name]
75 if $manage_firewall_bool == true {
76 firewall { "100_tcp_${tcp_port}_for_memcached":
82 firewall { "100_udp_${udp_port}_for_memcached":
89 if $service_restart and $service_manage {
90 $service_notify_real = Service[$memcached::params::service_name]
92 $service_notify_real = undef
95 if ( $memcached::params::config_file ) {
96 file { $memcached::params::config_file:
100 content => template($memcached::params::config_tmpl),
101 require => Package[$memcached::params::package_name],
102 notify => $service_notify_real,
107 service { $memcached::params::service_name:
108 ensure => $service_ensure,
109 enable => $service_enable,
111 hasstatus => $memcached::params::service_hasstatus,
116 registry_value{ $registry_key:
119 data => template($memcached::params::config_tmpl),
120 notify => $service_notify_real,