Initial msync run for all Puppet OpenStack modules
This patch is the initial modulesync run, it impacts: * gitignore: just a sync between projects * gemfile: - update and allow to setup facter version and gem source - split beaker gems with a dedicated group - switch to rspec-puppet 2.2.0 * rakefile: - use the new syntax for lint configuration - add a acceptance target * acceptance: - sync nodesets * spec: - added rspec coverage report - added shared_example rspec helper * lint: cleans up any lint errors caused by this sync up with msync Change-Id: I614a5c1acc41af5e6018add602633b8596e20954
This commit is contained in:
parent
05a78ad794
commit
e3a2b0627f
11
.gitignore
vendored
11
.gitignore
vendored
@ -1,5 +1,10 @@
|
|||||||
spec/fixtures/
|
pkg/
|
||||||
pkg
|
|
||||||
Gemfile.lock
|
Gemfile.lock
|
||||||
|
vendor/
|
||||||
|
spec/fixtures/
|
||||||
|
.vagrant/
|
||||||
|
.bundle/
|
||||||
|
coverage/
|
||||||
|
.idea/
|
||||||
*.swp
|
*.swp
|
||||||
.idea
|
*.iml
|
||||||
|
32
Gemfile
32
Gemfile
@ -1,12 +1,30 @@
|
|||||||
source 'https://rubygems.org'
|
source ENV['GEM_SOURCE'] || "https://rubygems.org"
|
||||||
|
|
||||||
group :development, :test do
|
group :development, :test do
|
||||||
gem 'puppetlabs_spec_helper', :require => false
|
gem 'puppetlabs_spec_helper', :require => 'false'
|
||||||
gem 'puppet-lint', '~> 0.3.2'
|
gem 'rspec-puppet', '~> 2.2.0', :require => 'false'
|
||||||
gem 'rake', '10.1.1'
|
gem 'metadata-json-lint', :require => 'false'
|
||||||
gem 'rspec', '< 2.99'
|
gem 'puppet-lint-param-docs', :require => 'false'
|
||||||
gem 'json'
|
gem 'puppet-lint-absolute_classname-check', :require => 'false'
|
||||||
gem 'webmock'
|
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
|
||||||
|
|
||||||
|
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
|
end
|
||||||
|
|
||||||
if puppetversion = ENV['PUPPET_GEM_VERSION']
|
if puppetversion = ENV['PUPPET_GEM_VERSION']
|
||||||
|
24
Rakefile
24
Rakefile
@ -1,9 +1,21 @@
|
|||||||
require 'rubygems'
|
|
||||||
require 'puppetlabs_spec_helper/rake_tasks'
|
require 'puppetlabs_spec_helper/rake_tasks'
|
||||||
require 'puppet-lint/tasks/puppet-lint'
|
require 'puppet-lint/tasks/puppet-lint'
|
||||||
|
require 'puppet-syntax/tasks/puppet-syntax'
|
||||||
|
|
||||||
PuppetLint.configuration.fail_on_warnings = true
|
PuppetSyntax.exclude_paths ||= []
|
||||||
PuppetLint.configuration.send('disable_80chars')
|
PuppetSyntax.exclude_paths << "spec/fixtures/**/*"
|
||||||
PuppetLint.configuration.send('disable_double_quoted_strings')
|
PuppetSyntax.exclude_paths << "pkg/**/*"
|
||||||
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
|
PuppetSyntax.exclude_paths << "vendor/**/*"
|
||||||
PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp", "examples/**/*.pp", "vendor/**/*.pp"]
|
|
||||||
|
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
|
||||||
|
@ -174,11 +174,11 @@ define openstack_extras::pacemaker::service (
|
|||||||
|
|
||||||
if $ocf_script_template or $ocf_script_file {
|
if $ocf_script_template or $ocf_script_file {
|
||||||
file { $ocf_script_name :
|
file { $ocf_script_name :
|
||||||
ensure => $ensure,
|
ensure => $ensure,
|
||||||
path => $ocf_script_path,
|
path => $ocf_script_path,
|
||||||
mode => '0755',
|
mode => '0755',
|
||||||
owner => 'root',
|
owner => 'root',
|
||||||
group => 'root',
|
group => 'root',
|
||||||
}
|
}
|
||||||
|
|
||||||
if $ocf_script_template {
|
if $ocf_script_template {
|
||||||
|
@ -9,23 +9,23 @@ class openstack_extras::repo::redhat::params
|
|||||||
|
|
||||||
$repo_defaults = { 'enabled' => '1',
|
$repo_defaults = { 'enabled' => '1',
|
||||||
'gpgcheck' => '1',
|
'gpgcheck' => '1',
|
||||||
'notify' => "Exec[yum_refresh]",
|
'notify' => 'Exec[yum_refresh]',
|
||||||
'mirrorlist' => 'absent',
|
'mirrorlist' => 'absent',
|
||||||
'require' => "Anchor[openstack_extras_redhat]"
|
'require' => 'Anchor[openstack_extras_redhat]',
|
||||||
}
|
}
|
||||||
|
|
||||||
$gpgkey_defaults = { 'owner' => 'root',
|
$gpgkey_defaults = { 'owner' => 'root',
|
||||||
'group' => 'root',
|
'group' => 'root',
|
||||||
'mode' => '0644',
|
'mode' => '0644',
|
||||||
'before' => "Anchor[openstack_extras_redhat]"
|
'before' => 'Anchor[openstack_extras_redhat]',
|
||||||
}
|
}
|
||||||
|
|
||||||
case $::operatingsystem {
|
case $::operatingsystem {
|
||||||
centos, redhat, scientific, slc: {
|
'centos', 'redhat', 'scientific', 'slc': {
|
||||||
$dist_full = 'epel-'
|
$dist_full = 'epel-'
|
||||||
$dist_short = 'el'
|
$dist_short = 'el'
|
||||||
}
|
}
|
||||||
fedora: {
|
'fedora': {
|
||||||
$dist_full = 'fedora-'
|
$dist_full = 'fedora-'
|
||||||
$dist_short = 'f'
|
$dist_short = 'f'
|
||||||
}
|
}
|
||||||
|
11
spec/acceptance/nodesets/centos-70-x64.yml
Normal file
11
spec/acceptance/nodesets/centos-70-x64.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
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
|
10
spec/acceptance/nodesets/default.yml
Normal file
10
spec/acceptance/nodesets/default.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
HOSTS:
|
||||||
|
ubuntu-server-14.04-amd64:
|
||||||
|
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:
|
||||||
|
type: foss
|
10
spec/acceptance/nodesets/nodepool-centos7.yml
Normal file
10
spec/acceptance/nodesets/nodepool-centos7.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
HOSTS:
|
||||||
|
centos-70-x64:
|
||||||
|
roles:
|
||||||
|
- master
|
||||||
|
platform: el-7-x86_64
|
||||||
|
hypervisor: none
|
||||||
|
ip: 127.0.0.1
|
||||||
|
CONFIG:
|
||||||
|
type: foss
|
||||||
|
set_env: false
|
10
spec/acceptance/nodesets/nodepool-trusty.yml
Normal file
10
spec/acceptance/nodesets/nodepool-trusty.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
HOSTS:
|
||||||
|
ubuntu-14.04-amd64:
|
||||||
|
roles:
|
||||||
|
- master
|
||||||
|
platform: ubuntu-14.04-amd64
|
||||||
|
hypervisor: none
|
||||||
|
ip: 127.0.0.1
|
||||||
|
CONFIG:
|
||||||
|
type: foss
|
||||||
|
set_env: false
|
11
spec/acceptance/nodesets/ubuntu-server-1404-x64.yml
Normal file
11
spec/acceptance/nodesets/ubuntu-server-1404-x64.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
HOSTS:
|
||||||
|
ubuntu-server-14.04-amd64:
|
||||||
|
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: foss
|
5
spec/shared_examples.rb
Normal file
5
spec/shared_examples.rb
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
shared_examples_for "a Puppet::Error" do |description|
|
||||||
|
it "with message matching #{description.inspect}" do
|
||||||
|
expect { is_expected.to have_class_count(1) }.to raise_error(Puppet::Error, description)
|
||||||
|
end
|
||||||
|
end
|
@ -1 +1,10 @@
|
|||||||
require 'puppetlabs_spec_helper/module_spec_helper'
|
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'
|
||||||
|
c.alias_it_should_behave_like_to :it_raises, 'raises'
|
||||||
|
end
|
||||||
|
|
||||||
|
at_exit { RSpec::Puppet::Coverage.report! }
|
||||||
|
56
spec/spec_helper_acceptance.rb
Normal file
56
spec/spec_helper_acceptance.rb
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
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
|
Loading…
Reference in New Issue
Block a user