Showing with 2,894 additions and 896 deletions.
  1. +0 −2 .fixtures.yml
  2. +124 −0 .github/CONTRIBUTING.md
  3. +26 −0 .github/ISSUE_TEMPLATE.md
  4. +20 −0 .github/PULL_REQUEST_TEMPLATE.md
  5. +14 −23 .gitignore
  6. +1 −0 .msync.yml
  7. +63 −0 .overcommit.yml
  8. +20 −0 .pmtignore
  9. +2 −0 .rspec
  10. +1 −0 .rspec_parallel
  11. +545 −0 .rubocop.yml
  12. +3 −0 .sync.yaml
  13. +44 −35 .travis.yml
  14. +2 −0 .yardopts
  15. +614 −0 CHANGELOG.md
  16. +66 −26 Gemfile
  17. +10 −22 README.md
  18. +69 −23 Rakefile
  19. +1 −1 {tests → examples}/gunicorn.pp
  20. 0 {tests → examples}/init.pp
  21. 0 {tests → examples}/pip.pp
  22. +1 −1 {tests → examples}/pyvenv.pp
  23. 0 {tests → examples}/requirements.pp
  24. 0 {tests → examples}/virtualenv.pp
  25. +2 −2 lib/facter/pip_version.rb
  26. +7 −9 lib/facter/python_release.rb
  27. +7 −9 lib/facter/python_version.rb
  28. +2 −2 lib/facter/virtualenv_version.rb
  29. +26 −53 manifests/init.pp
  30. +25 −8 manifests/install.pp
  31. +2 −0 manifests/params.pp
  32. +42 −18 manifests/pip.pp
  33. +7 −2 manifests/pyvenv.pp
  34. +4 −1 manifests/requirements.pp
  35. +21 −7 manifests/virtualenv.pp
  36. +6 −11 metadata.json
  37. +3 −4 spec/acceptance/class_spec.rb
  38. +16 −15 spec/acceptance/facts_test_spec.rb
  39. +13 −0 spec/acceptance/nodesets/archlinux-2-x64.yml
  40. +15 −0 spec/acceptance/nodesets/centos-511-x64.yml
  41. +15 −0 spec/acceptance/nodesets/centos-6-x64.yml
  42. +17 −0 spec/acceptance/nodesets/centos-66-x64-pe.yml
  43. +15 −0 spec/acceptance/nodesets/centos-7-x64.yml
  44. +15 −0 spec/acceptance/nodesets/debian-78-x64.yml
  45. +15 −0 spec/acceptance/nodesets/debian-82-x64.yml
  46. +31 −0 spec/acceptance/nodesets/ec2/amazonlinux-2016091.yml
  47. +34 −0 spec/acceptance/nodesets/ec2/image_templates.yaml
  48. +29 −0 spec/acceptance/nodesets/ec2/rhel-73-x64.yml
  49. +29 −0 spec/acceptance/nodesets/ec2/sles-12sp2-x64.yml
  50. +29 −0 spec/acceptance/nodesets/ec2/ubuntu-1604-x64.yml
  51. +29 −0 spec/acceptance/nodesets/ec2/windows-2016-base-x64.yml
  52. +16 −0 spec/acceptance/nodesets/fedora-25-x64.yml
  53. +16 −0 spec/acceptance/nodesets/fedora-26-x64.yml
  54. +18 −0 spec/acceptance/nodesets/fedora-27-x64.yml
  55. +15 −0 spec/acceptance/nodesets/ubuntu-server-1204-x64.yml
  56. +9 −5 spec/acceptance/nodesets/ubuntu-server-1404-x64.yml
  57. +15 −0 spec/acceptance/nodesets/ubuntu-server-1604-x64.yml
  58. +3 −4 spec/acceptance/virtualenv_spec.rb
  59. +4 −0 spec/classes/coverage_spec.rb
  60. +389 −394 spec/classes/python_spec.rb
  61. +14 −0 spec/default_facts.yml
  62. +19 −15 spec/defines/gunicorn_spec.rb
  63. +99 −42 spec/defines/pip_spec.rb
  64. +25 −19 spec/defines/pyvenv_spec.rb
  65. +50 −38 spec/defines/requirements_spec.rb
  66. +30 −13 spec/spec_helper.rb
  67. +6 −6 spec/spec_helper_acceptance.rb
  68. +11 −11 spec/unit/facter/pip_version_spec.rb
  69. +31 −32 spec/unit/facter/python_release_spec.rb
  70. +31 −32 spec/unit/facter/python_version_spec.rb
  71. +11 −11 spec/unit/facter/virtualenv_version_spec.rb
2 changes: 0 additions & 2 deletions .fixtures.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ fixtures:
repositories:
stdlib:
repo: 'https://github.com/puppetlabs/puppetlabs-stdlib.git'
ref: '4.6.0'
epel:
repo: 'https://github.com/stahnma/puppet-module-epel.git'
ref: '1.2.2'
symlinks:
python: "#{source_dir}"
124 changes: 124 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
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. Run the tests. We only take pull requests with passing tests, and
documentation.

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 the 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:

export PUPPET_VERSION="~> 4.2.0"

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

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

If you also want to run acceptance tests:

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

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

```sh
bundle install --path .vendor/ --without development --with system_tests --without 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:

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:

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:

bundle exec rake test

To run your all the unit tests

bundle exec rake spec SPEC_OPTS='--format documentation'

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

bundle exec rake spec SPEC=spec/foo_spec.rb

## 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:

bundle exec rake acceptance

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

BEAKER_set=centos-7-x64 bundle exec rake acceptance

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

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`.

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

docker exec -it -u root ${container_id_or_name} bash
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
-->
37 changes: 14 additions & 23 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,29 +1,20 @@
# Editors
project.xml
project.properties
/nbproject/private/
.buildpath
.project
.settings*
sftp-config.json
.idea

# Modules
pkg/
Gemfile.lock
Gemfile.local
vendor/
spec/fixtures/
.bundle/
.vendor/
spec/fixtures/manifests/
spec/fixtures/modules/
.vagrant/
.bundle/
.ruby-version
coverage/

# Beaker
.vagrant/
log/
junit/

# OS X metadata
.DS_Store

# Windows junk
Thumbs.db
.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: '1.9.2'
63 changes: 63 additions & 0 deletions .overcommit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Managed by https://github.com/voxpupuli/modulesync_configs
#
# Hooks are only enabled if you take action.
#
# To enable the hooks run:
#
# ```
# bundle exec overcommit --install
# # ensure .overcommit.yml does not harm to you and then
# bundle exec overcommit --sign
# ```
#
# (it will manage the .git/hooks directory):
#
# Examples howto skip a test for a commit or push:
#
# ```
# SKIP=RuboCop git commit
# SKIP=PuppetLint git commit
# SKIP=RakeTask git push
# ```
#
# Don't invoke overcommit at all:
#
# ```
# OVERCOMMIT_DISABLE=1 git commit
# ```
#
# Read more about overcommit: https://github.com/brigade/overcommit
#
# To manage this config yourself in your module add
#
# ```
# .overcommit.yml:
# unmanaged: true
# ```
#
# to your modules .sync.yml config
---
PreCommit:
RuboCop:
enabled: true
description: 'Runs rubocop on modified files only'
command: ['bundle', 'exec', 'rubocop']
PuppetLint:
enabled: true
description: 'Runs puppet-lint on modified files only'
command: ['bundle', 'exec', 'puppet-lint']
YamlSyntax:
enabled: true
JsonSyntax:
enabled: true
TrailingWhitespace:
enabled: true

PrePush:
RakeTarget:
enabled: true
description: 'Run rake targets'
targets:
- 'test'
- 'rubocop'
command: [ 'bundle', 'exec', 'rake' ]
20 changes: 20 additions & 0 deletions .pmtignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
docs/
pkg/
Gemfile.lock
Gemfile.local
vendor/
.vendor/
spec/fixtures/manifests/
spec/fixtures/modules/
.vagrant/
.bundle/
.ruby-version
coverage/
log/
.idea/
.dependencies/
.librarian/
Puppetfile.lock
*.iml
.*.sw?
.yardoc/
2 changes: 2 additions & 0 deletions .rspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--format documentation
--color
1 change: 1 addition & 0 deletions .rspec_parallel
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--format progress
Loading