e7d670b13a
Moves all spec tests over to using rspec-puppet-facts and runs the tests for all our supported operating systems. Change-Id: Ie2d60acac835affaf46a5276c9755640a723bca4
103 lines
3.6 KiB
Ruby
103 lines
3.6 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe 'swift::dispersion' do
|
|
|
|
let :default_params do
|
|
{ :auth_url => 'http://127.0.0.1:5000/v2.0/',
|
|
:auth_user => 'dispersion',
|
|
:auth_tenant => 'services',
|
|
:auth_pass => 'dispersion_password',
|
|
:auth_version => '2.0',
|
|
:endpoint_type => 'publicURL',
|
|
:swift_dir => '/etc/swift',
|
|
:coverage => 1,
|
|
:retries => 5,
|
|
:concurrency => 25,
|
|
:dump_json => 'no' }
|
|
end
|
|
|
|
let :pre_condition do
|
|
"class { 'swift': swift_hash_path_suffix => 'string' }"
|
|
end
|
|
|
|
let :params do
|
|
{}
|
|
end
|
|
|
|
shared_examples 'swift::dispersion' do
|
|
describe 'with default' do
|
|
let (:p) { default_params.merge!(params) }
|
|
|
|
it { should contain_file('/etc/swift/dispersion.conf').with(
|
|
:ensure => 'file',
|
|
:owner => 'swift',
|
|
:group => 'swift',
|
|
:mode => '0640',
|
|
)}
|
|
|
|
it 'configures dispersion.conf' do
|
|
is_expected.to contain_swift_dispersion_config(
|
|
'dispersion/auth_url').with_value(p[:auth_url])
|
|
is_expected.to contain_swift_dispersion_config(
|
|
'dispersion/auth_version').with_value(p[:auth_version])
|
|
is_expected.to contain_swift_dispersion_config(
|
|
'dispersion/auth_user').with_value("#{p[:auth_tenant]}:#{p[:auth_user]}")
|
|
is_expected.to contain_swift_dispersion_config(
|
|
'dispersion/auth_key').with_value(p[:auth_pass])
|
|
is_expected.to contain_swift_dispersion_config(
|
|
'dispersion/endpoint_type').with_value(p[:endpoint_type])
|
|
is_expected.to contain_swift_dispersion_config(
|
|
'dispersion/swift_dir').with_value(p[:swift_dir])
|
|
is_expected.to contain_swift_dispersion_config(
|
|
'dispersion/dispersion_coverage').with_value(p[:coverage])
|
|
is_expected.to contain_swift_dispersion_config(
|
|
'dispersion/retries').with_value(p[:retries])
|
|
is_expected.to contain_swift_dispersion_config(
|
|
'dispersion/concurrency').with_value(p[:concurrency])
|
|
is_expected.to contain_swift_dispersion_config(
|
|
'dispersion/dump_json').with_value(p[:dump_json])
|
|
end
|
|
|
|
it 'triggers swift-dispersion-populate' do
|
|
is_expected.to contain_exec('swift-dispersion-populate').with(
|
|
:path => ['/bin', '/usr/bin'],
|
|
:subscribe => 'File[/etc/swift/dispersion.conf]',
|
|
:onlyif => "swift -A #{p[:auth_url]} --os-username #{p[:auth_user]} --os-project-name #{p[:auth_tenant]} --os-password #{p[:auth_pass]} -V #{p[:auth_version]} stat | grep 'Account: '",
|
|
:unless => "swift -A #{p[:auth_url]} --os-username #{p[:auth_user]} --os-project-name #{p[:auth_tenant]} --os-password #{p[:auth_pass]} -V #{p[:auth_version]} list | grep dispersion_",
|
|
:require => 'Package[swiftclient]'
|
|
)
|
|
end
|
|
end
|
|
|
|
describe 'with override' do
|
|
before do
|
|
params.merge!(
|
|
:auth_url => 'https://10.0.0.10:7000/auth/v8.0/',
|
|
:auth_user => 'foo',
|
|
:auth_tenant => 'bar',
|
|
:auth_pass => 'dummy',
|
|
:auth_version => '1.0',
|
|
:endpoint_type => 'internalURL',
|
|
:swift_dir => '/usr/local/etc/swift',
|
|
:coverage => 42,
|
|
:retries => 51,
|
|
:concurrency => 4682,
|
|
:dump_json => 'yes'
|
|
)
|
|
end
|
|
end
|
|
end
|
|
|
|
on_supported_os({
|
|
:supported_os => OSDefaults.get_supported_os
|
|
}).each do |os,facts|
|
|
context "on #{os}" do
|
|
let (:facts) do
|
|
facts.merge(OSDefaults.get_facts({ :puppetversion => '4.8.0' }))
|
|
end
|
|
|
|
it_configures 'swift::dispersion'
|
|
end
|
|
end
|
|
end
|