Showing with 2,856 additions and 1,803 deletions.
  1. +14 −0 .editorconfig
  2. +11 −18 .fixtures.yml
  3. +184 −0 .github/CONTRIBUTING.md
  4. +26 −0 .github/ISSUE_TEMPLATE.md
  5. +20 −0 .github/PULL_REQUEST_TEMPLATE.md
  6. +17 −38 .gitignore
  7. +1 −0 .msync.yml
  8. +64 −0 .overcommit.yml
  9. +21 −0 .pmtignore
  10. +1 −3 .rspec
  11. +1 −0 .rspec_parallel
  12. +545 −0 .rubocop.yml
  13. +30 −0 .sync.yml
  14. +86 −47 .travis.yml
  15. +2 −0 .yardopts
  16. +304 −261 CHANGELOG.md
  17. +21 −0 Dockerfile
  18. +51 −24 Gemfile
  19. +190 −1 LICENSE
  20. +11 −34 README.md
  21. +61 −0 REFERENCE.md
  22. +81 −25 Rakefile
  23. +4 −5 lib/facter/redis_server_version.rb
  24. +32 −0 lib/puppet/functions/redis/get.rb
  25. +0 −45 lib/puppet/parser/functions/redisget.rb
  26. +4 −20 manifests/config.pp
  27. +46 −36 manifests/init.pp
  28. +28 −25 manifests/instance.pp
  29. +7 −1 manifests/params.pp
  30. +3 −3 manifests/preinstall.pp
  31. +31 −31 manifests/sentinel.pp
  32. +3 −4 manifests/ulimit.pp
  33. +26 −12 metadata.json
  34. +0 −13 spec/acceptance/nodesets/centos-6-docker.yml
  35. +0 −11 spec/acceptance/nodesets/centos-6-x64.yml
  36. +0 −13 spec/acceptance/nodesets/centos-7-docker.yml
  37. +0 −11 spec/acceptance/nodesets/centos-7-x64.yml
  38. +0 −15 spec/acceptance/nodesets/debian-7-docker.yml
  39. +0 −17 spec/acceptance/nodesets/debian-8-docker.yml
  40. +0 −11 spec/acceptance/nodesets/default.yml
  41. +0 −26 spec/acceptance/nodesets/multi-node-master-slave.yml
  42. +0 −16 spec/acceptance/nodesets/ubuntu-1404-docker.yml
  43. +0 −11 spec/acceptance/nodesets/ubuntu-1404-x64.yml
  44. +0 −15 spec/acceptance/nodesets/ubuntu-1604-docker.yml
  45. +0 −10 spec/acceptance/nodesets/ubuntu-1604-x64.yml
  46. +3 −4 spec/acceptance/redis_cli_task_spec.rb
  47. +14 −13 spec/acceptance/suites/default/redis_adminstration_spec.rb
  48. +8 −8 spec/acceptance/suites/default/redis_debian_run_dir_spec.rb
  49. +13 −13 spec/acceptance/suites/default/redis_multi_instances_one_host_spec.rb
  50. +9 −14 spec/acceptance/suites/default/redis_multi_node_spec.rb
  51. +23 −16 spec/acceptance/suites/default/redis_sentinel_one_node_spec.rb
  52. +9 −9 spec/acceptance/suites/default/redis_spec.rb
  53. +30 −31 spec/acceptance/suites/default/redisget_spec.rb
  54. +10 −19 spec/classes/redis_administration_spec.rb
  55. +40 −58 spec/classes/redis_centos_6_spec.rb
  56. +0 −19 spec/classes/redis_debian_wheezy_spec.rb
  57. +4 −5 spec/classes/redis_freebsd_spec.rb
  58. +32 −38 spec/classes/redis_sentinel_spec.rb
  59. +496 −450 spec/classes/redis_spec.rb
  60. +52 −84 spec/classes/redis_ubuntu_1404_spec.rb
  61. +49 −63 spec/classes/redis_ulimit_spec.rb
  62. +52 −51 spec/defines/instance_spec.rb
  63. +23 −23 spec/functions/{redisget_spec.rb → redis/get_spec.rb}
  64. +43 −44 spec/spec_helper.rb
  65. +2 −31 spec/spec_helper_acceptance.rb
  66. +1 −1 tasks/redis_cli.rb
  67. +3 −1 templates/redis.conf.2.4.10.erb
  68. +3 −1 templates/redis.conf.2.8.erb
  69. +7 −4 templates/redis.conf.3.2.erb
  70. +3 −1 templates/redis.conf.erb
  71. +1 −0 types/redisurl.pp
14 changes: 14 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# editorconfig.org

# MANAGED BY MODULESYNC

root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 2
tab_width = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
29 changes: 11 additions & 18 deletions .fixtures.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
fixtures:
repositories:
apt:
repo: "git://github.com/puppetlabs/puppetlabs-apt.git"
ref: 2.3.0
stdlib:
repo: "git://github.com/puppetlabs/puppetlabs-stdlib.git"
ref: 4.11.0
epel:
repo: 'https://github.com/stahnma/puppet-module-epel.git'
ref: 1.2.2
augeasproviders_sysctl:
repo: "git://github.com/hercules-team/augeasproviders_sysctl.git"
tag: v2.1.0
augeasproviders_core:
repo: "git://github.com/hercules-team/augeasproviders_core.git"
tag: v2.1.0
symlinks:
redis: "#{source_dir}"

apt: 'https://github.com/puppetlabs/puppetlabs-apt.git'
stdlib: 'https://github.com/puppetlabs/puppetlabs-stdlib.git'
epel: 'https://github.com/stahnma/puppet-module-epel.git'
augeasproviders_sysctl: 'https://github.com/hercules-team/augeasproviders_sysctl.git'
augeasproviders_core: 'https://github.com/hercules-team/augeasproviders_core.git'
augeas_core:
repo: "https://github.com/puppetlabs/puppetlabs-augeas_core"
puppet_version: ">= 6.0.0"
yumrepo_core:
repo: "https://github.com/puppetlabs/puppetlabs-yumrepo_core"
puppet_version: ">= 6.0.0"
184 changes: 184 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
This module has grown over time based on a range of contributions from
people using it. If you follow these contributing guidelines your patch
will likely make it into a release a little more quickly.

## Contributing

Please note that this project is released with a Contributor Code of Conduct.
By participating in this project you agree to abide by its terms.
[Contributor Code of Conduct](https://voxpupuli.org/coc/).

1. Fork the repo.

1. Create a separate branch for your change.

1. We only take pull requests with passing tests, and documentation. [travis-ci](http://travis-ci.org)
runs the tests for us. You can also execute them locally. This is explained
in a later section.

1. Checkout [our docs](https://voxpupuli.org/docs/#reviewing-a-module-pr) we
use to review a module and the [official styleguide](https://puppet.com/docs/puppet/6.0/style_guide.html).
They provide some guidance for new code that might help you before you submit a pull request.

1. Add a test for your change. Only refactoring and documentation
changes require no new tests. If you are adding functionality
or fixing a bug, please add a test.

1. Squash your commits down into logical components. Make sure to rebase
against our current master.

1. Push the branch to your fork and submit a pull request.

Please be prepared to repeat some of these steps as our contributors review
your code.

## Dependencies

The testing and development tools have a bunch of dependencies,
all managed by [bundler](http://bundler.io/) according to the
[Puppet support matrix](http://docs.puppetlabs.com/guides/platforms.html#ruby-versions).

By default the tests use a baseline version of Puppet.

If you have Ruby 2.x or want a specific version of Puppet,
you must set an environment variable such as:

```sh
export PUPPET_VERSION="~> 5.5.6"
```

You can install all needed gems for spec tests into the modules directory by
running:

```sh
bundle install --path .vendor/ --without development system_tests release
```

If you also want to run acceptance tests:

```sh
bundle install --path .vendor/ --with system_tests --without development release
```

Our all in one solution if you don't know if you need to install or update gems:

```sh
bundle install --path .vendor/ --with system_tests --without development release; bundle update; bundle clean
```

## Syntax and style

The test suite will run [Puppet Lint](http://puppet-lint.com/) and
[Puppet Syntax](https://github.com/gds-operations/puppet-syntax) to
check various syntax and style things. You can run these locally with:

```sh
bundle exec rake lint
bundle exec rake validate
```

It will also run some [Rubocop](http://batsov.com/rubocop/) tests
against it. You can run those locally ahead of time with:

```sh
bundle exec rake rubocop
```

## Running the unit tests

The unit test suite covers most of the code, as mentioned above please
add tests if you're adding new functionality. If you've not used
[rspec-puppet](http://rspec-puppet.com/) before then feel free to ask
about how best to test your new feature.

To run the linter, the syntax checker and the unit tests:

```sh
bundle exec rake test
```

To run your all the unit tests

```sh
bundle exec rake spec
```

To run a specific spec test set the `SPEC` variable:

```sh
bundle exec rake spec SPEC=spec/foo_spec.rb
```

### Unit tests in docker

Some people don't want to run the dependencies locally or don't want to install
ruby. We ship a Dockerfile that enables you to run all unit tests and linting.
You only need to run:

```sh
docker build .
```

Please ensure that a docker daemon is running and that your user has the
permission to talk to it. You can specify a remote docker host by setting the
`DOCKER_HOST` environment variable. it will copy the content of the module into
the docker image. So it will not work if a Gemfile.lock exists.

## Integration tests

The unit tests just check the code runs, not that it does exactly what
we want on a real machine. For that we're using
[beaker](https://github.com/puppetlabs/beaker).

This fires up a new virtual machine (using vagrant) and runs a series of
simple tests against it after applying the module. You can run this
with:

```sh
bundle exec rake acceptance
```

This will run the tests on the module's default nodeset. You can override the
nodeset used, e.g.,

```sh
BEAKER_set=centos-7-x64 bundle exec rake acceptance
```

There are default rake tasks for the various acceptance test modules, e.g.,

```sh
bundle exec rake beaker:centos-7-x64
bundle exec rake beaker:ssh:centos-7-x64
```

If you don't want to have to recreate the virtual machine every time you can
use `BEAKER_destroy=no` and `BEAKER_provision=no`. On the first run you will at
least need `BEAKER_provision` set to yes (the default). The Vagrantfile for the
created virtual machines will be in `.vagrant/beaker_vagrant_files`.

Beaker also supports docker containers. We also use that in our automated CI
pipeline at [travis-ci](http://travis-ci.org). To use that instead of Vagrant:

```
PUPPET_INSTALL_TYPE=agent BEAKER_IS_PE=no BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_debug=true BEAKER_setfile=debian9-64{hypervisor=docker} BEAKER_destroy=yes bundle exec rake beaker
```

You can replace the string `debian9` with any common operating system.
The following strings are known to work:

* ubuntu1604
* ubuntu1804
* debian8
* debian9
* centos6
* centos7

The easiest way to debug in a docker container is to open a shell:

```sh
docker exec -it -u root ${container_id_or_name} bash
```

The source of this file is in our [modulesync_config](https://github.com/voxpupuli/modulesync_config/blob/master/moduleroot/.github/CONTRIBUTING.md.erb)
repository.
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!--
Thank you for contributing to this project!
- This project has a Contributor Code of Conduct: https://voxpupuli.org/coc/
- Please check that here is no existing issue or PR that addresses your problem.
- Please fill the following form to enable us to help you.
- Our vulnerabilities reporting process is at https://voxpupuli.org/security/
-->

## Affected Puppet, Ruby, OS and module versions/distributions

- Puppet:
- Ruby:
- Distribution:
- Module version:

## How to reproduce (e.g Puppet code you use)

## What are you seeing

## What behaviour did you expect instead

## Output log

## Any additional information you'd like to impart
20 changes: 20 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!--
Thank you for contributing to this project!
- This project has a Contributor Code of Conduct: https://voxpupuli.org/coc/
- Please check that here is no existing issue or PR that addresses your problem.
- Our vulnerabilities reporting process is at https://voxpupuli.org/security/
-->
#### Pull Request (PR) description
<!--
Replace this comment with a description of your pull request.
-->

#### This Pull Request (PR) fixes the following issues
<!--
Replace this comment with the list of issues or n/a.
Use format:
Fixes #123
Fixes #124
-->
55 changes: 17 additions & 38 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,41 +1,20 @@
.vagrant/
log/

# Default .gitignore for Ruby
pkg/
Gemfile.lock
Gemfile.local
vendor/
.vendor/
spec/fixtures/manifests/
spec/fixtures/modules/
.vagrant/
.bundle/
*.gem
*.rbc
.bundle
.config
coverage
InstalledFiles
lib/bundler/man
pkg
rdoc
spec/reports
test/tmp
test/version_tmp
tmp

# YARD artifacts
.yardoc
_yardoc
doc/

# Vim
*.swp

# Eclipse
.project

# Visual Studio Code
.vscode/

# OS X
.DS_Store

# Puppet
.ruby-version
coverage/
spec/fixtures/manifests/*
spec/fixtures/modules/*
log/
.idea/
.dependencies/
.librarian/
Puppetfile.lock
*.iml
.*.sw?
.yardoc/
Guardfile
1 change: 1 addition & 0 deletions .msync.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
modulesync_config_version: '2.5.1'
Loading