summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Meusel <tim@bastelfreak.de>2016-07-11 16:26:37 +0200
committerTim Meusel <tim@bastelfreak.de>2016-07-11 16:27:05 +0200
commitefe03e6af4e63b1c6a98c22cfdbfee040b99c44b (patch)
tree268c4d152c46601317461d7f8b6b36fd098859d5
parentb123117dfe0ef9f8225659a24c31d0bb276b2815 (diff)
modulesync 0.9.1
-rw-r--r--.github/CONTRIBUTING.md95
-rw-r--r--.github/ISSUE_TEMPLATE.md23
-rw-r--r--.github/PULL_REQUEST_TEMPLATE.md5
-rw-r--r--.msync.yml1
-rw-r--r--.rubocop.yml480
-rw-r--r--.travis.yml4
-rw-r--r--Gemfile2
-rw-r--r--spec/spec_helper.rb13
8 files changed, 593 insertions, 30 deletions
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
new file mode 100644
index 0000000..5b09ea6
--- /dev/null
+++ b/.github/CONTRIBUTING.md
@@ -0,0 +1,95 @@
+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 quicker.
+
+
+## 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"
+
+Install the dependencies like so...
+
+ bundle install
+
+## 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
+
+## 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 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
+
+To run the linter, the syntax checker and the unit tests:
+
+ bundle exec rake test
+
+
+## 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 an Ubuntu 12.04 virtual machine. You can also
+run the integration tests against Centos 6.5 with.
+
+ BEAKER_set=centos-64-x64 bundle exec rake acceptances
+
+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_fies`.
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000..9ac4a2b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,23 @@
+<!--
+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.
+-->
+
+### 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
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..79272bf
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,5 @@
+<!--
+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.
+-->
diff --git a/.msync.yml b/.msync.yml
new file mode 100644
index 0000000..efd68b6
--- /dev/null
+++ b/.msync.yml
@@ -0,0 +1 @@
+modulesync_config_version: '0.9.1'
diff --git a/.rubocop.yml b/.rubocop.yml
index 364b022..c834cd2 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -8,22 +8,53 @@ AllCops:
- .vendor/**/*
- pkg/**/*
- spec/fixtures/**/*
+Lint/ConditionPosition:
+ Enabled: true
-# Configuration parameters: AllowURI, URISchemes.
-Metrics/LineLength:
- Max: 328
+Lint/ElseLayout:
+ Enabled: true
-# 'Complexity' is very relative
-Metrics/PerceivedComplexity:
- Enabled: false
+Lint/UnreachableCode:
+ Enabled: true
-# 'Complexity' is very relative
-Metrics/CyclomaticComplexity:
- Enabled: false
+Lint/UselessComparison:
+ Enabled: true
-# 'Complexity' is very relative
-Metrics/AbcSize:
- Enabled: false
+Lint/EnsureReturn:
+ Enabled: true
+
+Lint/HandleExceptions:
+ Enabled: true
+
+Lint/LiteralInCondition:
+ Enabled: true
+
+Lint/ShadowingOuterLocalVariable:
+ Enabled: true
+
+Lint/LiteralInInterpolation:
+ Enabled: true
+
+Style/HashSyntax:
+ Enabled: true
+
+Style/RedundantReturn:
+ Enabled: true
+
+Lint/AmbiguousOperator:
+ Enabled: true
+
+Lint/AssignmentInCondition:
+ Enabled: true
+
+Style/SpaceBeforeComment:
+ Enabled: true
+
+Style/AndOr:
+ Enabled: true
+
+Style/RedundantSelf:
+ Enabled: true
# Method length is not necessarily an indicator of code quality
Metrics/MethodLength:
@@ -33,42 +64,437 @@ Metrics/MethodLength:
Metrics/ModuleLength:
Enabled: false
+Style/WhileUntilModifier:
+ Enabled: true
+
+Lint/AmbiguousRegexpLiteral:
+ Enabled: true
+
+Lint/Eval:
+ Enabled: true
+
+Lint/BlockAlignment:
+ Enabled: true
+
+Lint/DefEndAlignment:
+ Enabled: true
+
+Lint/EndAlignment:
+ Enabled: true
+
+Lint/DeprecatedClassMethods:
+ Enabled: true
+
+Lint/Loop:
+ Enabled: true
+
+Lint/ParenthesesAsGroupedExpression:
+ Enabled: true
+
+Lint/RescueException:
+ Enabled: true
+
+Lint/StringConversionInInterpolation:
+ Enabled: true
+
+Lint/UnusedBlockArgument:
+ Enabled: true
+
+Lint/UnusedMethodArgument:
+ Enabled: true
+
+Lint/UselessAccessModifier:
+ Enabled: true
+
+Lint/UselessAssignment:
+ Enabled: true
+
+Lint/Void:
+ Enabled: true
+
+Style/AccessModifierIndentation:
+ Enabled: true
+
+Style/AccessorMethodName:
+ Enabled: true
+
+Style/Alias:
+ Enabled: true
+
+Style/AlignArray:
+ Enabled: true
+
+Style/AlignHash:
+ Enabled: true
+
+Style/AlignParameters:
+ Enabled: true
+
+Metrics/BlockNesting:
+ Enabled: true
+
+Style/AsciiComments:
+ Enabled: true
+
+Style/Attr:
+ Enabled: true
+
+Style/BracesAroundHashParameters:
+ Enabled: true
+
+Style/CaseEquality:
+ Enabled: true
+
+Style/CaseIndentation:
+ Enabled: true
+
+Style/CharacterLiteral:
+ Enabled: true
+
+Style/ClassAndModuleCamelCase:
+ Enabled: true
+
+Style/ClassAndModuleChildren:
+ Enabled: false
+
+Style/ClassCheck:
+ Enabled: true
+
# Class length is not necessarily an indicator of code quality
Metrics/ClassLength:
Enabled: false
-# dealbreaker:
-Style/TrailingCommaInArguments:
+Style/ClassMethods:
+ Enabled: true
+
+Style/ClassVars:
+ Enabled: true
+
+Style/WhenThen:
+ Enabled: true
+
+Style/WordArray:
+ Enabled: true
+
+Style/UnneededPercentQ:
+ Enabled: true
+
+Style/Tab:
+ Enabled: true
+
+Style/SpaceBeforeSemicolon:
+ Enabled: true
+
+Style/TrailingBlankLines:
+ Enabled: true
+
+Style/SpaceInsideBlockBraces:
+ Enabled: true
+
+Style/SpaceInsideBrackets:
+ Enabled: true
+
+Style/SpaceInsideHashLiteralBraces:
+ Enabled: true
+
+Style/SpaceInsideParens:
+ Enabled: true
+
+Style/LeadingCommentSpace:
+ Enabled: true
+
+Style/SpaceBeforeFirstArg:
+ Enabled: true
+
+Style/SpaceAfterColon:
+ Enabled: true
+
+Style/SpaceAfterComma:
+ Enabled: true
+
+Style/SpaceAfterMethodName:
+ Enabled: true
+
+Style/SpaceAfterNot:
+ Enabled: true
+
+Style/SpaceAfterSemicolon:
+ Enabled: true
+
+Style/SpaceAroundEqualsInParameterDefault:
+ Enabled: true
+
+Style/SpaceAroundOperators:
+ Enabled: true
+
+Style/SpaceBeforeBlockBraces:
+ Enabled: true
+
+Style/SpaceBeforeComma:
+ Enabled: true
+
+Style/CollectionMethods:
+ Enabled: true
+
+Style/CommentIndentation:
+ Enabled: true
+
+Style/ColonMethodCall:
+ Enabled: true
+
+Style/CommentAnnotation:
+ Enabled: true
+
+# 'Complexity' is very relative
+Metrics/CyclomaticComplexity:
Enabled: false
-Style/TrailingCommaInLiteral:
+
+Style/ConstantName:
+ Enabled: true
+
+Style/Documentation:
Enabled: false
-Style/ClosingParenthesisIndentation:
+
+Style/DefWithParentheses:
+ Enabled: true
+
+Style/PreferredHashMethods:
+ Enabled: true
+
+Style/DotPosition:
+ EnforcedStyle: trailing
+
+Style/DoubleNegation:
+ Enabled: true
+
+Style/EachWithObject:
+ Enabled: true
+
+Style/EmptyLineBetweenDefs:
+ Enabled: true
+
+Style/IndentArray:
+ Enabled: true
+
+Style/IndentHash:
+ Enabled: true
+
+Style/IndentationConsistency:
+ Enabled: true
+
+Style/IndentationWidth:
+ Enabled: true
+
+Style/EmptyLines:
+ Enabled: true
+
+Style/EmptyLinesAroundAccessModifier:
+ Enabled: true
+
+Style/EmptyLiteral:
+ Enabled: true
+
+# Configuration parameters: AllowURI, URISchemes.
+Metrics/LineLength:
Enabled: false
-Lint/AmbiguousRegexpLiteral:
+Style/MethodCallParentheses:
+ Enabled: true
+
+Style/MethodDefParentheses:
+ Enabled: true
+
+Style/LineEndConcatenation:
+ Enabled: true
+
+Style/TrailingWhitespace:
+ Enabled: true
+
+Style/StringLiterals:
Enabled: true
+
+Style/TrailingCommaInArguments:
+ Enabled: true
+
+Style/TrailingCommaInLiteral:
+ Enabled: true
+
+Style/GlobalVars:
+ Enabled: true
+
+Style/GuardClause:
+ Enabled: true
+
+Style/IfUnlessModifier:
+ Enabled: true
+
+Style/MultilineIfThen:
+ Enabled: true
+
+Style/NegatedIf:
+ Enabled: true
+
+Style/NegatedWhile:
+ Enabled: true
+
+Style/Next:
+ Enabled: true
+
+Style/SingleLineBlockParams:
+ Enabled: true
+
+Style/SingleLineMethods:
+ Enabled: true
+
+Style/SpecialGlobalVars:
+ Enabled: true
+
+Style/TrivialAccessors:
+ Enabled: true
+
+Style/UnlessElse:
+ Enabled: true
+
+Style/VariableInterpolation:
+ Enabled: true
+
+Style/VariableName:
+ Enabled: true
+
+Style/WhileUntilDo:
+ Enabled: true
+
+Style/EvenOdd:
+ Enabled: true
+
+Style/FileName:
+ Enabled: true
+
+Style/For:
+ Enabled: true
+
+Style/Lambda:
+ Enabled: true
+
+Style/MethodName:
+ Enabled: true
+
+Style/MultilineTernaryOperator:
+ Enabled: true
+
+Style/NestedTernaryOperator:
+ Enabled: true
+
+Style/NilComparison:
+ Enabled: true
+
+Style/FormatString:
+ Enabled: true
+
+Style/MultilineBlockChain:
+ Enabled: true
+
+Style/Semicolon:
+ Enabled: true
+
+Style/SignalException:
+ Enabled: true
+
+Style/NonNilCheck:
+ Enabled: true
+
+Style/Not:
+ Enabled: true
+
+Style/NumericLiterals:
+ Enabled: true
+
+Style/OneLineConditional:
+ Enabled: true
+
+Style/OpMethod:
+ Enabled: true
+
+Style/ParenthesesAroundCondition:
+ Enabled: true
+
+Style/PercentLiteralDelimiters:
+ Enabled: true
+
+Style/PerlBackrefs:
+ Enabled: true
+
+Style/PredicateName:
+ Enabled: true
+
+Style/RedundantException:
+ Enabled: true
+
+Style/SelfAssignment:
+ Enabled: true
+
+Style/Proc:
+ Enabled: true
+
+Style/RaiseArgs:
+ Enabled: true
+
+Style/RedundantBegin:
+ Enabled: true
+
+Style/RescueModifier:
+ Enabled: true
+
+# based on https://github.com/voxpupuli/modulesync_config/issues/168
Style/RegexpLiteral:
+ EnforcedStyle: percent_r
Enabled: true
-Style/WordArray:
+
+Lint/UnderscorePrefixedVariableName:
Enabled: true
-# this catches the cases of using `module` for parser functions, types, or
-# providers
-Style/ClassAndModuleChildren:
+Metrics/ParameterLists:
Enabled: false
-Style/Documentation:
- Description: 'Document classes and non-namespace modules.'
- Enabled: false
+Lint/RequireParentheses:
+ Enabled: true
+
+Style/SpaceBeforeFirstArg:
+ Enabled: true
+
+Style/ModuleFunction:
+ Enabled: true
+
+Lint/Debugger:
+ Enabled: true
+
+Style/IfWithSemicolon:
+ Enabled: true
+
+Style/Encoding:
+ Enabled: true
-# More comfortable block layouts
Style/BlockDelimiters:
- Enabled: False
+ Enabled: true
Style/MultilineBlockLayout:
+ Enabled: true
+
+# 'Complexity' is very relative
+Metrics/AbcSize:
+ Enabled: False
+
+# 'Complexity' is very relative
+Metrics/PerceivedComplexity:
Enabled: False
-# Rspec
+Lint/UselessAssignment:
+ Enabled: true
+
+Style/ClosingParenthesisIndentation:
+ Enabled: false
+
+# RSpec
# We don't use rspec in this way
RSpec/DescribeClass:
diff --git a/.travis.yml b/.travis.yml
index cc86b12..5eb58f0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,6 +26,8 @@ matrix:
- rvm: 2.2
env: PUPPET_VERSION="~> 4.0" STRICT_VARIABLES="yes" CHECK=test
- rvm: 2.3.1
+ env: PUPPET_VERSION="~> 4.0" STRICT_VARIABLES="yes" CHECK=build
+ - rvm: 2.3.1
env: PUPPET_VERSION="~> 4.0" STRICT_VARIABLES="yes" CHECK=rubocop
- rvm: 2.3.1
env: PUPPET_VERSION="~> 4.0" STRICT_VARIABLES="yes" CHECK=test
@@ -41,4 +43,4 @@ deploy:
# all_branches is required to use tags
all_branches: true
# Only publish if our main Ruby target builds
- rvm: 2.2
+ rvm: 2.3.1
diff --git a/Gemfile b/Gemfile
index f9ac864..90188fe 100644
--- a/Gemfile
+++ b/Gemfile
@@ -15,7 +15,6 @@ group :test do
gem 'rspec-puppet', :require => false, :git => 'https://github.com/rodjek/rspec-puppet.git'
gem 'rspec-puppet-facts', :require => false
gem 'rspec-puppet-utils', :require => false
- gem 'puppet-lint', :require => false, :git => 'https://github.com/rodjek/puppet-lint.git'
gem 'puppet-lint-absolute_classname-check', :require => false
gem 'puppet-lint-leading_zero-check', :require => false
gem 'puppet-lint-trailing_comma-check', :require => false
@@ -37,7 +36,6 @@ group :development do
end
group :system_tests do
- gem 'beaker', :require => false
if beaker_version = ENV['BEAKER_VERSION']
gem 'beaker', *location_for(beaker_version)
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 0f53c4e..047b126 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,4 +1,17 @@
require 'puppetlabs_spec_helper/module_spec_helper'
require 'rspec-puppet-facts'
include RspecPuppetFacts
+
+RSpec.configure do |c|
+ c.default_facts = {
+ concat_basedir: '/tmp',
+ is_pe: false,
+ selinux_config_mode: 'disabled',
+ puppetversion: Puppet.version,
+ facterversion: Facter.version,
+ ipaddress: '172.16.254.254',
+ macaddress: 'AA:AA:AA:AA:AA:AA'
+ }
+end
+
# vim: syntax=ruby