106 lines
2.6 KiB
Ruby
106 lines
2.6 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe 'openstack::compute' do
|
|
|
|
let :default_params do
|
|
{
|
|
:private_interface => 'eth0',
|
|
:internal_address => '0.0.0.0',
|
|
}
|
|
end
|
|
|
|
let :facts do
|
|
{
|
|
:operatingsystem => 'Ubuntu',
|
|
:osfamily => 'Debian',
|
|
}
|
|
end
|
|
describe "when using default class paramaters" do
|
|
let :params do
|
|
default_params
|
|
end
|
|
it {
|
|
should contain_nova_config('multi_host').with({ 'value' => 'False' })
|
|
should_not contain_class('nova::api')
|
|
should_not contain_class('nova::volume')
|
|
should_not contain_class('nova::volume::iscsi')
|
|
should contain_class('nova::network').with({
|
|
'enabled' => false,
|
|
'install_service' => false
|
|
})
|
|
}
|
|
end
|
|
|
|
describe "when enabling volume management" do
|
|
let :params do
|
|
default_params.merge({
|
|
:manage_volumes => true
|
|
})
|
|
end
|
|
|
|
it {
|
|
should contain_nova_config('multi_host').with({ 'value' => 'False'})
|
|
should_not contain_class('nova::api')
|
|
should contain_class('nova::volume')
|
|
should contain_class('nova::volume::iscsi')
|
|
should contain_class('nova::network').with({
|
|
'enabled' => false,
|
|
'install_service' => false
|
|
})
|
|
}
|
|
end
|
|
|
|
describe "when configuring for multi host" do
|
|
let :params do
|
|
default_params.merge({
|
|
:multi_host => true,
|
|
:public_interface => 'eth0'
|
|
})
|
|
end
|
|
|
|
it {
|
|
should contain_nova_config('multi_host').with({ 'value' => 'True'})
|
|
should contain_class('nova::api')
|
|
should_not contain_class('nova::volume')
|
|
should_not contain_class('nova::volume::iscsi')
|
|
should contain_class('nova::network').with({
|
|
'enabled' => true,
|
|
'install_service' => true
|
|
})
|
|
}
|
|
end
|
|
|
|
describe "when configuring for multi host without a public interface" do
|
|
let :params do
|
|
default_params.merge({
|
|
:multi_host => true
|
|
})
|
|
end
|
|
|
|
it {
|
|
expect { should raise_error(Puppet::Error) }
|
|
}
|
|
end
|
|
|
|
describe "when enabling volume management and using multi host" do
|
|
let :params do
|
|
default_params.merge({
|
|
:multi_host => true,
|
|
:public_interface => 'eth0',
|
|
:manage_volumes => true,
|
|
})
|
|
end
|
|
|
|
it {
|
|
should contain_nova_config('multi_host').with({ 'value' => 'True'})
|
|
should contain_class('nova::api')
|
|
should contain_class('nova::volume')
|
|
should contain_class('nova::volume::iscsi')
|
|
should contain_class('nova::network').with({
|
|
'enabled' => true,
|
|
'install_service' => true
|
|
})
|
|
}
|
|
end
|
|
end
|