Files
puppet-swift/spec/classes/swift_dispersion_spec.rb
Adam Vinsh 056e2579bd Add keystone to swift-proxy, use dispersion-report
The existing acceptence test configures keystone on the swift node
but does not configure the swift service to use keystone.  This change
adds the neccesary middleware to the proxy node to actually use keystone.
Further proof of keystone working is acheived by enabling the
swift-dispersion-report class which uploads test objects to swift
after first authenticating with keystone.  This change also updates the
call to keystone used by the dispersion class to an updated format.

Change-Id: Ibf97762f9b19c0ccb72178b04a1a86028bab8bcf
2016-05-23 16:44:30 +00:00

99 lines
3.4 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_suffix => 'string' }"
end
let :facts do
{ :osfamily => 'Debian' }
end
let :params do
{}
end
it { is_expected.to contain_file('/etc/swift/dispersion.conf').with(
:ensure => 'file',
:owner => 'swift',
:group => 'swift',
:require => 'Package[swift]')
}
shared_examples 'swift::dispersion' do
let (:p) { default_params.merge!(params) }
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 default parameters' do
include_examples 'swift::dispersion'
end
describe 'when parameters are overriden' 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
include_examples 'swift::dispersion'
end
end