7 changes: 7 additions & 0 deletions .fixtures.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
fixtures:
repositories:
stdlib: 'git://github.com/puppetlabs/puppetlabs-stdlib.git'

symlinks:
redis: "#{source_dir}"

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
*.swp
.DS_Store
Gemfile.lock
pkg
spec/fixtures
29 changes: 29 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
language: ruby

rvm:
- 1.8.7
- 1.9.3
- 2.0.0

matrix:
allow_failures:
- rvm: 2.0.0
env: PUPPET_VERSION="2.7"

before_install:
- 'gem install bundler'

script:
- 'rake spec'

env:
- PUPPET_VERSION="2.7"
- PUPPET_VERSION="3.0"
- PUPPET_VERSION="3.1"
- PUPPET_VERSION="3.2"

branches:
only:
- master
- develop

26 changes: 17 additions & 9 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
source :rubygems
source 'https://rubygems.org'

puppetversion = ENV.key?('PUPPET_VERSION') ? "~> #{ENV['PUPPET_VERSION']}" : ['>= 3.2.1']
gem 'puppet', puppetversion

if puppetversion =~ /^3/
## rspec-hiera-puppet is puppet 3 only
gem 'rspec-hiera-puppet', '>=1.0.0'
end

facterversion = ENV.key?('FACTER_VERSION') ? "~> #{ENV['FACTER_VERSION']}" : ['>= 1.7.1']

gem 'facter', facterversion

gem 'rake'
gem 'puppet-lint', '>=0.2.0'
gem 'rspec-puppet', '>=0.1.3'
gem 'puppet', '>=2.7.1'
gem 'puppetlabs_spec_helper', '>=0.2.0'

gem 'hiera', '>=0.3.0'
gem 'hiera-puppet', '>=0.3.0'
gem 'rspec-hiera-puppet', '>=0.3.0'
gem 'rspec'
gem 'puppet-lint', '>=0.3.2'
gem 'rspec-puppet', '>=0.1.6'
gem 'puppetlabs_spec_helper', '>=0.4.1'

49 changes: 0 additions & 49 deletions Gemfile.lock

This file was deleted.

10 changes: 10 additions & 0 deletions Modulefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name 'arioch-redis'
version '0.0.1'
author 'Tom De Vylder'
license 'Apache License, Version 2.0'
summary 'Redis module'
description 'Redis module with cluster support'
project_page 'http://arioch.github.io/puppet-redis/'

dependency 'puppetlabs/stdlib', '>= 4.0.0'

24 changes: 23 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
# Puppet Redis

## Build status

[![Build Status](https://travis-ci.org/arioch/puppet-redis.png?branch=master)](https://travis-ci.org/arioch/puppet-redis)

## Example usage

### Standalone
Expand Down Expand Up @@ -25,11 +31,27 @@

### Manage repositories

Disabled by default but if you really want the module to manage the required
Disabled by default but if you really want the module to manage the required
repositories you can use this snippet:

class {
'redis':
manage_repo => true,
}

## Unit testing

Plain RSpec:

$ rake spec

Using bundle:

$ bundle exec rake spec

Test against a specific Puppet or Facter version:

$ PUPPET_VERSION=3.2.1 bundle update && bundle exec rake spec
$ PUPPET_VERSION=2.7.19 bundle update && bundle exec rake spec
$ FACTER_VERSION=1.6.8 bundle update && bundle exec rake spec

17 changes: 17 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
require 'rake'
require 'rspec/core/rake_task'
require 'puppetlabs_spec_helper/rake_tasks'

RSpec::Core::RakeTask.new(:spec_verbose) do |t|
t.pattern = 'spec/*/*_spec.rb'
t.rspec_opts = File.read('spec/spec.opts').chomp || ""
end

task :test do
Rake::Task[:spec_prep].invoke
Rake::Task[:spec_verbose].invoke
Rake::Task[:spec_clean].invoke
end


task :default => [:spec, :lint]
26 changes: 13 additions & 13 deletions manifests/config.pp
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
# = Class: redis::config
# == Class: redis::config
#
# This class provides configuration for Redis.
#
class redis::config {
$slaveof = $::redis::slaveof
$masterauth = $::redis::masterauth

File {
owner => $redis::config_user,
group => $redis::config_group,
notify => Service[$redis::daemon_name],
owner => $::redis::config_owner,
group => $::redis::config_group,
mode => $::redis::config_file_mode,
notify => Service[$::redis::service_name],
}

file {
$redis::config_dir:
ensure => directory;
$::redis::config_dir:
ensure => directory,
mode => $::redis::config_dir_mode;

$redis::config_file:
$::redis::config_file:
ensure => present,
content => template('redis/redis.conf.erb');

$redis::log_dir:
$::redis::log_dir:
ensure => directory,
owner => $redis::daemon_user,
group => $redis::daemon_group;
group => $::redis::service_group,
mode => $::redis::config_dir_mode,
owner => $::redis::service_user;
}
}

114 changes: 57 additions & 57 deletions manifests/init.pp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# = Class: redis
# == Class: redis
#
# This class installs redis
#
Expand All @@ -18,74 +18,74 @@
# }
#
class redis (
$config_dir = $redis::params::config_dir,
$config_file = $redis::params::config_file,
$config_group = $redis::params::config_group,
$config_user = $redis::params::config_user,
$daemon_enable = $redis::params::daemon_enable,
$daemon_ensure = $redis::params::daemon_ensure,
$daemon_group = $redis::params::daemon_group,
$daemon_hasstatus = $redis::params::daemon_hasstatus,
$daemon_name = $redis::params::daemon_name,
$daemon_user = $redis::params::daemon_user,
$manage_repo = $redis::params::manage_repo,
$package_deps = $redis::params::package_deps,
$package_ensure = $redis::params::package_ensure,
$package_name = $redis::params::package_name,
$activerehashing = $redis::params::activerehashing,
$appendfsync = $redis::params::appendfsync,
$appendonly = $redis::params::appendonly,
$auto_aof_rewrite_min_size = $redis::params::auto_aof_rewrite_min_size,
$auto_aof_rewrite_percentage = $redis::params::auto_aof_rewrite_percentage,
$bind = $redis::params::bind,
$daemonize = $redis::params::daemonize,
$databases = $redis::params::databases,
$dbfilename = $redis::params::dbfilename,
$hash_max_zipmap_entries = $redis::params::hash_max_zipmap_entries,
$hash_max_zipmap_value = $redis::params::hash_max_zipmap_value,
$list_max_ziplist_entries = $redis::params::list_max_ziplist_entries,
$list_max_ziplist_value = $redis::params::list_max_ziplist_value,
$log_dir = $redis::params::log_dir,
$log_file = $redis::params::log_file,
$log_level = $redis::params::log_level,
$masterauth = $redis::params::masterauth,
$no_appendfsync_on_rewrite = $redis::params::no_appendfsync_on_rewrite,
$pid_file = $redis::params::pid_file,
$port = $redis::params::port,
$rdbcompression = $redis::params::rdbcompression,
$repl_ping_slave_period = $redis::params::repl_ping_slave_period,
$repl_timeout = $redis::params::repl_timeout,
$set_max_intset_entries = $redis::params::set_max_intset_entries,
$slave_serve_stale_data = $redis::params::slave_serve_stale_data,
$slaveof = $redis::params::slaveof,
$slowlog_log_slower_than = $redis::params::slowlog_log_slower_than,
$slowlog_max_len = $redis::params::slowlog_max_len,
$timeout = $redis::params::timeout,
$vm_max_memory = $redis::params::vm_max_memory,
$vm_max_threads = $redis::params::vm_max_threads,
$vm_page_size = $redis::params::vm_page_size,
$vm_pages = $redis::params::vm_pages,
$vm_swap_file = $redis::params::vm_swap_file,
$workdir = $redis::params::workdir,
$zset_max_ziplist_entries = $redis::params::zset_max_ziplist_entries,
$zset_max_ziplist_value = $redis::params::zset_max_ziplist_value,
$activerehashing = $::redis::params::activerehashing,
$appendfsync = $::redis::params::appendfsync,
$appendonly = $::redis::params::appendonly,
$auto_aof_rewrite_min_size = $::redis::params::auto_aof_rewrite_min_size,
$auto_aof_rewrite_percentage = $::redis::params::auto_aof_rewrite_percentage,
$bind = $::redis::params::bind,
$config_dir = $::redis::params::config_dir,
$config_dir_mode = $::redis::params::config_dir_mode,
$config_file = $::redis::params::config_file,
$config_file_mode = $::redis::params::config_file_mode,
$config_group = $::redis::params::config_group,
$config_owner = $::redis::params::config_owner,
$daemonize = $::redis::params::daemonize,
$databases = $::redis::params::databases,
$dbfilename = $::redis::params::dbfilename,
$hash_max_zipmap_entries = $::redis::params::hash_max_zipmap_entries,
$hash_max_zipmap_value = $::redis::params::hash_max_zipmap_value,
$list_max_ziplist_entries = $::redis::params::list_max_ziplist_entries,
$list_max_ziplist_value = $::redis::params::list_max_ziplist_value,
$log_dir = $::redis::params::log_dir,
$log_file = $::redis::params::log_file,
$log_level = $::redis::params::log_level,
$manage_repo = $::redis::params::manage_repo,
$masterauth = $::redis::params::masterauth,
$no_appendfsync_on_rewrite = $::redis::params::no_appendfsync_on_rewrite,
$package_ensure = $::redis::params::package_ensure,
$package_name = $::redis::params::package_name,
$pid_file = $::redis::params::pid_file,
$port = $::redis::params::port,
$rdbcompression = $::redis::params::rdbcompression,
$repl_ping_slave_period = $::redis::params::repl_ping_slave_period,
$repl_timeout = $::redis::params::repl_timeout,
$service_enable = $::redis::params::service_enable,
$service_ensure = $::redis::params::service_ensure,
$service_group = $::redis::params::service_group,
$service_hasrestart = $::redis::params::service_hasrestart,
$service_hasstatus = $::redis::params::service_hasstatus,
$service_name = $::redis::params::service_name,
$service_user = $::redis::params::service_user,
$set_max_intset_entries = $::redis::params::set_max_intset_entries,
$slave_serve_stale_data = $::redis::params::slave_serve_stale_data,
$slaveof = $::redis::params::slaveof,
$slowlog_log_slower_than = $::redis::params::slowlog_log_slower_than,
$slowlog_max_len = $::redis::params::slowlog_max_len,
$timeout = $::redis::params::timeout,
$vm_max_memory = $::redis::params::vm_max_memory,
$vm_max_threads = $::redis::params::vm_max_threads,
$vm_page_size = $::redis::params::vm_page_size,
$vm_pages = $::redis::params::vm_pages,
$vm_swap_file = $::redis::params::vm_swap_file,
$workdir = $::redis::params::workdir,
$zset_max_ziplist_entries = $::redis::params::zset_max_ziplist_entries,
$zset_max_ziplist_value = $::redis::params::zset_max_ziplist_value,
) inherits redis::params {

# motd::register{'redis': }

include install
include preinstall
include install
include config
include service

Class['install'] ->
Class['preinstall'] ->
Class['install'] ->
Class['config'] ->
Class['service']

# Sanity check
if $::redis::slaveof {
if $::redis::bind == '127.0.0.1' {
if $::redis::bind =~ /^127.0.0./ {
fail "Replication is not possible when binding to ${::redis::bind}."
}
}
Expand Down
6 changes: 3 additions & 3 deletions manifests/install.pp
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# = Class: redis::install
# == Class: redis::install
#
# This class installs the application.
#
class redis::install {
package { $redis::package_name:
ensure => $redis::package_ensure,
package { $::redis::package_name:
ensure => $::redis::package_ensure,
}
}

Loading