puppet-swift/spec/classes/swift_ringserver_spec.rb
Sebastien Badia c306830644 spec: Enable webmock connect to IPv4 link-local
compile and compile.with_all_deps rpsec matchers make
a call to all facts, and especially the ec2 one (this fact, try
to make a connection on the IPv4 link-local for ec2 metadata which
is incompatible with webmock restrictions), this seems to produce
random errors with puppet 3.{3,4}.x and facter 1.7.6.

Closes-bug: #1492636
Change-Id: Ia47236e1c929e8d449bbb43cd2162f3d79d654f7
2015-09-06 02:04:20 +02:00

90 lines
2.1 KiB
Ruby

require 'spec_helper'
# LP1492636 - Cohabitation of compile matcher and webmock
WebMock.disable_net_connect!(:allow => "169.254.169.254")
describe 'swift::ringserver' do
context 'when storage.pp was already included' do
let :pre_condition do
"class { 'swift::storage': storage_local_net_ip => '127.0.0.1' }
class {'swift' : swift_hash_suffix => 'eee' }
include swift::ringbuilder"
end
let :facts do
{
:operatingsystem => 'Ubuntu',
:osfamily => 'Debian'
}
end
let :params do
{
:local_net_ip => '127.0.0.1',
:max_connections => 5
}
end
it 'does not create the rsync::server class' do
is_expected.to compile
end
it 'contain the swift_server rsync block' do
is_expected.to contain_rsync__server__module('swift_server').with({
'path' => '/etc/swift',
'lock_file' => '/var/lock/swift_server.lock',
'uid' => 'swift',
'gid' => 'swift',
'max_connections' => '5',
'read_only' => 'true'
})
end
end
context 'when storage.pp was not already included' do
let :pre_condition do
"class {'swift' : swift_hash_suffix => 'eee' }
include swift::ringbuilder"
end
let :facts do
{
:operatingsystem => 'Ubuntu',
:osfamily => 'Debian'
}
end
let :params do
{
:local_net_ip => '127.0.0.1',
:max_connections => 5
}
end
it 'does create the rsync::server class' do
is_expected.to contain_class('rsync::server').with({
'use_xinetd' => 'true',
'address' => '127.0.0.1',
'use_chroot' => 'no'
})
end
it 'contain the swift_server rsync block' do
is_expected.to contain_rsync__server__module('swift_server').with({
'path' => '/etc/swift',
'lock_file' => '/var/lock/swift_server.lock',
'uid' => 'swift',
'gid' => 'swift',
'max_connections' => '5',
'read_only' => 'true'
})
end
end
end