Skip to content
This repository has been archived by the owner on Dec 19, 2022. It is now read-only.

Commit

Permalink
Revert "Merge pull request saz#54 from covermymeds/multi_memcached"
Browse files Browse the repository at this point in the history
This reverts commit b8375f9, reversing
changes made to e0e9c02.
  • Loading branch information
saz committed May 25, 2015
1 parent cca1bb8 commit 11ef5ef
Show file tree
Hide file tree
Showing 7 changed files with 83 additions and 304 deletions.
31 changes: 2 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,38 +29,11 @@ If you find this module useful, send some bitcoins to 1Na3YFUmdxKxJLiuRXQYJU2kiN
}
```

### Run multiple instances

Instantiating the class gets you a default instance of memcached. This instance is fully configurable.
```ruby
class { 'memcached': }
```
You can configure additional instances of memcached with hiera data.
```ruby
memcached::instance_configs:
'memcached_11222':
tcp_port: 11222
udp_port: 11222
max_memory: '12%'
```
If you choose to configure all instances via hiera data instantiate the class like this.
```ruby
class { 'memcached':
default_instance => false
}
```
Or if you want to declare the instances in a manifest.
```ruby
memcached::instance { 'memcached_11222':
tcp_port => 11222,
udp_port => 11222,
max_memory => '12%',
}
```

### Other class parameters

* $package_ensure = 'present'
* $logfile = '/var/log/memcached.log'
* $pidfile = '/var/run/memcached.pid' (Debian family only, set to false to disable pidfile)
* $max_memory = false
* $item_size = false
* $lock_memory = false (WARNING: good if used intelligently, google for -k key)
Expand Down
89 changes: 52 additions & 37 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
#
class memcached (
$package_ensure = 'present',
$logfile = $::memcached::params::logfile,
$pidfile = '/var/run/memcached.pid',
$manage_firewall = false,
$max_memory = false,
$item_size = false,
Expand All @@ -22,11 +24,18 @@
$use_sasl = false,
$use_registry = $::memcached::params::use_registry,
$registry_key = 'HKLM\System\CurrentControlSet\services\memcached\ImagePath',
$large_mem_pages = false,
$default_instance = true,
$instance_configs = hiera_hash('memcached::instance_configs', undef),
$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)

if $package_ensure == 'absent' {
$service_ensure = 'stopped'
$service_enable = false
Expand All @@ -35,45 +44,54 @@
$service_enable = true
}

class { '::memcached::package':
package_ensure => $package_ensure,
install_dev => $install_dev,
package { $memcached::params::package_name:
ensure => $package_ensure,
provider => $memcached::params::package_provider
}

$default_configs = {
'memcached' => {
manage_firewall => $manage_firewall,
max_memory => $max_memory,
item_size => $item_size,
lock_memory => $lock_memory,
listen_ip => $listen_ip,
tcp_port => $tcp_port,
udp_port => $udp_port,
max_connections => $max_connections,
verbosity => $verbosity,
unix_socket => $unix_socket,
processorcount => $processorcount,
use_sasl => $use_sasl,
large_mem_pages => $large_mem_pages,
service_ensure => $service_ensure,
service_enable => $service_enable,
},
if $install_dev {
package { $memcached::params::dev_package_name:
ensure => $package_ensure,
require => Package[$memcached::params::package_name]
}
}

if $default_instance and is_hash($instance_configs) {
validate_hash($instance_configs)
$final_configs = merge($default_configs, $instance_configs)
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',
}
}
elsif $default_instance {
$final_configs = $default_configs

if $service_restart {
$service_notify_real = Service[$memcached::params::service_name]
} else {
$service_notify_real = undef
}
elsif is_hash($instance_configs) {
validate_hash($instance_configs)
$final_configs = $instance_configs

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 ! is_hash($final_configs) {
fail('No configuration provided to the Memcached class')
service { $memcached::params::service_name:
ensure => $service_ensure,
enable => $service_enable,
hasrestart => true,
hasstatus => $memcached::params::service_hasstatus,
}

if $use_registry {
Expand All @@ -84,7 +102,4 @@
notify => Service[$memcached::params::service_name]
}
}

create_resources(memcached::instance, $final_configs)

}
120 changes: 0 additions & 120 deletions manifests/instance.pp

This file was deleted.

21 changes: 0 additions & 21 deletions manifests/package.pp

This file was deleted.

12 changes: 10 additions & 2 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,31 @@
'Debian': {
$package_name = 'memcached'
$package_provider = undef
$service_name = 'memcached'
$service_hasstatus = false
$dev_package_name = 'libmemcached-dev'
$config_file = '/etc/memcached.conf'
$config_tmpl = "${module_name}/memcached.conf.erb"
$user = 'nobody'
$logfile = '/var/log/memcached.log'
$use_registry = false
}
/RedHat|Suse/: {
$package_name = 'memcached'
$package_provider = undef
$service_name = 'memcached'
$service_hasstatus = true
$dev_package_name = 'libmemcached-devel'
$config_file = '/etc/sysconfig/memcached'
$config_tmpl = "${module_name}/memcached_sysconfig.erb"
$init_tmpl = "${module_name}/memcached.init.erb"
$user = 'memcached'
$logfile = '/var/log/memcached.log'
$use_registry = false
}
/windows/: {
$package_name = 'memcached'
$package_provider = 'chocolatey'
$service_name = 'memcached'
$service_hasstatus = true
$dev_package_name = 'libmemcached-devel'
$config_file = undef
Expand All @@ -37,11 +43,13 @@
'Amazon': {
$package_name = 'memcached'
$package_provider = undef
$service_name = 'memcached'
$service_hasstatus = true
$dev_package_name = 'libmemcached-devel'
$config_file = '/etc/sysconfig/memcached'
$config_tmpl = "${module_name}/memcached_sysconfig.erb"
$init_tmpl = "${module_name}/memcached.init.erb"
$user = 'memcached'
$logfile = '/var/log/memcached.log'
$use_registry = false
}
default: {
Expand Down
Loading

0 comments on commit 11ef5ef

Please sign in to comment.