Files
puppet-nova/spec/classes/nova_keystone_endpoint_spec.rb
Emilien Macchi 00ed6139ec Add API v3 endpoint support
Nova API v3 is now by default in Icehouse. This patch aims to add the
ability to create the endpoint or not.

Change-Id: I66c6c9b439f8320cd56b6899d02bbe01b80f7243
Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
2014-05-09 00:45:37 +02:00

160 lines
4.4 KiB
Ruby

require 'spec_helper'
describe 'nova::keystone::auth' do
let :params do
{:password => 'nova_password'}
end
context 'with default parameters' do
it { should contain_keystone_user('nova').with(
:ensure => 'present',
:password => 'nova_password'
) }
it { should contain_keystone_user_role('nova@services').with(
:ensure => 'present',
:roles => 'admin'
)}
it { should contain_keystone_service('nova').with(
:ensure => 'present',
:type => 'compute',
:description => 'Openstack Compute Service'
)}
it { should contain_keystone_service('novav3').with(
:ensure => 'present',
:type => 'computev3',
:description => 'Openstack Compute Service v3'
)}
it { should contain_keystone_service('nova_ec2').with(
:ensure => 'present',
:type => 'ec2',
:description => 'EC2 Service'
)}
it { should contain_keystone_endpoint('RegionOne/nova').with(
:ensure => 'present',
:public_url => 'http://127.0.0.1:8774/v2/%(tenant_id)s',
:admin_url => 'http://127.0.0.1:8774/v2/%(tenant_id)s',
:internal_url => 'http://127.0.0.1:8774/v2/%(tenant_id)s'
)}
it { should contain_keystone_endpoint('RegionOne/novav3').with(
:ensure => 'present',
:public_url => 'http://127.0.0.1:8774/v3',
:admin_url => 'http://127.0.0.1:8774/v3',
:internal_url => 'http://127.0.0.1:8774/v3'
)}
it { should contain_keystone_endpoint('RegionOne/nova_ec2').with(
:ensure => 'present',
:public_url => 'http://127.0.0.1:8773/services/Cloud',
:admin_url => 'http://127.0.0.1:8773/services/Admin',
:internal_url => 'http://127.0.0.1:8773/services/Cloud'
)}
end
context 'when setting auth name' do
before do
params.merge!( :auth_name => 'foo' )
end
it { should contain_keystone_user('foo').with(
:ensure => 'present',
:password => 'nova_password'
) }
it { should contain_keystone_user_role('foo@services').with(
:ensure => 'present',
:roles => 'admin'
)}
it { should contain_keystone_service('foo').with(
:ensure => 'present',
:type => 'compute',
:description => 'Openstack Compute Service'
)}
it { should contain_keystone_service('foo_ec2').with(
:ensure => 'present',
:type => 'ec2',
:description => 'EC2 Service'
)}
end
context 'when overriding endpoint params' do
before do
params.merge!(
:public_address => '10.0.0.1',
:admin_address => '10.0.0.2',
:internal_address => '10.0.0.3',
:compute_port => '9774',
:ec2_port => '9773',
:compute_version => 'v2.2',
:region => 'RegionTwo',
:admin_protocol => 'https',
:internal_protocol => 'https',
:public_protocol => 'https'
)
end
it { should contain_keystone_endpoint('RegionTwo/nova').with(
:ensure => 'present',
:public_url => 'https://10.0.0.1:9774/v2.2/%(tenant_id)s',
:admin_url => 'https://10.0.0.2:9774/v2.2/%(tenant_id)s',
:internal_url => 'https://10.0.0.3:9774/v2.2/%(tenant_id)s'
)}
it { should contain_keystone_endpoint('RegionTwo/nova_ec2').with(
:ensure => 'present',
:public_url => 'https://10.0.0.1:9773/services/Cloud',
:admin_url => 'https://10.0.0.2:9773/services/Admin',
:internal_url => 'https://10.0.0.3:9773/services/Cloud'
)}
end
describe 'when disabling endpoint configuration' do
before do
params.merge!( :configure_endpoint => false )
end
it { should_not contain_keystone_endpoint('RegionOne/nova') }
end
describe 'when disabling EC2 endpoint' do
before do
params.merge!( :configure_ec2_endpoint => false )
end
it { should_not contain_keystone_service('nova_ec2') }
it { should_not contain_keystone_endpoint('RegionOne/nova_ec2') }
end
describe 'when configuring nova-api and the keystone endpoint' do
let :pre_condition do
"class { 'nova::api': admin_password => 'test' }
include nova"
end
let :facts do
{ :osfamily => "Debian"}
end
let :params do
{
:password => 'test'
}
end
it { should contain_keystone_endpoint('RegionOne/nova').with_notify('Service[nova-api]') }
end
end