puppet-neutron/spec/classes/neutron_keystone_auth_spec.rb
Cody Herriges ccac02b917 Make tests pass on Puppet 4.x
This commit makes the following changes, mostly to specs to get them
  passing on Puppet 4.x: removes redefinition of $name because it is now
  a reserved word and redundant in Puppet 3.x, cleans up the use of
  Puppet's old behavior of implicitly converting String to Integers
  since Puppet 4.x is pretty strictly typed, sets facts required for
  doing flow control and comparison, fixes implicit use of empty string
  that is assumed to be the same as false by updating tests that inject
  empty string into params to represent a value not being provide by a
  user to false instead.

Closes-bug: #1447620
Change-Id: Ibb651f26f33549dbe564dc88167b8f578a03fd77
2015-06-16 09:57:29 -07:00

198 lines
4.9 KiB
Ruby

require 'spec_helper'
describe 'neutron::keystone::auth' do
let :default_facts do
{ :operatingsystem => 'default',
:operatingsystemrelease => 'default'
}
end
describe 'with default class parameters' do
let :params do
{
:password => 'neutron_password',
:tenant => 'foobar'
}
end
it { is_expected.to contain_keystone_user('neutron').with(
:ensure => 'present',
:password => 'neutron_password',
:tenant => 'foobar'
) }
it { is_expected.to contain_keystone_user_role('neutron@foobar').with(
:ensure => 'present',
:roles => ['admin']
)}
it { is_expected.to contain_keystone_service('neutron').with(
:ensure => 'present',
:type => 'network',
:description => 'Neutron Networking Service'
) }
it { is_expected.to contain_keystone_endpoint('RegionOne/neutron').with(
:ensure => 'present',
:public_url => "http://127.0.0.1:9696/",
:admin_url => "http://127.0.0.1:9696/",
:internal_url => "http://127.0.0.1:9696/"
) }
end
describe 'when configuring neutron-server' do
let :pre_condition do
"class { 'neutron::server': auth_password => 'test' }"
end
let :facts do
default_facts.merge({ :osfamily => 'Debian' })
end
let :params do
{
:password => 'neutron_password',
:tenant => 'foobar'
}
end
it { is_expected.to contain_keystone_endpoint('RegionOne/neutron').with_notify(['Service[neutron-server]']) }
end
describe 'when overriding public_protocol, public_port and public address' do
let :params do
{
:password => 'neutron_password',
:public_protocol => 'https',
:public_port => '80',
:public_address => '10.10.10.10',
:port => '81',
:internal_address => '10.10.10.11',
:admin_address => '10.10.10.12'
}
end
it { is_expected.to contain_keystone_endpoint('RegionOne/neutron').with(
:ensure => 'present',
:public_url => "https://10.10.10.10:80/",
:internal_url => "http://10.10.10.11:81/",
:admin_url => "http://10.10.10.12:81/"
) }
end
describe 'when overriding admin_protocol and internal_protocol' do
let :params do
{
:password => 'neutron_password',
:admin_protocol => 'https',
:internal_protocol => 'https',
}
end
it { is_expected.to contain_keystone_endpoint('RegionOne/neutron').with(
:ensure => 'present',
:public_url => "http://127.0.0.1:9696/",
:admin_url => "https://127.0.0.1:9696/",
:internal_url => "https://127.0.0.1:9696/"
) }
end
describe 'when overriding auth name' do
let :params do
{
:password => 'foo',
:auth_name => 'neutrony'
}
end
it { is_expected.to contain_keystone_user('neutrony') }
it { is_expected.to contain_keystone_user_role('neutrony@services') }
it { is_expected.to contain_keystone_service('neutrony') }
it { is_expected.to contain_keystone_endpoint('RegionOne/neutrony') }
end
describe 'when overriding service name' do
let :params do
{
:service_name => 'neutron_service',
:password => 'neutron_password'
}
end
it { is_expected.to contain_keystone_user('neutron') }
it { is_expected.to contain_keystone_user_role('neutron@services') }
it { is_expected.to contain_keystone_service('neutron_service') }
it { is_expected.to contain_keystone_endpoint('RegionOne/neutron_service') }
end
describe 'when disabling user configuration' do
let :params do
{
:password => 'neutron_password',
:configure_user => false
}
end
it { is_expected.not_to contain_keystone_user('neutron') }
it { is_expected.to contain_keystone_user_role('neutron@services') }
it { is_expected.to contain_keystone_service('neutron').with(
:ensure => 'present',
:type => 'network',
:description => 'Neutron Networking Service'
) }
end
describe 'when disabling user and user role configuration' do
let :params do
{
:password => 'neutron_password',
:configure_user => false,
:configure_user_role => false
}
end
it { is_expected.not_to contain_keystone_user('neutron') }
it { is_expected.not_to contain_keystone_user_role('neutron@services') }
it { is_expected.to contain_keystone_service('neutron').with(
:ensure => 'present',
:type => 'network',
:description => 'Neutron Networking Service'
) }
end
describe 'when disabling endpoint configuration' do
let :params do
{
:password => 'neutron_password',
:configure_endpoint => false
}
end
it { is_expected.to_not contain_keystone_endpoint('RegionOne/neutron') }
end
end