
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
99 lines
3.4 KiB
Ruby
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
|