-*.swp
-spec/fixtures/modules/*
-pkg
+pkg/
Gemfile.lock
-.vagrant/*
+vendor/
+spec/fixtures/
+.vagrant/
+.bundle/
+coverage/
+.idea/
+*.swp
+*.iml
--- /dev/null
+---
+spec/spec_helper.rb:
+ unmanaged: true
-source 'https://rubygems.org'
+source ENV['GEM_SOURCE'] || "https://rubygems.org"
group :development, :test do
- gem 'puppetlabs_spec_helper', :require => false
- gem 'rspec-puppet', '~> 2.1.0', :require => false
-
- gem 'metadata-json-lint'
- gem 'puppet-lint-param-docs'
- gem 'puppet-lint-absolute_classname-check'
- gem 'puppet-lint-absolute_template_path'
- gem 'puppet-lint-trailing_newline-check'
-
- # Puppet 4.x related lint checks
- gem 'puppet-lint-unquoted_string-check'
- gem 'puppet-lint-leading_zero-check'
- gem 'puppet-lint-variable_contains_upcase'
- gem 'puppet-lint-numericvariable'
+ gem 'puppetlabs_spec_helper', :require => 'false'
+ gem 'rspec-puppet', '~> 2.2.0', :require => 'false'
+ gem 'metadata-json-lint', :require => 'false'
+ gem 'puppet-lint-param-docs', :require => 'false'
+ gem 'puppet-lint-absolute_classname-check', :require => 'false'
+ gem 'puppet-lint-absolute_template_path', :require => 'false'
+ gem 'puppet-lint-trailing_newline-check', :require => 'false'
+ gem 'puppet-lint-unquoted_string-check', :require => 'false'
+ gem 'puppet-lint-leading_zero-check', :require => 'false'
+ gem 'puppet-lint-variable_contains_upcase', :require => 'false'
+ gem 'puppet-lint-numericvariable', :require => 'false'
+ gem 'json', :require => 'false'
+ gem 'webmock', :require => 'false'
+end
- gem 'json'
- gem 'webmock'
- gem 'r10k'
- gem 'librarian-puppet-simple', '~> 0.0.3'
+group :system_tests do
+ gem 'beaker-rspec', :require => 'false'
+ gem 'beaker-puppet_install_helper', :require => 'false'
+end
+if facterversion = ENV['FACTER_GEM_VERSION']
+ gem 'facter', facterversion, :require => false
+else
+ gem 'facter', :require => false
end
if puppetversion = ENV['PUPPET_GEM_VERSION']
require 'puppetlabs_spec_helper/rake_tasks'
require 'puppet-lint/tasks/puppet-lint'
+require 'puppet-syntax/tasks/puppet-syntax'
-PuppetLint.configuration.fail_on_warnings = true
-PuppetLint.configuration.send('disable_80chars')
-PuppetLint.configuration.send('disable_class_parameter_defaults')
-PuppetLint.configuration.send('disable_class_inherits_from_params_class')
+PuppetSyntax.exclude_paths ||= []
+PuppetSyntax.exclude_paths << "spec/fixtures/**/*"
+PuppetSyntax.exclude_paths << "pkg/**/*"
+PuppetSyntax.exclude_paths << "vendor/**/*"
+
+Rake::Task[:lint].clear
+PuppetLint::RakeTask.new :lint do |config|
+ config.ignore_paths = ["spec/**/*.pp", "vendor/**/*.pp"]
+ config.fail_on_warnings = true
+ config.log_format = '%{path}:%{linenumber}:%{KIND}: %{message}'
+ config.disable_checks = ["80chars", "class_inherits_from_params_class", "class_parameter_defaults", "only_variable_string"]
+end
+
+desc "Run acceptance tests"
+RSpec::Core::RakeTask.new(:acceptance) do |t|
+ t.pattern = 'spec/acceptance'
+end
--- /dev/null
+HOSTS:
+ centos-server-70-x64:
+ roles:
+ - master
+ platform: el-7-x86_64
+ box: puppetlabs/centos-7.0-64-nocm
+ box_url: https://vagrantcloud.com/puppetlabs/centos-7.0-64-nocm
+ hypervisor: vagrant
+CONFIG:
+ log_level: debug
+ type: foss
--- /dev/null
+HOSTS:
+ ubuntu-server-1404-x64:
+ roles:
+ - master
+ platform: ubuntu-14.04-amd64
+ box: puppetlabs/ubuntu-14.04-64-nocm
+ box_url: https://vagrantcloud.com/puppetlabs/ubuntu-14.04-64-nocm
+ hypervisor: vagrant
+CONFIG:
+ log_level: debug
+ type: git
--- /dev/null
+HOSTS:
+ centos-70-x64:
+ roles:
+ - master
+ platform: el-7-x86_64
+ hypervisor: none
+ ip: 127.0.0.1
+CONFIG:
+ type: foss
+ set_env: false
--- /dev/null
+HOSTS:
+ ubuntu-1404-x64:
+ roles:
+ - master
+ platform: ubuntu-14.04-amd64
+ hypervisor: none
+ ip: 127.0.0.1
+CONFIG:
+ type: foss
+ set_env: false
--- /dev/null
+HOSTS:
+ ubuntu-server-1404-x64:
+ roles:
+ - master
+ platform: ubuntu-14.04-amd64
+ box: puppetlabs/ubuntu-14.04-64-nocm
+ box_url: https://vagrantcloud.com/puppetlabs/ubuntu-14.04-64-nocm
+ hypervisor: vagrant
+CONFIG:
+ log_level: debug
+ type: git
require 'puppetlabs_spec_helper/module_spec_helper'
require 'shared_examples'
+require 'webmock/rspec'
RSpec.configure do |c|
c.alias_it_should_behave_like_to :it_configures, 'configures'
:uniqueid => '123'
}
end
+
+at_exit { RSpec::Puppet::Coverage.report! }
--- /dev/null
+require 'beaker-rspec'
+require 'beaker/puppet_install_helper'
+
+run_puppet_install_helper
+
+RSpec.configure do |c|
+ # Project root
+ proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
+ modname = JSON.parse(open('metadata.json').read)['name'].split('-')[1]
+
+ # Readable test descriptions
+ c.formatter = :documentation
+
+ # Configure all nodes in nodeset
+ c.before :suite do
+ # Install module and dependencies
+ hosts.each do |host|
+
+ # install git
+ install_package host, 'git'
+
+ zuul_ref = ENV['ZUUL_REF']
+ zuul_branch = ENV['ZUUL_BRANCH']
+ zuul_url = ENV['ZUUL_URL']
+
+ repo = 'openstack/puppet-openstack-integration'
+
+ # Start out with clean moduledir, don't trust r10k to purge it
+ on host, "rm -rf /etc/puppet/modules/*"
+ # Install dependent modules via git or zuul
+ r = on host, "test -e /usr/zuul-env/bin/zuul-cloner", { :acceptable_exit_codes => [0,1] }
+ if r.exit_code == 0
+ zuul_clone_cmd = '/usr/zuul-env/bin/zuul-cloner '
+ zuul_clone_cmd += '--cache-dir /opt/git '
+ zuul_clone_cmd += "--zuul-ref #{zuul_ref} "
+ zuul_clone_cmd += "--zuul-branch #{zuul_branch} "
+ zuul_clone_cmd += "--zuul-url #{zuul_url} "
+ zuul_clone_cmd += "git://git.openstack.org #{repo}"
+ on host, zuul_clone_cmd
+ else
+ on host, "git clone https://git.openstack.org/#{repo} #{repo}"
+ end
+
+ on host, "ZUUL_REF=#{zuul_ref} ZUUL_BRANCH=#{zuul_branch} ZUUL_URL=#{zuul_url} bash #{repo}/install_modules.sh"
+
+ # Install the module being tested
+ on host, "rm -fr /etc/puppet/modules/#{modname}"
+ puppet_module_install(:source => proj_root, :module_name => modname)
+
+ on host, "rm -fr #{repo}"
+
+ # List modules installed to help with debugging
+ on host, puppet('module','list'), { :acceptable_exit_codes => 0 }
+ end
+ end
+end