group :development, :test do
gem 'puppetlabs_spec_helper', :require => 'false'
gem 'rspec-puppet', '~> 2.2.0', :require => 'false'
+ gem 'rspec-puppet-facts', :require => 'false'
gem 'metadata-json-lint', :require => 'false'
gem 'puppet-lint-param-docs', :require => 'false'
gem 'puppet-lint-absolute_classname-check', :require => 'false'
],
"operatingsystem_support": [
{
- "operatingsystem": "Fedora",
- "operatingsystemrelease": ["20"]
+ "operatingsystem": "RedHat",
+ "operatingsystemrelease": ["7"]
},
{
- "operatingsystem": "RedHat",
+ "operatingsystem": "CentOS",
"operatingsystemrelease": ["7"]
}
],
describe 'tripleo::cluster::cassandra' do
- shared_examples_for 'cassandra cluster service' do
-
- let :facts do
- {
- :hostname => 'host1.midonet',
- :osfamily => 'RedHat',
- :operatingsystemmajrelease => 7,
- }
- end
+ shared_examples_for 'tripleo::cluster::cassandra' do
let :params do
{
end
end
- it_configures 'cassandra cluster service'
+ on_supported_os.each do |os, facts|
+ context "on #{os}" do
+ let(:facts) do
+ facts.merge({})
+ end
+
+ it_behaves_like 'tripleo::cluster::cassandra'
+ end
+ end
end
describe 'tripleo::cluster::zookeeper' do
- let :default_params do
- {
- :zookeeper_server_ips => ['23.43.2.34', '23.43.2.35', '24.43.2.36'],
- :zookeeper_hostnames => ['host1.midonet', 'host2.midonet', 'host3.midonet']
- }
- end
-
- context 'on host1' do
- let :facts do
- {
- :hostname => 'host1.midonet',
- :osfamily => 'RedHat',
- :operatingsystemmajrelease => 7,
- }
- end
-
+ shared_examples_for 'tripleo::cluster::zookeeper' do
let :params do
- {
- :zookeeper_client_ip => '23.43.2.34'
- }
- end
-
- before do
- params.merge!(default_params)
- end
-
- it 'should call zookeeper using id==1' do
- is_expected.to contain_class('zookeeper').with(
- :servers => ['23.43.2.34', '23.43.2.35', '24.43.2.36'],
- :client_ip => '23.43.2.34',
- :id => 1
- )
- end
-
- end
-
- context 'on host2' do
- let :facts do
{
- :hostname => 'host2.midonet',
- :osfamily => 'RedHat',
- :operatingsystemmajrelease => 7,
+ :zookeeper_server_ips => ['23.43.2.34', '23.43.2.35', '24.43.2.36'],
+ :zookeeper_hostnames => ['host1.midonet', 'host2.midonet', 'host3.midonet']
}
end
- let :params do
- {
- :zookeeper_client_ip => '23.43.2.35'
- }
+ context 'on host1' do
+ before :each do
+ facts.merge!({ :hostname => 'host1.midonet'})
+ params.merge!({ :zookeeper_client_ip => '23.43.2.34' })
+ end
+
+ it 'should call zookeeper using id==1' do
+ is_expected.to contain_class('zookeeper').with(
+ :servers => ['23.43.2.34', '23.43.2.35', '24.43.2.36'],
+ :client_ip => '23.43.2.34',
+ :id => 1
+ )
+ end
end
- before do
- params.merge!(default_params)
+ context 'on host2' do
+ before :each do
+ facts.merge!({ :hostname => 'host2.midonet'})
+ params.merge!({ :zookeeper_client_ip => '23.43.2.35' })
+ end
+
+ it 'should call zookeeper using id==1' do
+ is_expected.to contain_class('zookeeper').with(
+ :servers => ['23.43.2.34', '23.43.2.35', '24.43.2.36'],
+ :client_ip => '23.43.2.35',
+ :id => 2
+ )
+ end
end
- it 'should call zookeeper using id==1' do
- is_expected.to contain_class('zookeeper').with(
- :servers => ['23.43.2.34', '23.43.2.35', '24.43.2.36'],
- :client_ip => '23.43.2.35',
- :id => 2
- )
- end
- end
+ context 'on host3' do
+ before :each do
+ facts.merge!({ :hostname => 'host3.midonet'})
+ params.merge!({ :zookeeper_client_ip => '23.43.2.36' })
+ end
- context 'on host3' do
- let :facts do
- {
- :hostname => 'host3.midonet',
- :osfamily => 'RedHat',
- :operatingsystemmajrelease => 7,
- }
- end
+ it 'should call zookeeper using id==1' do
+ is_expected.to contain_class('zookeeper').with(
+ :servers => ['23.43.2.34', '23.43.2.35', '24.43.2.36'],
+ :client_ip => '23.43.2.36',
+ :id => 3
+ )
+ end
- let :params do
- {
- :zookeeper_client_ip => '23.43.2.36'
- }
end
+ end
- before do
- params.merge!(default_params)
- end
+ on_supported_os.each do |os, facts|
+ context "on #{os}" do
+ let(:facts) do
+ facts.merge({})
+ end
- it 'should call zookeeper using id==1' do
- is_expected.to contain_class('zookeeper').with(
- :servers => ['23.43.2.34', '23.43.2.35', '24.43.2.36'],
- :client_ip => '23.43.2.36',
- :id => 3
- )
+ it_behaves_like 'tripleo::cluster::zookeeper'
end
-
end
-
end
{ }
end
- shared_examples_for 'tripleo node' do
+ shared_examples_for 'tripleo::firewall' do
context 'with firewall enabled' do
before :each do
end
- context 'on Debian platforms' do
- let :facts do
- { :osfamily => 'Debian' }
- end
-
- it_configures 'tripleo node'
- end
+ on_supported_os.each do |os, facts|
+ context "on #{os}" do
+ let(:facts) do
+ facts.merge({})
+ end
- context 'on RedHat platforms' do
- let :facts do
- {
- :osfamily => 'RedHat',
- :operatingsystemrelease => '7.1',
- }
+ it_behaves_like 'tripleo::firewall'
end
-
- it_configures 'tripleo node'
end
-
end
describe 'tripleo::host::sriov' do
- shared_examples_for 'sriov vfs configuration for Red Hat distributions' do
-
- let :facts do
- {
- :osfamily => 'RedHat',
- :operatingsystemmajrelease => 7,
- }
- end
-
+ shared_examples_for 'tripleo::host::sriov' do
let :params do
{:number_of_vfs => []}
end
end
end
- it_configures 'sriov vfs configuration for Red Hat distributions'
+ on_supported_os.each do |os, facts|
+ context "on #{os}" do
+ let(:facts) do
+ facts.merge({})
+ end
+
+ it_behaves_like 'tripleo::host::sriov'
+ end
+ end
end
describe 'tripleo::network::midonet::agent' do
- let :facts do
- {
- :hostname => 'host2.midonet',
- :osfamily => 'RedHat',
- :operatingsystem => 'CentOS',
- :operatingsystemrelease => '7.1',
- :operatingsystemmajrelease => 7,
- }
- end
-
- shared_examples_for 'midonet agent test' do
+ shared_examples_for 'tripleo::network::midonet::agent' do
let :params do
{
end
end
- it_configures 'midonet agent test'
-
+ on_supported_os.each do |os, facts|
+ context "on #{os}" do
+ let(:facts) do
+ facts.merge({})
+ end
+ it_behaves_like 'tripleo::network::midonet::agent'
+ end
+ end
end
describe 'tripleo::network::midonet::api' do
- let :facts do
- {
- :augeasversion => '1.0.0'
- }
- end
-
- shared_examples_for 'midonet api test' do
+ shared_examples_for 'tripleo::midonet::api' do
let :params do
{
end
- it_configures 'midonet api test'
+ on_supported_os.each do |os, facts|
+ context "on #{os}" do
+ let(:facts) do
+ facts.merge({
+ :augeasversion => '1.0.0'
+ })
+ end
+
+ it_behaves_like 'tripleo::midonet::api'
+ end
+ end
end
describe 'tripleo::packages' do
- shared_examples_for 'Red Hat distributions' do
+ shared_examples_for 'tripleo::packages' do
let :pre_condition do
"service{'nova-compute': ensure => 'running'}"
end
- let :facts do
- {
- :osfamily => 'RedHat',
- :operatingsystemmajrelease => 7,
- }
- end
-
let :params do
{
:enable_upgrade => true
end
- it_configures 'Red Hat distributions'
+
+ on_supported_os.each do |os, facts|
+ context "on #{os}" do
+ let(:facts) do
+ facts.merge({})
+ end
+
+ it_behaves_like 'tripleo::packages'
+ end
+ end
end
{ }
end
- shared_examples_for 'tripleo swift proxy base profile' do
+ shared_examples_for 'tripleo::profile::base::swift::proxy' do
let :pre_condition do
"class { '::swift':
end
- context 'on Debian platforms' do
- let :facts do
- { :osfamily => 'Debian',
- :processorcount => 1 }
- end
-
- it_configures 'tripleo swift proxy base profile'
- end
+ on_supported_os.each do |os, facts|
+ context "on #{os}" do
+ let(:facts) do
+ facts.merge({})
+ end
- context 'on RedHat platforms' do
- let :facts do
- {
- :osfamily => 'RedHat',
- :operatingsystemrelease => '7.1',
- :processorcount => 1,
- }
+ it_behaves_like 'tripleo::profile::base::swift::proxy'
end
-
- it_configures 'tripleo swift proxy base profile'
end
-
end
describe 'tripleo::selinux' do
- shared_examples_for 'manage selinux' do
+ shared_examples_for 'tripleo::selinux' do
context 'with selinux enforcing' do
before :each do
- facts.merge!( :selinux_current_mode => 'enforcing' )
+ facts.merge!({
+ :selinux => true,
+ :selinux_current_mode => 'enforcing'
+ })
end
let :params do
context 'with selinux disabled' do
before :each do
- facts.merge!( :selinux => 'false' )
+ facts.merge!({ :selinux => 'false' })
end
let :params do
context 'on Debian platforms' do
let :facts do
- { :osfamily => 'Debian' }
+ { :osfamily => 'Debian' }
end
it_raises 'a Puppet::Error', /OS family unsuppored yet \(Debian\), SELinux support is only limited to RedHat family OS/
end
- context 'on RedHat platforms' do
- let :facts do
- { :osfamily => 'RedHat' }
- end
+ on_supported_os.each do |os, facts|
+ context "on #{os}" do
+ let(:facts) do
+ facts.merge({})
+ end
- it_configures 'manage selinux'
+ it_behaves_like 'tripleo::selinux'
+ end
end
-
end
require 'puppetlabs_spec_helper/module_spec_helper'
require 'shared_examples'
+require 'rspec-puppet-facts'
+include RspecPuppetFacts
fixture_path = File.expand_path(File.join(__FILE__, '..', 'fixtures'))
c.module_path = File.join(fixture_path, 'modules')
c.manifest_dir = File.join(fixture_path, 'manifests')
- c.default_facts = {
- :kernel => 'Linux',
- :concat_basedir => '/var/lib/puppet/concat',
- :memorysize => '1000 MB',
- :processorcount => '1',
- :puppetversion => '3.7.3',
- :uniqueid => '123'
- }
+ # custom global facts for all rspec tests
+ add_custom_fact :concat_basedir, '/var/lib/puppet/concat'
end
at_exit { RSpec::Puppet::Coverage.report! }