
Previously, all of the storage server types (account, container, proxy) were always configured to be installed on the same node. It often makes sense to only have the account and container together, and to put the object server on a different node. (or its possible that other configurations make sense) This commit refactors the swift module so that each of the types of nodes can be built independently of each other.
44 lines
1.1 KiB
Ruby
44 lines
1.1 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe 'swift::storage' do
|
|
# TODO I am not testing the upstart code b/c it should be temporary
|
|
|
|
describe 'when required classes are specified' do
|
|
let :pre_condition do
|
|
"class { 'swift': swift_hash_suffix => 'changeme' }
|
|
include ssh::server::install
|
|
"
|
|
end
|
|
|
|
describe 'when the local net ip is specified' do
|
|
let :params do
|
|
{
|
|
:storage_local_net_ip => '127.0.0.1',
|
|
}
|
|
end
|
|
|
|
['xfsprogs', 'parted'].each do |present_package|
|
|
it { should contain_package(present_package).with_ensure('present') }
|
|
end
|
|
|
|
it { should contain_class('rsync::server').with(
|
|
{:use_xinetd => false,
|
|
:address => params[:storage_local_net_ip]
|
|
}
|
|
)}
|
|
end
|
|
describe 'when local net ip is not specified' do
|
|
it 'should fail' do
|
|
expect do
|
|
subject
|
|
end.should raise_error(Puppet::Error, /Must pass storage_local_net_ip/)
|
|
end
|
|
end
|
|
end
|
|
describe 'when the dependencies are not specified' do
|
|
it 'should fail' do
|
|
expect { subject }.should raise_error(Puppet::Error)
|
|
end
|
|
end
|
|
end
|